Debian系统默认不会保存iptables规则,重启后所有设置过的iptables会失效。解决方法是:设置好iptables规则后,使用iptables-save保存规则到文件;然后设置开机时使用iptables-restore导入这个文件。
具体执行命令:
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
然后编辑这个文件:vi /etc/network/if-pre-up.d/iptables
输入以下内容:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
然后,配置iptables规则。我自己设置的规则是一个端口转发(在单IP独服上开小鸡用):
iptables -t nat -A POSTROUTING -s '10.20.20.20/24' -o vmbr0 -j MASQUERADE
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 7894 -j DNAT --to 10.20.20.100:3389
配置完毕后,把规则保存到文件:iptables-save > /etc/iptables
这样设置,重启系统iptables规则就不会再失效了。