设置互联网访问特定接口

设置互联网访问特定接口

我有一台具有三个网络接口的机器,运行 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,请不要这样做(请参阅右侧窗格中的链接问题)

相关内容