네트워크 카드 3개, LAN(유선) 1개, 무선 네트워크 카드 1개, 무선 USB 1개가 있습니다.
특정 네트워크 카드에서 어떻게 ping합니까?
&특정 응용 프로그램에 특정 네트워크 카드를 사용하는 방법
예
i want to ping google from wlan1
구체적인 적용 사례
i want to use firefox or transmission from wan1
Lan ip 192.168.0.2 > 잘 작동하는 pin -I wlan1 google.com
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.16.221.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan1
192.168.48.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
a@onezero:~$IP 라우팅
default via 192.168.0.1 dev eth0 proto static
169.254.0.0/16 dev eth0 scope link metric 1000
172.16.221.0/24 dev vmnet8 proto kernel scope link src 172.16.221.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2 metric 1
192.168.0.0/24 dev wlan1 proto kernel scope link src 192.168.0.3 metric 2
192.168.48.0/24 dev vmnet1 proto kernel scope link src 192.168.48.1
@칼리드
one@onezero:~$ ping -S 192.168.0.2 hotmail.com
PING hotmail.com (65.55.72.135) 56(84) bytes of data.
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=1 ttl=236 time=391 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=2 ttl=236 time=296 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=3 ttl=236 time=393 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=4 ttl=236 time=352 ms
ping -S 192.168.0.3 hotmail.com
PING hotmail.com (65.55.72.183) 56(84) bytes of data.
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=1 ttl=236 time=312 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=2 ttl=236 time=457 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=3 ttl=236 time=298 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=5 ttl=236 time=330 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=6 ttl=236 time=300 ms
이제 마지막으로 응용 프로그램 문제입니다.
답변1
ping 매뉴얼을 보면 다음 내용을 man ping
읽을 수 있습니다.
-I interface address
Set source address to specified interface address. Argument may be numeric IP
address or name of device.
답변2
라우팅 테이블을 확인하세요.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan1
wlan1 인터페이스는 192.168.0.0 네트워크에 연결하는 방법만 알고 있습니다. wlan1과 eth0도 동일한 서브넷에 있으므로 문제가 발생할 수 있습니다. WLAN 인터페이스에서 도달하려는 대상에 도달하려면 라우팅 테이블에 경로를 추가해야 합니다. 예를 들어
route add -host 65.55.72.135 gw 192.168.0.1 dev wlan1
ping -I wlan1 65.55.72.135
이는 애플리케이션을 통한 라우팅을 허용하지 않는다는 점에 유의하세요. 이렇게 하려면 다음과 같은 명령을 사용하여 정책 라우팅을 구성해야 합니다. iptables -m owner --uid-owner
이 ping -S src_ip dest_ip
명령은 실제로 wlan1 IP 주소의 소스를 사용하여 패킷을 보내지만 라우팅 테이블의 다음 홉은 eth0이므로 패킷을 eth0으로 라우팅합니다. . 가장 좋은 방법은 wlan1 및 eth0 인터페이스를 서로 다른 서브넷에 배치하는 것입니다.
답변3
한BSD의 ping(8)-S
계속해서 ping 스위치를 사용하여 특정 인터페이스의 ping을 시뮬레이션할 수 있습니다 .
-S src_addr
Use the following IP address as the source address in outgoing packets. On hosts
with more than one IP address, this option can be used to force the source address to
be something other than the IP address of the interface the probe packet is sent on.
If the IP address is not one of this machine's interface addresses, an error is
returned and nothing is sent.
다양한 인터페이스에 대해 다양한 게이트웨이를 지정하거나 포트 또는 기타 기준에 따라 방화벽 규칙을 통해 트래픽을 리디렉션하는 경우 네트워크 인터페이스(IP 주소)에 대한 애플리케이션 수준 인식이 어느 정도 가능합니다. Firefox를 사용하여 포트 80에만 연결하는 경우 iptables에 SNAT 규칙을 지정하여 지정한 IP 주소를 통해 연결하여 원하는 인터페이스를 얻을 수 있습니다.