Se você olhar para o manual de ping man ping
, leia:
-I interface address
Set source address to specified interface address. Argument may be numeric IP
address or name of device.
i have 3 network cards , 1 Lan (wired) , 1 wireless network card & 1 is wireless usb
how do i ping from specific network card ?
& how do i use specific network card for specific application
exemplo
i want to ping google from wlan1
exemplo para aplicação específica
i want to use firefox or transmission from wan1
Lan ip 192.168.0.2 > Trabalhando corretamente
pin-euwlan1google.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
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
Agora, por último, o problema da aplicação
Se você olhar para o manual de ping man ping
, leia:
-I interface address
Set source address to specified interface address. Argument may be numeric IP
address or name of device.
Confira sua tabela de roteamento.
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
Sua interface wlan1 só sabe como acessar a rede 192.168.0.0. Você também tem seu wlan1 e eth0 na mesma sub-rede que pode causar problemas. Você precisa adicionar uma rota à tabela de roteamento para todos os destinos que você deseja alcançar em sua interface wlan. Por exemplo
route add -host 65.55.72.135 gw 192.168.0.1 dev wlan1
ping -I wlan1 65.55.72.135
Observe que isso não permitirá a rota por aplicativo. Para isso, você precisará configurar o roteamento de políticas com algo como iptables -m owner --uid-owner
O comando ping -S src_ip dest_ip
enviará o pacote com uma fonte de seu endereço IP wlan1, mas encaminhará o pacote para a eth0 porque o próximo salto é eth0 na tabela de roteamento. Sua melhor aposta é colocar as interfaces wlan1 e eth0 em sub-redes separadas.
Em relação a ping (8) do BSD , você pode usar a opção -S
do ping para simular o ping da interface específica:
-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.
A conscientização do nível de aplicativo para a interface de rede (endereços IP) é um pouco possível até certo ponto se especificarmos um gateway diferente para interfaces diferentes ou redirecionar o tráfego de acordo com a porta ou outro critério por meio de regras de firewall ... por exemplo. Se você estiver usando o firefox para conectar-se apenas a 80 portas, você pode especificar a regra SNAT no iptables para conectar-se através do seu endereço IP especificado, portanto, a interface desejada
Tags networking route