在 Ubuntu 系统中,iptables 规则在重启后不会自动保存。要使 iptables 规则持久化,您需要安装 iptables-persistent
软件包。以下是安装和配置 iptables-persistent 的步骤:
- 首先,更新您的系统软件包列表:
sudo apt update
- 安装
iptables-persistent
软件包:
sudo apt install iptables-persistent
在安装过程中,系统会提示您是否要保存当前的 iptables 规则。选择 “Yes”,以便在重启后保留这些规则。
-
(可选)如果您还需要保存 IPv6 规则,请确保在安装过程中选择了 “Yes” 以保存 IPv6 规则。
-
安装完成后,您可以使用以下命令查看当前的 iptables 规则:
sudo iptables -L
- 如果您需要手动保存或恢复 iptables 规则,可以使用
iptables-save
和iptables-restore
命令。例如,要将当前规则保存到文件中,可以执行:
sudo iptables-save > /etc/iptables/rules.v4
对于 IPv6 规则,使用:
sudo ip6tables-save > /etc/iptables/rules.v6
- 要在启动时自动应用保存的规则,可以使用
iptables-restore
命令。您可以创建一个 systemd 服务来实现这一点。首先,创建一个名为iptables-restore.service
的文件:
sudo nano /etc/systemd/system/iptables-restore.service
将以下内容粘贴到文件中,然后保存并关闭文件:
[Unit] Description=Restore IPTables rules Before=network.target [Service] Type=oneshot ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4 ExecStart=/sbin/ip6tables-restore < /etc/iptables/rules.v6 [Install] WantedBy=multi-user.target
- 通过以下命令启用并启动
iptables-restore.service
:
sudo systemctl enable iptables-restore.service sudo systemctl start iptables-restore.service
现在,您的 iptables 规则将在每次启动时自动应用,从而实现持久化。