NetworkManager 不会立即更改默认网关的指标

NetworkManager 不会立即更改默认网关的指标

我正在使用此问题的答案之一中找到的命令:如何永久更改网络路由指标

之前,我更改了 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不会更改“实时”指标,而只会更改连接的属性。

此外,一旦在连接中定义了此属性,它将在下次应用。

相关内容