我有 ubuntu 12.04,并且我已经像这样配置了 /etc/network/interfaces
auto eth2
iface eth2 inet dhcp
我也有
auto eth1
iface eth1 inet static
address 60.60.60.1
netmask 255.255.255.0
network 60.60.60.0
broadcast 60.60.60.255
eth0 的配置也类似。
当我执行 sudo route 时,我没有看到 default gw。我只看到60.60.60.0 * 255.255.255.0 eth1
类似的东西
10.0.0.0 * 255.255.255.0 U 0 0 0 eth2
由于不存在默认网关,我有一个正确的 10.xxx IP 地址,但无法连接到外部。如何自动设置默认网关。我可以使用 route add default gw 添加它,这样就可以了。但当我移动位置时,我必须继续在每个地方手动设置 route add
答案1
我从这个链接找到了答案https://serverfault.com/questions/527383/change-default-route-to-dhcp-interface-without-a-route-push 我基本上设置了“post-up route del default dev eth2”以及任何其他我不想使用默认 gw 的接口(这些都是具有静态配置的地址)。执行 /etc/init.d/networking restart 后,ubuntu 将自动为 dhcp 服务器选择默认 gw,这样就行了。我花了 3 个多小时才找到这个 :-)
答案2
基本上,dhclient 似乎仅在服务器提供路由器且未设置当前默认网关时才设置默认网关。因此,正如 doon 提到的,您可以在网络配置中添加“route del default gw”,或者您可以在调用 dhclient 之前手动(或在您自己的脚本中)执行此操作。