У меня есть два разных сетевых интерфейса, подключенных к 2 сетям. Один - это eth0, а другой - wlan0. Как я могу сказать программному обеспечению использовать только определенный интерфейс?
По сути, я хочу, чтобы Firefox использовал eth0, потому что это сеть университета, и мне нужно переходить на сайты интрасети, другая - это сеть Wi-Fi, открытая для Интернета, и я хочу привязать ее к Chrome. [ 111]
Я работаю и мне нужно использовать интранет. Поэтому eth0 - это мой выбор, но eth0 - это интрасеть без доступа в интернет (очевидно). Поскольку я хочу доступ в Интернет, я подключен к wlan0 (университетский Wi-Fi для студентов).
Проблема в том, что, если я подключился, иногда браузер ищет www.stackoverflow.com, используя eth0. Поэтому я хотел назначить браузер для использования только определенного интерфейса.
Вы не можете привязать клиентское программное обеспечение к определенным сетевым интерфейсам, но
вы можете сказать ядру, что хотите использовать только одну сеть.
интерфейс для некоторых IP-адресов, а другой - для всего остального.
Это называется "маршрутизацией" и может быть сконфигурировано с помощью команд
/sbin/route
и /sbin/ip
.
Если я правильно прочитал ваш вопрос, вы хотите подключиться к IP-адресу интрасети.
адреса с помощью интерфейса eth0
и в Интернет с помощью интерфейса.
wlan0
.
Если выполнить команду ip-список маршрутов
, то должен появиться выходной сигнал.
например, следующие (цифры будут отличаться, а также вы можете иметь
больше строк в нем):
$ ip route list
10.60.44.0/25 dev eth0 proto kernel scope link src 10.60.44.39 metric 1
192.168.80.0/21 dev wlan0 proto kernel scope link src 192.168.84.122 metric 2
[...]
default via 10.60.44.1 dev eth0 proto static
Первые две строки рассказывают о сетях, подключенных к
интерфейсы eth0
и wlan0
: сетевой трафик, направленный на компьютеры.
в этих сетях будут напрямую направлены им через
соответствующий интерфейс.
Последняя строка говорит вам, что такое "маршрут по умолчанию": если ваш компьютер
хочет поговорить с компьютером в сети, к которой он не подключен (например,
сервер Stackoverflow.com), он будет маршрутизировать трафик через eth0
,
реализуемый через хост 10.60.44.1
(называемый "шлюзом по умолчанию").
Итак, для маршрутизации Интернет-трафика через wlan0
вы должны убедиться, что
последняя строка в выводе ip списка маршрутов
читает что-то вроде:
default via A.B.C.D dev wlan0 proto static
, где A.B.C.D
- это IP-адрес шлюза в беспроводной локальной сети.
Если выход не содержит "dev wlan0", вы можете изменить его с помощью команды
команда:
sudo ip route change to default dev wlan0 via A.B.C.D
Вы можете найти правильную A.B.C.D
для wlan0
двумя способами:
Посмотрите в каталог /var/lib/dhcp3/
: вы должны найти некоторые
dhclient-...-wlan0.lease
files. Откройте последний и
ищите строку со строкой опции маршрутизатор
в ней: остальное
в строке указывается 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