我有一台配备两个 NIC 的 Ubuntu 14 服务器。
eth0
已连接到我的管理网络,其 IP 为192.168.10.25/24
eth1
已连接到我的客户端网络以实现互联网连接。它已设置 DHCP。
我需要能够通过管理网络访问服务器,同时它需要进入全球互联网以获取新软件包。我不需要服务器充当其他设备访问互联网的互联网网关。它只需要自己访问互联网即可。
如果我仅配置eth0
网关 192.169.10.1,我就可以使用 SSH 从我的 LAN 内部访问服务器。
如果我仅eth1
使用 DHCP 进行配置,我就可以正常访问互联网。
我知道你不能有两个网关。所以如果我启用两个端口,我一定要把网关从 上取下来eth0
。在我看来,这应该告诉系统所有 192.168.10.x 流量仍然通过eth0
,其他一切都通过eth1
。但显然,它不是这样工作的。
这真是令人沮丧。我今天一整天都在 Google 上寻找解决方案,但似乎找不到一个有效的解决方案。
答案1
您可以尝试在接口启动时添加路由
例子:
把脚本放入/etc/network/if-up.d/
# Check for specific interface if desired
[ "$IFACE" != "eth1" ] || exit 0
# Adding additional routes on connection
route add default dev eth1 via xxx.xxx.xxx.xxx
route add -net yyy.yyy.yyy.yyy/zz dev eth0
route add ...
这可能会将除 yyy.yyy.yyy.yyy/zz 网络之外的所有流量路由到 eth1。