在 Ubuntu 系统中,iptables
的规则默认不会持久化保存。这意味着在系统重启后,之前设置的规则将会丢失。为了使 iptables
规则在重启后依然生效,你需要将规则保存到文件中,并在系统启动时自动加载这些规则。
以下是保存和恢复 iptables
规则的步骤:
保存 iptables
规则
-
使用
iptables-save
命令保存规则:sudo iptables-save > /etc/iptables/rules.v4
这条命令会将当前的 IPv4 规则保存到
/etc/iptables/rules.v4
文件中。如果你需要保存 IPv6 规则,可以使用:sudo iptables-save > /etc/iptables/rules.v6
-
确保规则文件可读:
确保
/etc/iptables/rules.v4
和/etc/iptables/rules.v6
文件对 root 用户是可读的。sudo chmod 600 /etc/iptables/rules.v4 sudo chmod 600 /etc/iptables/rules.v6
恢复 iptables
规则
-
使用
iptables-restore
命令恢复规则:在系统启动时,你可以使用
iptables-restore
命令来加载保存的规则。你可以通过编辑/etc/network/if-pre-up.d/iptables
文件来实现这一点。创建或编辑
/etc/network/if-pre-up.d/iptables
文件:sudo nano /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
-
测试脚本:
你可以手动运行脚本来测试它是否正常工作:
sudo /etc/network/if-pre-up.d/iptables
使用 ufw
(Uncomplicated Firewall)
如果你更喜欢使用 ufw
来管理防火墙规则,ufw
会自动保存和恢复规则。你可以通过以下命令启用 ufw
:
sudo ufw enable
然后,你可以使用 ufw
命令来管理规则,例如:
sudo ufw allow 80/tcp sudo ufw status
ufw
会在系统启动时自动加载和保存规则。
通过以上步骤,你可以确保 iptables
规则在 Ubuntu 系统重启后依然生效。