У меня есть 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
Теперь, наконец, вопрос приложения
networking
route
Один ноль
источник
источник
Ответы:
Если вы посмотрите руководство по ping
man ping
, вы можете прочитать:источник
Проверьте свою таблицу маршрутизации.
Ваш интерфейс wlan1 знает, как подключиться к сети 192.168.0.0. У вас также есть свои wlan1 и eth0 в одной подсети, что может вызвать проблемы. Вам необходимо добавить маршрут в таблицу маршрутизации для всех пунктов назначения, которых вы хотите достичь в своем интерфейсе WLAN. Например
Обратите внимание, что это не позволит вам маршрутизировать по приложению. Для этого вам необходимо настроить политику маршрутизации с помощью чего-то вроде
iptables -m owner --uid-owner
:ping -S src_ip dest_ip
Команда фактически отправит пакет с источником вашего IP-адреса wlan1, но затем направит пакет из eth0, потому что следующим шагом является eth0 в таблице маршрутизации. Лучше всего размещать интерфейсы wlan1 и eth0 в отдельных подсетях.источник
Что касается ping (8) из BSD , вы можете использовать
-S
переключатель ping для имитации пинга из определенного интерфейса:Осведомленность на уровне приложений для сетевого интерфейса (IP-адреса) в некоторой степени возможна, если мы определим разные шлюзы для разных интерфейсов или перенаправим трафик в соответствии с портом или другим критерием через правила брандмауэра ... например. если вы используете Firefox для подключения только к 80 портам, то вы можете указать правило SNAT в iptables для подключения через указанный вами IP-адрес, следовательно, желаемый интерфейс
источник
-S
настраивается буфер отправки сокета.