如何使IP路由设置在CentOS中持久?

我需要通过虚拟IP地址路由传出的stream量。 我可以使用iproute-package中的'ip'工具来做到这一点。

使用ip route我可以看到哪个地址被用作源,我可以使用ip route change来更改它,但是这是暂时的,并且在重新启动networking服务或机器后我放弃了此更改。

我怎样才能使用configuration文件,使其持久? 例如,我在/etc/sysconfig/network-scripts/route-eth0:0中尝试了几个选项,但没有运气。

谢谢

一般而言,您可以轻松地将任何要在启动时运行的任何内容添加到/etc/rc.d/rc.local 。 所以只需添加你想要的任何ip route命令。 简单,没有搞乱。

https://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-boot-init-shutdown-run-boot.html

/etc/rc.d/rc.local脚本在启动时或在更改运行级别时由init命令执行。 在这个脚本的底部添加命令是一个简单的方法来执行必要的任务,如启动特殊服务或初始化设备,而无需在/etc/rc.d/init.d/目录中编写复杂的初始化脚本并创build符号链接。

要么

您可以采取更复杂的方式并创build一个systemd服务。 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

这样你可以设置它重新启动networking服务。

要么

也许你可以在CentOS中使用自定义的networking脚本

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-NetworkManager_and_the_Network_Scripts.html

自定义命令和networking脚本

脚本/ sbin / ifup-local,ifdown-pre-local和ifdown-local中的自定义命令仅在由/etc/init.d/network服务控制这些设备时执行。 如果您自己修改了启动脚本(例如,/ etc / sysconfig / network-scripts / ifup-eth),那么这些更改将被initscripts软件包更新覆盖。 因此,build议您避免直接修改初始脚本,并使用/ sbin / if 本地脚本,以便您的自定义更改能够在软件包更新后生效。 initscripts只是检查相关的/ sbin /如果本地的存在和运行,如果他们存在。 initscripts不会在/ sbin / if *本地脚本中放置任何东西,也不会在initscripts RPM(或任何包)中拥有或修改这些文件。

您必须编辑/etc/sysconfig/network-scripts/route-eth0:0文件 ,使用以下语法添加条目: <SUBNET>/<PREFIX_LENGTH> via <GATEWAY> dev <INTERFACE>

例如: 10.10.10.0/24 via 192.168.1.1 dev eth0:0