jak pingować i używać określonej karty sieciowej

11

Mam 3 karty sieciowe, 1 Lan (przewodową), 1 bezprzewodową kartę sieciową i 1 to bezprzewodowy usb

jak mogę pingować z określonej karty sieciowej?

i jak używać określonej karty sieciowej do określonej aplikacji

przykład

i want to ping google from wlan1

przykład dla konkretnego zastosowania

i want to use firefox or transmission from wan1

Lan ip 192.168.0.2> Działający poprawnie wprowadź opis zdjęcia tutaj pin-I wlan1 google.com wprowadź opis zdjęcia tutaj

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

one @ onezero: ~ $ ip route

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 

@Khaled

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

Teraz wreszcie problem z aplikacją

One Zero
źródło
1
Czy chcesz po prostu ustawić adres źródłowy, czy spodziewasz się w jakiś sposób wybrać inną ścieżkę sieciową? Ustawienie adresu źródłowego nie spowoduje automatycznej zmiany wybranej trasy i spowoduje wyjście z dowolnego interfejsu.
Zoredache

Odpowiedzi:

9

Jeśli spojrzysz na instrukcję ping man ping, możesz przeczytać:

-I interface address
   Set source address to specified interface address. Argument may be numeric IP
   address or name of device.
Khaled
źródło
1
sprawdź 2. zdjęcie> ping -I wlan1 google.com
One Zero
Być może masz zablokowane polecenie ping w swoim połączeniu.
Khaled
jego praca nad eth0
One Zero
5

Sprawdź swoją tablicę routingu.

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

Twój interfejs wlan1 wie tylko, jak połączyć się z siecią 192.168.0.0. Masz również wlan1 i eth0 w tej samej podsieci, co może powodować problemy. Musisz dodać trasę do tabeli routingu dla wszystkich miejsc docelowych, do których chcesz dotrzeć w interfejsie WLAN. Na przykład

route add -host 65.55.72.135 gw 192.168.0.1 dev wlan1
ping -I wlan1 65.55.72.135

Pamiętaj, że nie pozwoli to na trasowanie według aplikacji. W tym celu musisz skonfigurować routing zasad za pomocą czegoś takiego iptables -m owner --uid-owner . ping -S src_ip dest_ipPolecenie faktycznie wyśle ​​pakiet ze źródłem adresu IP wlan1, ale następnie przekieruje pakiet na eth0, ponieważ następnym skokiem jest eth0 w tabeli routingu. Najlepszym rozwiązaniem jest umieszczenie interfejsów wlan1 i eth0 w osobnych podsieciach.

resmon6
źródło
4

Jeśli chodzi o ping (8) z BSD , możesz użyć -Sprzełącznika ping do symulacji pingowania z określonego interfejsu:

-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.

Świadomość interfejsu aplikacji (adresów IP) na poziomie aplikacji jest w pewnym stopniu możliwa, jeśli określimy inną bramę dla różnych interfejsów lub przekierowujemy ruch zgodnie z portem lub innym kryterium poprzez reguły zapory ogniowej ... np. jeśli używasz Firefoksa do łączenia się tylko z 80 portami, możesz określić regułę SNAT w iptables, aby łączyć się za pośrednictwem określonego adresu IP, stąd pożądany interfejs

kaji
źródło
nie rozumiem, rozkaz? ping -S?
One Zero
ping -S your.first.ip.addr hotmail.com i ping -S your.another.ip.addr hotmail.com pinguje hotmail.com z twoim dostępnym innym adresem IP. Jeśli nie jest określony, domyślny protokół pobiera sondę ping przez domyślną bramę
1
Jaką wersję pingujesz? W moim systemie Ubuntu -Skonfiguruje bufor wysyłania gniazda.
Zoredache
ping -V> narzędzie ping, iputils-sss20101006
One Zero