我正在对 iptables 防火墙规则进行更改,并希望它们永久生效,但每次计算机重新启动时它们都会消失。在您考虑回复之前,请仔细阅读以下内容:
- 该系统没有互联网连接。
iptables-persistent
我无法使用也无法安装软件包iptables-services
- 没有
systemctl
- 不
service
- 不
sysv-rc-conf
此系统正在运行 crontab 和 rc.d 我尝试了以下所有方法,但均无效。iptables 规则在启动时仍被清除。
iptables-save > /etc/sysconfig/iptables
iptables-save > /etc/sysconfig/rules.v4
iptables-save > /etc/iptables/iptables.rules
编辑 /etc/rc.local,内容如下,
#!/bin/sh -e
#
sleep 3
iptables-restore /etc/iptables/iptables.rules
exit 0
当我启动后进入 shell 时,我可以执行,
$ iptables-restore /etc/iptables/iptables.rules
并且它按预期工作。但 rc.local 似乎在启动时甚至没有执行。使用 rc.local 是不必要的,欢迎任何解决原始问题的方法。我只是列举了所有我已经尝试过的不起作用的方法。
答案1
您的 /etc/rc.local 是可执行文件吗?假设是,会sudo /etc/rc.local
产生什么结果吗?
当 rc.local 运行时,iptables-restore 是否在 $PATH 上?您是否需要使用 iptables-restore 的完整路径,大概是这样的/usr/sbin/iptables-restore
?
答案2
我只需在 /etc/network/if-up.d/ 中添加一个脚本即可执行恢复。这对我的机器有效。