У меня есть 3 сетевые карты, 1 локальная сеть (проводная), 1 беспроводная сетевая карта и 1 беспроводная USB.
как выполнить пинг с определенной сетевой карты?
и как использовать определенную сетевую карту для определенного приложения?
пример
i want to ping google from wlan0
пример для конкретного применения
i want to use firefox or transmission from wan1
ОБНОВЛЕНО
Lan ip 192.168.0.2 > Работает правильно
Wlan1 ip 192.168.0.3
pin -I wlan1 google.com
ОБНОВЛЯТЬ
Попробуйте вставить вывод route -n и/или ip route. Мне кажется, что интерфейс wlan1 не имеет настроенного допустимого шлюза. –@MrShunz
one@onezero:~$ 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
решение1
ping
имеет специальный переключатель для установки исходного интерфейса: -I
. Как указано в man-странице:
-I interface address
Set source address to specified interface address. Argument may be numeric
IP address or name of device.
When pinging IPv6 link-local address this option is required.
В качестве примера
$ ping -I wlan0 8.8.8.8
ping 8.8.8.8 через интерфейс wlan0.
Принудительное использование интерфейса для конкретного приложения требует больше работы. Вы можете найти решениев этом вопросе superuser.comИ вЭта статьяссылка в ответе.
ОБНОВЛЯТЬ
Методы, которые я раскрыл в этом ответе, показывают, как заставить ping использовать определенный интерфейс. И ссылки на некоторые статьи о том, как заставить общую программу использовать определенный интерфейс.
Теперь, чтобы все это работало, вам нужно настроить некоторую "продвинутую" маршрутизацию. Как вы можете видеть из вывода, у route -n
вас есть несколько сетей, но только ОДИН шлюз в Интернет. То естьхороший, так как маршрутизация с несколькими шлюзами является довольно сложнойпродвинутая темаи с ним довольно трудно справиться.
Это выходит за рамки того, что вы задали в исходном вопросе. Я предлагаю вам разместить новый вопрос здесь или наОшибка серверакак настроить и управлять несколькими интернет-шлюзами на нескольких сетевых интерфейсах.
Или, еще лучше, попробуйте погуглить ;) Также проверьтесайт ЛАРТЦдля расширенных конфигураций маршрутизации Linux.