目标
插入以太网电缆时,让以太网优先于无线
方法
经过大量的谷歌搜索和阅读后,我认为我应该做的事情与
nmcli connection modify [id-of-ethernet-interface] ipv4.route-metric 200
nmcli connection modify [id-of-ethernet-interface] ipv6.route-metric 200
其中200是比无线指标低的值,以使以太网优先于无线指标。
结果
使我感到困惑的是,我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
第一行在我设置的200值之前有20前缀。这会根据我的运行情况始终保持一致;如果我将指标的值更改为nmcli
500,route -n
将报告20500。为什么会发生这种情况?它肯定看起来不正确,因为我说过我想要200或500,而不是20200和20500。
第二行有一个指标值,我不知道它来自哪里,我似乎根本不会影响它。如果有人可以阐明这一点,我将不胜感激。
看起来这些命令除了影响度量标准外没有其他任何有形的结果。我不能说以太网优先,所以我认为不是。
其他发现
我发现好奇,似乎是工作到一定程度上,是利用$ sudo ifmetric enp0s31f6 200
。这会做两到三件事;
- 它会影响接口的度量(
route -n
使用Iface报告所有行enp0s31f6
的值均为200) - 它会影响Ubuntu中的UI(在右上角,我将看到以太网和无线图标之间的可视切换,具体取决于我在
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
吗?