Цель
Пусть ethernet имеет приоритет над беспроводной сетью, когда кабель Ethernet подключен
метод
Пройдя немало гуглов и прочитав, я пришел к тому, что считаю, что то, что я должен делать, - это что-то вроде
nmcli connection modify [id-of-ethernet-interface] ipv4.route-metric 200
nmcli connection modify [id-of-ethernet-interface] ipv6.route-metric 200
где 200 - это более низкое значение, чем показатель беспроводной сети, чтобы Ethernet имел приоритет над беспроводной сетью.
Результаты
Меня сбивает с толку сообщения, которые я получаю route -n
после того, как я выполнил вышеупомянутые команды и перезагрузил компьютер (для хорошей меры), и тот факт, что это, кажется, не означает достижение моей цели
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 123.456.89.1 0.0.0.0 UG 600 0 0 wlp1s0
0.0.0.0 123.456.89.1 0.0.0.0 UG 20200 0 0 enp0s31f6
123.456.89.0 0.0.0.0 255.255.255.192 U 200 0 0 enp0s31f6
123.456.89.0 0.0.0.0 255.255.255.192 U 600 0 0 wlp1s0
654.321.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s31f6
Числа складываются в отношении выполнения моей команды, но для строк, которые говорят
0.0.0.0 123.456.89.1 0.0.0.0 UG 20200 0 0 enp0s31f6
654.321.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s31f6
Первая строка имеет префикс 20 перед значением 200, которое я установил. Это постоянно применяется в зависимости от того, что я бегу; Если я изменю значение показателя nmcli
до 500, route -n
скажу 20500. Почему это происходит? Это, конечно, не выглядит правильно, так как я заявил, что хотел либо 200, либо 500, а не 20200 и 20500.
Вторая строка имеет метрическое значение, и я понятия не имею, откуда она взялась, и я никак не могу повлиять на нее. Если кто-то может пролить свет на это, я благодарен.
Не похоже, что эти команды оказываются в чем-то осязаемом, кроме влияния на метрики; Я не могу сказать, что этот Ethernet имеет приоритет, поэтому я предполагаю, что это не так.
Другие выводы
То, что я нашел любопытным, и, кажется, работает в некоторой степени, это использование $ sudo ifmetric enp0s31f6 200
. Это делает две-три вещи;
- Влияет на показатель интерфейса (
route -n
сообщает, что все строки с Ifaceenp0s31f6
имеют значение 200) - Это влияет на пользовательский интерфейс в Ubuntu (в правом верхнем углу я вижу визуальное переключение между переключением значков Ethernet и беспроводной сети в зависимости от значений метрики, которые я предоставляю в
ifmetric
команде) - Он иногда бросает
NETLINK: Error: File exists
ошибку на меня. Последующее выполнение одной и той же команды может или не может привести к этой ошибке
Некоторая системная информация
- EliteBook 850 G5
- Ubuntu 18.04
- Установка Ubuntu производится через разрешение установщику использовать весь диск, включенному шифрованию, включенным сторонним загрузкам драйверов и т. Д.
Обновление № 1
$ nmcli c show
NAME UUID TYPE DEVICE
Wired connection 2 [n/a] ethernet enp0s31f6
WiFi1 [n/a] wifi wlp1s0
$ route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 [n/a] 0.0.0.0 UG 600 0 0 wlp1s0
0.0.0.0 [n/a] 0.0.0.0 UG 20200 0 0 enp0s31f6
[n/a] 0.0.0.0 255.255.255.192 U 200 0 0 enp0s31f6
[n/a] 0.0.0.0 255.255.255.192 U 600 0 0 wlp1s0
[n/a] 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s31f6
nmcli c show
такой же, какroute -n
и выход?