![NetworkManager 不会立即更改默认网关的指标](https://linux22.com/image/185099/NetworkManager%20%E4%B8%8D%E4%BC%9A%E7%AB%8B%E5%8D%B3%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%E7%BD%91%E5%85%B3%E7%9A%84%E6%8C%87%E6%A0%87.png)
我正在使用此问题的答案之一中找到的命令:如何永久更改网络路由指标
之前,我更改了 PPP0 设备(3G UBlox 调制解调器)的指标:
:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.137.1 0.0.0.0 UG 100 0 0 enxd037458b96e3
default 192.168.30.102 0.0.0.0 UG 101 0 0 eth0
default 10.64.243.222 0.0.0.0 UG 700 0 0 ppp0
10.64.243.222 0.0.0.0 255.255.255.255 UH 700 0 0 ppp0
83.173.68.204 192.168.137.1 255.255.255.255 UGH 0 0 0 enxd037458b96e3
192.168.30.0 0.0.0.0 255.255.255.0 U 101 0 0 eth0
192.168.137.0 0.0.0.0 255.255.255.0 U 100 0 0 enxd037458b96e3
然后我改变指标:
sudo nmcli connection modify '3G Mobile Connection' ipv4.route-metric 50
sudo nmcli connection up '3G Mobile Connection'
我打印路由表:
~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.137.1 0.0.0.0 UG 100 0 0 enxd037458b96e3
default 192.168.30.102 0.0.0.0 UG 101 0 0 eth0
default 10.64.73.112 0.0.0.0 UG 700 0 0 ppp0
10.50.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp1
10.64.73.112 0.0.0.0 255.255.255.255 UH 50 0 0 ppp0
83.173.68.204 192.168.137.1 255.255.255.255 UGH 0 0 0 enxd037458b96e3
192.168.30.0 0.0.0.0 255.255.255.0 U 101 0 0 eth0
192.168.137.0 0.0.0.0 255.255.255.0 U 100 0 0 enxd037458b96e3
如您所见,与 PPP0 Iface 关联的默认网关指标仍为 700
我需要重新启动 up 命令:
sudo nmcli connection up '3G Mobile Connection'
使默认路由的度量与接口的度量相匹配:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.174.42.214 0.0.0.0 UG 50 0 0 ppp0
default 192.168.137.1 0.0.0.0 UG 100 0 0 enxd037458b96e3
default 192.168.30.102 0.0.0.0 UG 101 0 0 eth0
10.50.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp1
10.174.42.214 0.0.0.0 255.255.255.255 UH 50 0 0 ppp0
83.173.68.204 192.168.137.1 255.255.255.255 UGH 0 0 0 enxd037458b96e3
192.168.30.0 0.0.0.0 255.255.255.0 U 101 0 0 eth0
192.168.137.0 0.0.0.0 255.255.255.0 U 100 0 0 enxd037458b96e3
我尝试断开/接通连接,但仍然需要再次接通。重新启动网络管理器将使PPP0接口消失,重新启动调制解调器管理器并不能解决问题,只有重新启动系统才能恢复正常。
我为什么要这么做?我已经在这里发布了一个问题https://serverfault.com/questions/1046629/how-to-find-the-route-that-has-internet-connection-and-set-it-as-default-lowest和这里当主网络接口出现故障时,使用另一个网络接口访问互联网与保持系统连接到互联网有关。仅当以太网接口(无法再访问互联网但仍具有最低指标的接口)的电缆被拔掉时,网络管理器才会保持我的系统连接,因此网络管理器将删除与 NIC 接口关联的默认网关。就我而言,我无法拔掉电缆,嵌入式系统封闭在机柜中。
接口绑定似乎是理想的解决方案,但我“暂时”没有内核对象。更新:不,它不支持 3G 调制解调器设备,它仅适用于以太网设备。
那么,我需要两次启动接口才能更新默认路由,这正常吗?
答案1
我刚刚在我的 Linux Mint 上尝试过。
默认指标:100。
我以前nmcli
改成50,然后就断线了,所以默认路由就被去掉了。然后我重新连接,我可以看到默认路由现在的度量为 50。
nmcli
不会更改“实时”指标,而只会更改连接的属性。
此外,一旦在连接中定义了此属性,它将在下次应用。