특정 인터페이스를 통해 특정 IP 주소로 트래픽을 보내는 방법은 무엇입니까?

특정 인터페이스를 통해 특정 IP 주소로 트래픽을 보내는 방법은 무엇입니까?

myServerDebian Stretch VM(Windows 7 호스트의 VirtualBox에서 실행)에서 SSH를 통해 특정 원격 호스트( IP로 호출 12.34.56.78)에 연결하고 싶습니다. 그러기 위해 저는 Android 스마트폰을 USB 모뎀으로 사용하고 있는데 잘 작동합니다. 인터넷에 연결하여 'ping' 및 HTTP/HTTPS 트래픽을 생성하고 다음과 같은 명령을 사용하여 SSH 연결을 열 수도 있습니다.

ssh [email protected] -b a.b.c.d -p portNumber -i ~/.ssh/id_rsa

NB: a.b.c.d연결 시 USB 인터페이스에 할당된 동적 IP 주소입니다.

~/.ssh/config작업을 더 쉽게 하기 위해 다음 과 같은 설정을 모두 입력하고 싶습니다 ssh myServer.

Host myServer
    HostName 12.34.56.78
    Port portNumber
#   BindAddress a.b.c.d     <== commented because this is part of the question
#   BindInterface usb0      <== same as above
    User httqm
    IdentityFile ~/.ssh/id_rsa
  • BindAddress줄의 주석 처리를 제거하고 IP 주소를 지정할 수 있습니다 . 이는 작동하지만 a.b.c.d동적 이므로 전체 SSH 명령줄에 비해 이득이 없습니다.
  • 사용하여바인드인터페이스옵션(없음 BindAddress)이 오류 메시지와 함께 실패합니다.

    ~/.ssh/config: line 154: Bad configuration option: bindinterface
    ~/.ssh/config: terminating, 1 bad configuration options
    

이 오류 메시지 BindInterface는 Openssh 7.7(https://www.openssh.com/releasenotes.html) 나는 다음을 가지고 있습니다 :

$ dpkg -l openssh-client
openssh-client      1:7.4p1-10+deb9u6

이 문제를 해결하기 위해 몇 가지 솔루션을 고려하고 있습니다.

  1. ip route ...목표로 하는 모든 것이 myServerUSB 인터페이스를 통과 하도록 명령 으로 경로를 정의합니다 . 지금까지 다음과 같은 명령을 시도했습니다.

    ip route add to 12.34.56.78 protocol static dev usb0
    

명령 자체는 오류를 반환하지 않지만 으로 SSH 연결을 열 수 없으며 ssh myServerping도 할 수 없습니다.

  1. 12.34.56.78과의 모든 트래픽이 usb0 인터페이스를 통과하도록 Netfilter 규칙을 정의합니다. 그게 효과가 있을까요? 이 솔루션을 조사해야 합니까?

  2. openssh-client가능한 경우 백포트에서 업그레이드

어느 것이 작동하거나 작동하지 않는지(그리고 그 이유는 무엇인지) 설명해 주시겠습니까? ssh myServer내 소스 주소가 동적이라는 것을 고려하는 등 짧은 명령줄을 사용하여 SSH 호스트에 연결하는 목표를 달성하려면 무엇을 제안하시겠습니까 ?

관련 정보