我有一台带有2个网络接口的CentOS服务器,其配置如下:
eth0:
DEVICE=eth0
BOOTPROTO=none
BROADCAST=10.0.0.255
HWADDR=xx:
IPADDR=10.0.0.2
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=10.0.0.1
USERCTL=no
IPV6INIT=no
PEERDNS=yes
eth1:
DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.0.255
HWADDR=yy
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=192.168.0.1
192 网络可以访问互联网,而 10 网络则不能。目前,我无法连接到互联网,但我需要我的服务器可以访问互联网。我认为我需要将以太网接口的优先级设置为 eth1 和 eth0。我该怎么做?感谢您的回答。
答案1
如果您不需要 10.0.0.0/24 网络上的流量传到子网外:从 10.0.0.0/24 接口中删除 GATEWAY=。
如果您确实需要流量穿越 10net 之外,则您需要查看更复杂的路由表。从两个接口中删除 GATEWAY=。
在:/etc/sysconfig/network-scripts/ifcfg-eth1
添加:
DEVICE=eth1
BROADCAST=192.168.0.255
IPADDR=192.168.0.2
NETMASK=255.255.255.0
ONBOOT=yes
IPV6INIT=no
在:/etc/sysconfig/network-scripts/route-eth1
添加:
192.168.0.0/24 dev eth1
default via 192.168.0.1
在:/etc/sysconfig/network-scripts/ifcfg-eth0
添加:
DEVICE=eth0
BROADCAST=10.0.0.255
IPADDR=10.0.0.2
NETMASK=255.255.255.0
ONBOOT=yes
IPV6INIT=no
现在这是最愚蠢的部分。假设您的 10.0.0.1 网关将流量路由到 10.0.2.0/24 和 192.168.67.0/24...我们需要定义一条静态路由,以便通过适当的网关到达这些网络:
添加/etc/sysconfig/network-scripts/route-eth0
:
10.0.0.0/24 dev eth0
10.0.2.0/24 via 10.0.0.1
192.168.67.0/24 via 10.0.0.1
我非常怀疑您实际上是在 10 网关上路由 10net 之外的路由。但上述配置是该用例的解决方案。如果您只想通过 eth0 本地访问 10.0.0.0/24 子网,请执行上述所有操作,但替换/etc/sysconfig/network-scripts/route-eth0
10.0.0.0/24 dev eth0
简短的版本是从 eth0 中删除 GATEWAY 行。/etc/init.d/network restart
在进行任何这些更改后运行。注意:如果您不离开子网,则不需要网关。
答案2
我认为你可以指定
DEFROUTE=yes
在 eth1 配置中使其成为默认路由。
答案3
eth0 根本无法访问互联网吗?还是它只是使用 eth1 作为默认设置?
使用命令检查您的路由表route
并查看default
行。
如果断开或禁用 eth1,您还能连接到互联网吗?
如果是,并且您只是希望它主要通过该接口,那么您可以添加DEFROUTE=yes
到 eth0 配置。
如果没有,请尝试使用该界面进行测试。
- 对该网络上的网关 (10.0.0.1) 执行 ping 操作
- 运行
traceroute www.google.com
(或网络外的另一台主机)并在输出中进行分析。
还有一种可能是10.0.0.1网关有问题。
route
如果您仍然遇到问题,请发布和命令的输出traceroute
。