我在禁用 NetworkManager 且未安装其他旧脚本的 RHEL7 上。意思是,我仍然使用:
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/rule-eth0
我的文件有问题rule-eth0
。它加载得很好,每当我修改它并运行$ systemctl restart networking
时,新的路由规则就会被拾取并在$ ip rule
. 如果我使用ifup-routes
.
但是,如果我修改rule-eth0
文件,之前的旧规则不会被删除。不过会添加新的。我试过在network-scripts
目录中运行脚本,除非我一个接一个地手动删除,否则它们会留在那里。
我求助于使用:
$ ip rule flush
这删除了所有规则,包括main
anddefault
表的规则,这意味着任何 SSH 连接都会丢失。
我的困惑
如果我删除所有rule
文件并重新启动机器,我会恢复默认路由。通过运行$ ip rules
是看到:
0: from all lookup local
32766 from all lookup main
32767 from all lookup default
问题 如何在不重新启动的情况下获得相同的行为?
如何在运行后恢复这些默认规则$ ip rule flush
,而无需重新启动机器或手动指定规则?