在Linux系统中,iptables规则默认不会在系统重启后自动保存。为了实现iptables规则的持久化保存,你可以使用以下方法:
将当前的iptables规则保存到一个文件中:
sudo iptables-save > /etc/iptables/rules.v4
创建一个脚本(例如:/etc/network/if-pre-up.d/iptables),并在其中添加以下内容:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables/rules.v4
给予脚本执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
这样,在网络接口启动之前,脚本会自动恢复iptables规则。
在Debian和Ubuntu系统中,可以使用netfilter-persistent包来实现iptables规则的持久化保存。
首先,安装netfilter-persistent:
sudo apt-get install netfilter-persistent
在安装过程中,它会询问你是否要保存当前的iptables规则。选择“是”以保存规则。
以后,你可以使用以下命令手动保存和加载规则:
sudo netfilter-persistent save
sudo netfilter-persistent reload
firewalld是另一个用于管理Linux系统防火墙的工具,它支持动态管理和持久化保存规则。
首先,安装firewalld:
sudo apt-get install firewalld
启动firewalld服务:
sudo systemctl start firewalld
将iptables规则添加到firewalld:
sudo firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080
重新加载firewalld以应用更改:
sudo firewall-cmd --reload
以上方法可以帮助你实现iptables规则的持久化保存。你可以根据自己的需求选择合适的方法。