我为静态路由创建了一些脚本,称为“my.rc.route”,并将其放在 /etc/rc.local 上,因此每次服务器重新启动时,该脚本都会在所有启动过程之后运行。
我感到有点奇怪,发现我的脚本中的某些行被系统随机跳过。
有人遇到过这种情况吗?在哪里跟踪/记录读取?
我把我的“my.rc.route”粘贴到这里,Gnudiff 回答道。
#!/bin/bash
ip ro add table arieluna 10.254.254.248/29 dev lan proto kernel scope link src 10.254.254.254
ip ro add table arieluna 10.222.23.0/24 dev vlan17 proto kernel scope link src 10.222.23.1
ip ro add table arieluna 10.222.22.0/24 dev vlan16 proto kernel scope link src 10.222.22.1
ip ro add table arieluna 10.222.21.0/24 dev vlan15 proto kernel scope link src 10.222.21.1
ip ro add table arieluna 10.222.20.0/24 dev vlan14 proto kernel scope link src 10.222.20.1
ip ro add table arieluna 10.222.19.0/24 dev vlan13 proto kernel scope link src 10.222.19.1
ip ro add table arieluna 10.222.18.0/24 dev vlan12 proto kernel scope link src 10.222.18.1
ip ro add table arieluna 10.222.17.0/24 dev vlan11 proto kernel scope link src 10.222.17.1
ip ro add table arieluna 10.222.16.0/24 dev vlan10 proto kernel scope link src 10.222.16.1
ip ro add table arieluna 10.222.24.0/24 dev vlan18 proto kernel scope link src 10.222.24.1
答案1
@Redmumba 在这方面走在正确的道路上。如果您尝试为尚未配置/启动的接口添加 iptables 规则,则 iptables 将抛出错误,并且不会添加规则。在我看来,这听起来像是您正在通过 NetworkManager 或类似的东西(取决于您的发行版)配置至少一个接口,并且该部分仅在用户通过 GUI 登录时发生(即后rc.local 被执行)。
如果您希望它正常工作,您需要通过 /etc/network/interfaces 中的“up”命令(如果您使用的是基于 Debian 的发行版)或类似机制执行该脚本。
或者,您可以将接口配置为在启动时进行配置。在基于 Debian 的发行版中,这可以通过将接口节中的“allow-hotplug”关键字替换为“auto”来实现。其他发行版将使用其他机制,您必须阅读相关的手册页才能了解该怎么做。