Я удивлен , никто не упомянул простейшую команду , чтобы сделать это: 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
для Интернета. Изменение будет отражено немедленно.
crontab -e
а затем добавить строку в конце:@reboot sudo ifmetric wlan0 50
.Установка метрик - это то, как вы меняете приоритеты. Более высокая метрика является более «дорогой» в использовании, поэтому ОС будет использовать интерфейсы с самой низкой метрикой, если ей необходимо маршрутизировать трафик. В случае отключения интерфейса с более низкой метрикой он будет использовать интерфейс с более высокой метрикой, поскольку он является единственным интерфейсом, который можно использовать для маршрутизации трафика в эту конкретную сеть / пункт назначения.
Метрики указаны в файле / etc / network / interfaces , ссылки на документацию.
Используйте любой текстовый редактор для редактирования файла, определения сетей, просто измените
metric
параметр и сохраните. Перезагрузка - это самый простой способ сбросить все значения, не вдаваясь в подробности перезапуска сетевых служб.источник
Приоритизация интерфейсов для общего трафика осуществляется путем манипулирования метриками маршрутизации. Каждый маршрут имеет связанные параметры, такие как количество переходов и пропускная способность. Смотрите параметр "метрика" на странице
route
руководства для команды.Приоритизация доступа приложений к сетевым ресурсам часто решается путем «формирования трафика» - я бы использовал веб-поисковик, чтобы посмотреть, сможет ли это сделать Ubuntu или маршрутизатор.
Сноска.
В MS Windows, но не в Linux,
netstat -nr
команда выводит ту же информацию, что иroute print
. Включая метрики маршрутизации.источник
Я на самом деле не пробовал, но NCD (Network Configuration Daemon - 1) можно использовать для этой цели. Сайт утверждает, что облегчает настройку сети. Синтаксис кажется простым.
# Ждите какого-то сетевого соединения. Предпочитаю eth1, поставив его перед eth0.
list ("NET-eth1", "NET-eth0") pnames;
(1) - http://code.google.com/p/badvpn/wiki/NCD
источник
pnames
список на самом деле является просто аргументом кmultidepend()
утверждению на следующей строке - это тот, который реализует приоритеты. Механизм, лежащий в основе этого, заключается в том, что когда онeth1
появляется, когдаeth0
он уже запущен, он выполняетсяmultiprovide("NET-eth1");
, потому чтоNET-eth1
находится впередиNET-eth0
, сразуmultidepend()
же спускается и возвращается, ноeth1
вместо этого выставляет переменные из процессаeth0
.Это все из-за метрик маршрута. Вы хотите удалить маршрут по умолчанию с самой низкой метрикой, а затем восстановить старый маршрут с более высокой метрикой. Пожалуйста, следуйте командам ниже.
Допустим, ваша таблица маршрутизации выглядит так:
Теперь удалите шлюз по умолчанию
Теперь восстановите старый шлюз по умолчанию (обратите внимание, что показатель в этом случае выше 102, чем текущий маршрут по умолчанию 101)
источник
Gateway
=10.16.87.254
, которая имеетUG
наименьшее значениеMetric
, а на шаге 2 возвращается на более высокое значение,Metric
поэтому все еще доступно в качестве резервной копии на случай, если192.168.151.2
недоступно.[Обновление] Начиная с Ubuntu 18.04 LTS (сервер),
netplan
это оболочка по умолчанию для управления сетью. Настройка Netplan по умолчанию выполняется через файл YAML/etc/netplan/01-netcfg.yaml
(более подробно здесь ).Метрика маршрутизации определяется параметром "
metric
", который ожидает положительное целое число (100
обычно это значение по умолчанию). Вот пример со справочной страницы:Маршрут с наименьшим
metric
(длина пути) становится «предпочтительным» шлюзом. (Используйте:sudo netplan try
для включения изменений)Обратите внимание, что в среде роуминга (несколько подключений, включение и выключение) может потребоваться установить для параметра
optional
(логическое значение) значениеtrue
(по умолчанию - false):Обратите внимание на немного другой синтаксис для метрики маршрута в случае соединений DHCP.
Вы также можете использовать
NetworkManager
в качестве средства визуализации, которое, как я полагаю (я еще не проверял), позволит вам просматривать / редактировать эту часть конфигурации также с помощью инструментов GUI.(Самый последний «большой» пример на странице ссылок показывает такое гибридное использование обоих средств визуализации).
Смотрите также этот вопрос (аскубунту) .
источник