我一直在尝试了解在 CentOS 6.x 机器上添加静态路由的正确方法。在一些论坛中,他们说要创建一个名为route-dev_name
(例如 route-eth0)的文件,其中包含相关路由并将其放在 中/etc/sysconfig/network-scripts
,在一些论坛中,他们说文件应该命名为static-routes
,在这两种情况下,我都无法设置静态路由。似乎在某些 CentOS 版本中,它仅在命名文件时才有效,route-dev_name
而在某些 CentOS 版本中,它仅在命名文件时才有效static-routes
。有人能帮助我吗?这是我的路由文件的内容:
192.168.20.0/24 via 192.168.20.253 dev eth0
提前致谢
答案1
使用文件定义的 RH 样式设备相关路由/etc/sysconfig/network-scripts/route-device
已导致很多问题。
因此真正的系统管理员只使用/etc/sysconfig/static-routes
不依赖设备的文件:
any net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1
问题:
- 当物理设备绑定时,你需要记住改变路由-设备归档
- 当您在虚拟机中重新组织适配器时。
当然,人们应该总是使用桥设备,这样人们就可以避免路线设备文件问题。
/etc/sysconfig/static-routes
还请注意文件 中的语法,sniplet来自/etc/init.d/network
:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
if [ -x /sbin/route ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
else
net_log $"Legacy static-route support not available: /sbin/route not found"
fi
fi
答案2
在 /etc/syconfig/network-scripts/route-eth0 中创建一个文件
添加添加以下内容
192.168.20.0/24 via 192.168.20.253 dev eth0
我一直使用这种方法。我发现这是最好的方法。
答案3
有一种更简单的方法来添加路线...
此文件 - /etc/init.d/network
- 在 PC 启动时启动,它使用文件/etc/sysconfig/static-routes
来添加静态路由
您必须创建它,因为它不存在。
如果您仔细阅读该文件/etc/init.d/network
,它会读取此文件中的每一行来添加路线,这些行必须以“any”开头,并且“route add -”是已知的。
因此,在您要创建的文件 >> /etc/sysconfig/static-routes 中,您必须写入:
any net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1 eth0
- 其中 10.0.0.0/24 是您想要访问的网络(255.255.255.0 是掩码)
- 其中 gw 192.168.0.1 是要到达的网关(当然是路由器)
- 其中 eth0 是要使用的接口。
这是添加静态路由的最佳方式,所有内容都使用 1 个文件(而不是为 X 接口使用 X 文件)
答案4
在/etc/sysconfig/网络脚本有一个脚本ifup-路由. 它查找名为 route-dev_name 的文件,例如 route-eth0。