как пинговать и использовать конкретную сетевую карту

11

У меня есть 3 сетевые карты, 1 Lan (проводной), 1 беспроводная сетевая карта и 1 беспроводной USB

Как я могу пинг с определенной сетевой карты?

& как использовать конкретную сетевую карту для конкретного приложения

пример

i want to ping google from wlan1

пример для конкретного применения

i want to use firefox or transmission from wan1

Lan ip 192.168.0.2> Работать введите описание изображения здесь должным образом - я 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

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

Теперь, наконец, вопрос приложения

Один ноль
источник
1
Вы просто хотите установить исходный адрес или вы собираетесь каким-то образом выбрать другой сетевой путь? Установка адреса источника не будет автоматически изменять выбранный маршрут и вызывать выход из любого конкретного интерфейса.
Зоредаче

Ответы:

9

Если вы посмотрите руководство по ping man ping, вы можете прочитать:

-I interface address
   Set source address to specified interface address. Argument may be numeric IP
   address or name of device.
Халед
источник
1
проверьте 2-е изображение> ping -I wlan1 google.com
One Zero
Возможно, в вашем соединении заблокирован пинг.
Халед
работает над eth0
One Zero
5

Проверьте свою таблицу маршрутизации.

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Команда фактически отправит пакет с источником вашего IP-адреса wlan1, но затем направит пакет из eth0, потому что следующим шагом является eth0 в таблице маршрутизации. Лучше всего размещать интерфейсы wlan1 и eth0 в отдельных подсетях.

resmon6
источник
4

Что касается ping (8) из BSD , вы можете использовать -Sпереключатель 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 портам, то вы можете указать правило SNAT в iptables для подключения через указанный вами IP-адрес, следовательно, желаемый интерфейс

кажи
источник
я не понял, команда? пинг -с?
Один ноль
ping -S your.first.ip.addr hotmail.com & ping -S your.another.ip.addr hotmail.com пингует hotmail.com с вашим доступным другим IP-адресом. Если не указано, протокол по умолчанию принимает проверку связи через шлюз по умолчанию
1
На какую версию пинга вы подаете в суд? В моей системе Ubuntu -Sнастраивается буфер отправки сокета.
Зоредаче
ping -V> утилита ping, iputils-sss20101006
один ноль