我们的服务器有三个以太网接口。我把一个接口插入电缆调制解调器(用于静态 IP),另一个接口插入路由器(用于访问工作网络的其余部分)。我确信我在 Xubuntu 下同时运行了这两个接口,但在 Ubuntu Server 下我似乎无法做到这一点;如果我连接到工作网络,我的静态 IP 将停止工作。这有点违背了拥有多个以太网接口的目的。我怎样才能让这两个接口愉快地共存?
route
输出:
eth0 关闭
Destination Gateway Genmask Flags Metric Ref Use Iface
74.218.198.192 * 255.255.255.248 U 0 0 0 eth2
default rrcs-74-218-198 0.0.0.0 UG 100 0 0 eth2
eth0 启动(前两行之后挂起,因此我使用了route -n
)
Destination Gateway Genmask Flags Metric Ref Use Iface
74.218.198.192 0.0.0.0 255.255.255.248 U 0 0 0 eth2
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 74.218.198.193 0.0.0.0 UG 100 0 0 eth2
答案1
这两个接口都有默认网关吗?如果答案是肯定的,则在 eth0 的配置中禁用默认网关。
答案2
我猜测您的静态 IP 一直运行良好,但另一个 NIC 上的 DHCP 设置会导致它成为 DHCP 服务器指示的默认网关。
为了测试这个小理论,route
在仅连接静态 NIC 时、仅连接到本地 LAN 时以及同时连接两者时运行。
您应该看到类似如下的输出:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.39.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.39.1 0.0.0.0 UG 0 0 0 eth0
当通过更多 NIC 连接时,您将看到更多行,如果您配置了任何额外的网络路由(例如 VPN),则会看到更多行。 重要的行是标记为 的default
行destination
。
编辑:您的问题中添加了新信息,但我并不完全确定,因为我没有看到这种安排(我对路由略知一二,但我不是专家!)。似乎定义了两个网关,每个网络接口一个。这可能意味着数据包到公共地址没有固定的路由,这会带来两个潜在问题:如果本地 LAN 未配置为允许您将数据包转发到公共地址,则它们将无法出去,如果您使用的 DNS 服务器只能通过其中一条线路访问,而另一条线路正在使用,您将无法获得任何名称解析。您能否将nslookup example.com
和的输出添加cat /etc/resolve.conf
到您的信息中,我可能能够进一步诊断并提出修复建议。
答案3
您在同一度量上有两个默认网关,这基本上使路由引擎感到困惑(它无法明确决定使用哪一个)。考虑到您有一个路由器,我建议您将服务器放在路由器的另一侧,并将路由留给路由器。
或者,如果您想要(或必须)将服务器留在您的网络配置中:
- 确保只有一个默认网关(第三行是内部网络的默认网关,在任何情况下都不太可能起作用,除非网关有另一条单独的通往互联网的路由)
- 确保您的服务器已启用 IP 转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
并且您的防火墙可以正确处理转发。
第三行路由挂起的原因是,您根本没有内部 DNS,或者无法从服务器访问 DNS 服务器(这可能是由路由问题引起的),或者它没有地址 192.168.2.1 的名称(即,指针记录设置不正确或者根本没有设置)。