У меня есть два разных сетевых интерфейса, подключенных к 2 сетям. Один - это eth0, а другой - wlan0. Как я могу сказать программному обеспечению использовать только определенный интерфейс?
По сути, я хочу, чтобы Firefox использовал eth0, потому что это университетская локальная сеть, и мне нужно переходить на сайты интрасети, другая - это сеть Wi-Fi, открытая для Интернета, и я хочу привязать ее к Chrome.
Я работаю и мне нужно использовать интранет. Поэтому eth0 - это мой выбор, но eth0 - это интрасеть без доступа в интернет (очевидно). Так как я хочу доступ в интернет, я подключен к wlan0 (университетский Wi-Fi для студентов).
Проблема в том, что, если я подключился, иногда браузер ищет www.stackoverflow.com, используя eth0. Поэтому я хотел назначить браузер для использования только определенного интерфейса.
источник
Ответы:
Вы не можете привязать клиентское программное обеспечение к определенным сетевым интерфейсам, но вы можете сказать ядру, что вы хотите использовать только один сетевой интерфейс для некоторых IP-адресов, а другой - для всего остального. Это называется «маршрутизацией» и может быть настроено с помощью команд
/sbin/route
и/sbin/ip
.Если я правильно прочитал ваш вопрос, вы хотите подключиться к IP-адресам интрасети через интерфейс
eth0
и к Интернету через интерфейсwlan0
.Если вы запустите команду
ip route list
, вы должны увидеть вывод, подобный следующему (цифры будут другими, а также вы можете иметь больше строк):Первые две строки сообщают вам о сетях, подключенных к интерфейсам,
eth0
иwlan0
: сетевой трафик, направленный на компьютеры в этих сетях, будет направляться им напрямую через соответствующий интерфейс.Последняя строка говорит вам, что такое «маршрут по умолчанию»: если ваш компьютер хочет общаться с компьютером в сети, к которой он не подключен (например, к серверу stackoverflow.com), он будет маршрутизировать трафик через
eth0
, проходя через хост10.60.44.1
( называется "шлюз по умолчанию").Таким образом, для маршрутизации интернет-трафика
wlan0
вы должны убедиться, что последняя строка вip route list
выводе выглядит примерно так:где
A.B.C.D
IP-адрес шлюза в беспроводной локальной сети. Если вывод не содержит «dev wlan0», вы можете изменить его с помощью команды:Вы можете узнать правильный
A.B.C.D
дляwlan0
двух способов:Загляните в каталог
/var/lib/dhcp3/
: вы должны найти несколькоdhclient-...-wlan0.lease
файлов. Откройте самый последний и найдите строку со строкойoption router
в ней: остальная часть строки сообщает вам IP-адресA.B.C.D
.Спросите местных администраторов сети. (Вероятно, лучшее, что нужно сделать в любом случае.)
С этой конфигурацией вы сможете:
wlan0
eth0
, если он находится в одной сети .Если ваша интрасеть охватывает несколько сетей, вам нужно будет добавить для них маршруты - и это определенно то, что требует взаимодействия с администраторами локальной сети. :-)
источник
«ip netns» создает сетевые пространства имен. Затем вы можете создать виртуальные интерфейсы (ip link add ... veth) и связать их с пространствами имен.
Например, пространства имен можно настроить для использования разных маршрутов (таким образом, используя разные интерфейсы).
Затем вы можете запускать команды в этом пространстве имен, которые будут использовать созданное пространство имен .. "ip netns exec NAME cmd ..."
Источник: http://manpages.ubuntu.com/manpages/saucy/en/man8/ip-netns.8.html
источник