在我的 Ubuntu 16.04 上,我通过 Android 手机使用本地网络和移动互联网。我对路由完全是新手,但这就是我所拥有的。连接手机后,我得到了路由表:
default via 10.205.103.1 dev enp2s0 proto static metric 100
default via 192.168.42.129 dev enp0s29f7u5 proto static metric 101
10.205.32.136 via 10.205.103.1 dev enp2s0 proto dhcp metric 100
10.205.103.0/24 dev enp2s0 proto kernel scope link src 10.205.103.53 metric 100
169.254.0.0/16 dev enp2s0 scope link metric 1000
192.168.42.0/24 dev enp0s29f7u5 proto kernel scope link src 192.168.42.72 metric 100
为了拥有本地网络(网关 10.205.103.1)和互联网,我使用了
sudo route add default gw 192.168.42.129 metric 2
sudo route add -net 10.205.0.0/16 gw 10.205.103.1 metric 1
所以我有
default via 192.168.42.129 dev enp0s29f7u5 metric 2
default via 10.205.103.1 dev enp2s0 proto static metric 100
default via 192.168.42.129 dev enp0s29f7u5 proto static metric 101
10.205.0.0/16 via 10.205.103.1 dev enp2s0 scope link metric 1
etc.
一切运行良好,这 2 条路线已添加到表中,但我遇到了一个问题,因为一些对我来说神秘的原因——我的第一条路线每隔几分钟就会掉线(~10-15,不知道这取决于什么)并且我得到了另一张表:
default via 10.205.103.1 dev enp2s0 proto static metric 100
default via 192.168.42.129 dev enp0s29f7u5 proto static metric 101
10.205.0.0/16 via 10.205.103.1 dev enp2s0 scope link metric 1
etc.
所以我必须重新运行命令sudo route add default gw 192.168.42.129 metric 2
。为什么会发生这种情况以及如何避免?在添加我的路由之前,通过 192.168.42.129(度量为 101 的路由)删除默认路由没有任何效果 - 当我创建的路由被丢弃时,该路由会返回到表中。
答案1
我建议使用网络管理器(在 GUI/桌面网络设置中)执行此操作,而不是直接在 bash 上执行此操作。
对于 10.205.103.1,在 IPv4 设置/路由.../取消选中:
仅将此连接用于其网络上的资源
这样您的路由表就应该干净了,并且可以抵抗拔出和重启。