我希望我的 iptables 规则在启动时自动加载。根据 Debian 上的 wiki,可以通过在 /etc/network/if-pre-up.d/ 中放置一个名为 iptables 的脚本来实现。所以我这样做了,它看起来是这样的:
cat /etc/network/if-pre-up.d/iptables
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules
此脚本有效:如果我以 root 身份运行它,我的防火墙规则就会应用。但重新启动时没有防火墙规则。我做错了什么?
根据要求:/etc/network/interfaces(我没有碰过这个文件)
user@DebianVPS:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
答案1
使用该iptables-persistent
包完成这项任务。
/etc/iptables/rules.4
在和中定义您的规则/etc/iptables/rules.6
,并且不要忘记激活服务(使用update-rc.d
、chkconfig
或您最喜欢的工具)。
答案2
此问题可能与脚本的权限位有关。此命令的输出是什么?它包含您的文件吗?
run-parts --test /etc/network/if-pre-up.d
答案3
为什么不采用简单的方法来做呢?
1-创建你的 iptables 规则
2 - 运行“sudo apt-get install iptables-persistent”,它会询问您是否要保存规则并在启动后恢复它们。
3- 您已完成