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