我有一台具有三个网络接口的机器,运行 Ubuntu 12.04 LTS、64 位、内核 3.5.0-49。
我使用了所有三个接口。其中两个连接到 LAN(eth0 和 eth1),一个连接到互联网(eth2);但是当我尝试访问互联网时,它会尝试通过 eth0(错误响应来自 eth0 的 IP)。
我知道如果我不为 eth0 或 eth1 设置网关地址它就会起作用(根据其他地方的经验),但我必须这样做,因为出于某种原因,如果没有指定网关,网络管理器 GUI 不会让我保存连接设置(?)。
我该如何 a) 将 eth0 和 eth1 设置为没有网关地址,或者 b) 告诉系统使用 eth2 进行互联网访问(即,不在 eth0/eth1 子网上的 IP)。
至于尝试取消设置 eth0 和 eth1 的网关地址:尝试绕过网络管理器 GUI,我检查了 /etc/network/interfaces,但 Ubuntu 似乎不使用它(它只有一个 lo 条目)。不过,我不太熟悉更现代的配置接口的方法,所以我放弃了。
答案1
听起来你正在寻找一种方法来设置默认网关。您可以通过运行来查看当前设置ip route
。您可能希望您的设置看起来像这样:
default via 192.168.0.1 dev eth0 ...
192.168.0.0/24 dev eth0 ...
192.168.1.0/24 dev eth1 ...
192.168.2.0/24 dev eth2 ...
这些路由由 NetworkManager 自动创建。尝试检查编辑 ▸ IPv4 设置 ▸ 路由 ▸ 仅将此连接用于其网络上的资源防止它们成为默认网关。
您不需要绕过 NetorkManager。
答案2
如果您由于某种原因使用 NetworkManager 但没有桌面环境,则可以在命令行中对其进行配置:
nmcli connection show
您应该获得一个连接列表,例如
NAME UUID TYPE DEVICE
My Wi-Fi AP 123e4567-e89b-12d3-a456-426614174000 wifi wlp3s0
Wired connection 1 123e4567-e89b-12d3-a456-426614174001 ethernet enp0s25
然后获取UUID值并执行
nmcli connection modify 123e4567-e89b-12d3-a456-426614174001 ipv4.never-default yes
这与其他答案(可能需要断开连接并重新连接才能应用更改)
替代解决方案包括使用route
命令直接管理默认网关;但是如果您使用 NetworkManager,请不要这样做(请参阅右侧窗格中的链接问题)