Answers:
最简单的方法是使用 iptables-save和 iptables-restore将当前定义的iptables规则保存到文件中并(重新)加载它们(例如,重新启动时)。
因此,例如,您将运行
sudo iptables-save | sudo tee /etc/iptables.conf
将您当前的iptables规则保存到/etc/iptables.conf
,然后将这些行插入到/etc/rc.local
:
# Load iptables rules from this file
iptables-restore < /etc/iptables.conf
iptables-save
一次,并总是重新加载(在/etc/rc.local的iptables-restore听起来不错)。
sudo sh -c "iptables-save > /etc/iptables.conf"
代替sudo iptables-save > /etc/iptables.conf
快速更新,您现在可能正在使用12.04,情况会更好。
该iptables-persistent
软件包现在可以解决此问题。安装,
sudo apt-get install iptables-persistent
保存安装软件包时定义的规则,并在以后的每次引导中使用。重新加载时将丢弃加载的新规则。
该配置文件,如果你确实需要改变它们(一旦iptables-persistent
安装)是 /etc/iptables/rules.v4
或 /etc/iptables/rules.v6
分别为IPv4和IPv6的iptables。
/etc/iptables/rules.v4
,您如何将其正式应用?目前我正在执行sudo iptables-restore < /etc/iptables/rules.v4
比保存iptable的规则后/etc/rc.local
添加一行更好/etc/network/interfaces
,就像这样
post-up iptables-restore < /etc/iptables.up.rules
或将文件放入/etc/network/if-down.d/
或/etc/network/if-post-down.d/
或/etc/network/if-pre-up.d/
或相同/etc/network/if-up.d/
。
rc.local
吗?其他方法在某些情况下不起作用吗?