Как мне установить приоритет сетевых подключений в Ubuntu?
Если компьютер с Ubuntu 11.04 подключен к WiFi и 3G одновременно, как мне установить приоритет, чтобы приложения (браузер и т. Д.) Сначала использовали WiFi? Если это не доступно, он должен использовать 3G.
В принципе, я хотел бы установить порядок, в котором используются сетевые подключения.
Редактировать: я ищу более простой подход, который был бы полезен для тех, кто просто удобен и не является экспертом в Ubuntu/Linux.
8 ответов
Я удивлен, что никто не упомянул простейшую команду для этого: ifmetric
, Может быть установлен с помощью sudo apt-get install ifmetric
, Эта команда может использоваться для изменения метрики любого интерфейса. Интерфейс с более низкой метрикой предпочтителен для Интернета.
Чтобы использовать это, сначала посмотрите метрики, используя route
команда:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.42.0.2 0.0.0.0 UG 600 0 0 wlan0
Вот, eth0
имеет более низкую метрику, поэтому будет предпочтительнее wlan0
, Если вы хотите отдать предпочтение wlan0
затем уменьшите его метрику:
sudo ifmetric wlan0 50
Теперь таблица маршрутизации будет выглядеть так:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 wlan0
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
Теперь Linux будет использовать wlan0
для интернета. Изменение будет отражено немедленно.
Установка метрик - это то, как вы меняете приоритеты. Более высокая метрика является более "дорогой" в использовании, поэтому ОС будет использовать интерфейсы с самой низкой метрикой, если ей необходимо маршрутизировать трафик. В случае отключения интерфейса с более низкой метрикой он будет использовать интерфейс с более высокой метрикой, поскольку он является единственным интерфейсом, который можно использовать для маршрутизации трафика к этой конкретной сети / пункту назначения.
Метрики указаны в файле / etc / network/ interfaces, ссылки на документацию.
Используйте любой текстовый редактор для редактирования файла, определения сетей и просто измените metric
Параметр и сохранить. Перезагрузка - это самый простой способ сбросить все значения, не вдаваясь в подробности перезапуска сетевых служб.
Приоритизация интерфейсов для общего трафика осуществляется путем манипулирования метриками маршрутизации. Каждый маршрут имеет связанные параметры, такие как количество переходов и пропускная способность. Смотрите опцию "метрика" на странице руководства для
route
команда.$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.254 255.255.255.255 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 256 0 0 eth0
Приоритизация доступа приложений к сетевым ресурсам часто решается путем "формирования трафика" - я бы использовал веб-поисковик, чтобы посмотреть, сможет ли это сделать Ubuntu или маршрутизатор.
Сноска.
В MS Windows, но не в Linux, netstat -nr
Команда выводит ту же информацию, что и route print
, Включая метрики маршрутизации.
Это все из-за метрик маршрута. Вы хотите удалить маршрут по умолчанию с самой низкой метрикой, а затем восстановить старый маршрут с более высокой метрикой. Пожалуйста, следуйте командам ниже.
Допустим, ваша таблица маршрутизации выглядит так:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.16.87.254 0.0.0.0 UG 100 0 0 ens38
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
Теперь удалите шлюз по умолчанию
# route delete default gateway
Теперь восстановите старый шлюз по умолчанию (обратите внимание, что показатель в этом случае выше 102, чем текущий маршрут по умолчанию 101)
# route add default gw 10.16.87.254 metric 102 dev ens38
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
0.0.0.0 10.16.87.254 0.0.0.0 UG 102 0 0 ens38
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[Обновление] Начиная с Ubuntu 18.04 LTS (сервер), netplan
является оболочкой по умолчанию для управления сетью. Конфигурирование Netplan выполняется через файл YAML, по умолчанию /etc/netplan/01-netcfg.yaml
(подробнее здесь).
Метрика маршрутизации определяется metric
параметр, который ожидает положительное целое число (100
это значение по умолчанию, как правило). Вот пример со справочной страницы:
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- 10.0.0.10/24
- 11.0.0.11/24
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
metric: 100
- to: 0.0.0.0/0
via: 11.0.0.1
metric: 100
Маршрут с самым низким metric
(длина пути) становится "предпочтительным" шлюзом. (Использование: sudo netplan try
включить изменения)
Обратите внимание, что в среде роуминга (несколько подключений, включение и выключение), вы можете установить optional
(булево) параметр для true
(по умолчанию false):
network:
version: 2
ethernets:
enred:
dhcp4: yes
dhcp4-overrides:
route-metric: 100
engreen:
dhcp4: yes
dhcp4-overrides:
route-metric: 200
# this is plugged into a test network that is often
# down - don't wait for it to come up during boot.
optional: true
Обратите внимание на немного другой синтаксис для метрики маршрута в случае соединений DHCP.
Вы также можете использовать NetworkManager
как средство визуализации, которое, как я полагаю (я еще не проверял), позволит вам просматривать / редактировать эту часть конфигурации также с помощью инструментов с графическим интерфейсом.
renderer
(Скалярное)Используйте данный сетевой бэкэнд для этого определения. В настоящее время поддерживаются
networkd
а такжеNetworkManager
, Это свойство может быть указано глобально вnetworks:
для типа устройства (например,ethernets:
) или для конкретного определения устройства. По умолчанию этоnetworkd
,
(Самый последний "большой" пример на странице ссылок показывает такое гибридное использование обоих средств визуализации).
Смотрите также этот вопрос (аскубунту).
Я на самом деле не пробовал, но NCD (Network Configuration Daemon - 1) можно использовать для этой цели. Сайт утверждает, что облегчает настройку сети. Синтаксис кажется простым.
# Ждите какого-то сетевого соединения. Предпочитаю eth1, поставив его перед eth0.
list ("NET-eth1", "NET-eth0") pnames;
2022 год: Беги
С тех пор, как настройки (сети) были переработаны в GNOME, доступ к некоторым функциям больше невозможен из нового интерфейса настроек. Чтобы использовать старую версию, которая предоставляет больше возможностей, запустите .
Установка приоритета соединения в <code>nm-connection-editor</code>
Кредиты: https://askubuntu.com/a/1061981
Здесь, когда оба подключены, а у основного нет интернета, второе подключение не используется.
Можно использоватьifmetric
но должен запускаться автоматически.
Если Wi-Fi не работает, чтобы установить соединение Wi-Fi без поиска Интернета, в Ubuntu: Настройки > Wi-Fi > В разделе «Видимые сети» используйте колесо на соединении > IPv4 > В разделе «Маршруты» установите флажок «Использовать это соединение только для ресурсов в своей сети». Чтобы проверить это правильно:route -n
и интерфейс Wi-Fi (Iface, вот wlp3s0) будет иметь на одно правило меньше (Destination 0.0.0.0 не добавлялось).