在 Ubuntu 系统中,iptables 的规则默认不会在重启后自动保存。为了确保在系统重启后 iptables 规则仍然有效,你需要手动保存当前的配置。以下是几种常见的方法:
iptables-persistent 工具iptables-persistent 是一个用于保存和恢复 iptables 规则的工具。
安装 iptables-persistent:
sudo apt-get update
sudo apt-get install iptables-persistent
在安装过程中,系统会提示你是否要保存当前的 iptables 规则。选择“是”即可。
手动保存当前规则:
如果你已经安装了 iptables-persistent,但忘记了在安装过程中保存规则,可以手动执行以下命令:
sudo netfilter-persistent save
查看保存的规则文件:
保存的规则文件通常位于 /etc/iptables/rules.v4(IPv4)和 /etc/iptables/rules.v6(IPv6)。
如果你不想使用 iptables-persistent,可以手动保存规则到文件中。
保存 IPv4 规则:
sudo iptables-save > /etc/iptables/rules.v4
保存 IPv6 规则:
sudo ip6tables-save > /etc/iptables/rules.v6
在启动时加载规则:
编辑 /etc/network/if-pre-up.d/iptables 文件,添加以下内容:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables/rules.v4
/sbin/ip6tables-restore < /etc/iptables/rules.v6
然后赋予执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
ufw(Uncomplicated Firewall)如果你使用的是 ufw,可以通过以下命令保存规则:
启用 ufw:
sudo ufw enable
保存规则:
ufw 会自动保存规则到 /etc/ufw/user.rules 和 /etc/ufw/user6.rules。
最简单的方法是使用 iptables-persistent 工具,它会自动处理规则的保存和加载。如果你选择手动保存规则,确保在系统启动时加载这些规则,以保持防火墙配置的持久性。