默认网关更改

默认网关更改

我在 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 -nnmcli查看更改

当您确定它适合您时,您也可以删除相同的行。

由于这些行,NetworkManager 总是添加带有错误网关的默认路由,特别是当我不在我的家庭网络上时。当我执行 时,我收到“目标主机无法访问”的消息ping 8.8.8.8。硬编码网关/etc/network/interfaces不是一个可行的解决方案,因为我经常连接到公共 wifi(因此,永远不会使用相同的 wifi 路由器或网关),并且通常 DHCP 应该“开箱即用”在我看来。

附言:我从未手动编辑过,/etc/dhcpcd.conf所以我不知道为什么文件/etc/dhcpcd.conf包含这些行。

相关内容