我在 Ubuntu 上使用 3 个以太网接口,但当我重新启动时,默认网关会更改为不同的接口。每次启动时,我都必须通过删除默认网关并将其添加回 eth1 来将默认网关更改回 eth1。我该如何解决这个问题?
答案1
要临时更改默认路由,可以使用ip 命令像这样:
$ sudo ip route change default via 192.168.1.1 dev eth0
如果你有静态 IP 配置/etc/network/interfaces
您可以添加网关语句以使其永久生效。
iface eth0 inet static
gateway 192.168.1.1
[…]
使用 DHCP 配置网络时,您必须调整另一个文件。在以下位置添加 supersede 语句/etc/dhcp/dhclient.conf
。
supersede routers 192.168.1.1;
答案2
打开文件/etc/network/interfaces
找到所需的接口并添加以下内容:
gateway 192.x.x.x
重启网络:
sudo /etc/init.d/networking restart
答案3
我在 Ubuntu 18.04 上的 wifi 接口也遇到了同样的问题wlp3s0
。它影响了我连接 Android 网络共享和家外路由器的能力。对我来说,解决这个问题的方法是在文件中注释/etc/dhcpcd.conf
以下内容:
interface wlp3s0
static ip_address=192.168.0.16/24
static routers=192.168.0.1
static domain_name_servers=127.0.0.1
得到以下内容
#interface wlp3s0
# static ip_address=192.168.0.16/24
# static routers=192.168.0.1
# static domain_name_servers=127.0.0.1
然后,我断开了当前网络并重新连接,尝试route -n
或nmcli
查看更改
当您确定它适合您时,您也可以删除相同的行。
由于这些行,NetworkManager 总是添加带有错误网关的默认路由,特别是当我不在我的家庭网络上时。当我执行 时,我收到“目标主机无法访问”的消息ping 8.8.8.8
。硬编码网关/etc/network/interfaces
不是一个可行的解决方案,因为我经常连接到公共 wifi(因此,永远不会使用相同的 wifi 路由器或网关),并且通常 DHCP 应该“开箱即用”在我看来。
附言:我从未手动编辑过,/etc/dhcpcd.conf
所以我不知道为什么文件/etc/dhcpcd.conf
包含这些行。