在 Ubuntu 系统中,iptables
规则在重启后不会自动保存。因此,您需要手动保存当前的 iptables
规则。以下是几种常见的方法来保存 iptables
规则:
iptables-save
和 iptables-restore
保存规则到文件:
sudo iptables-save > /etc/iptables/rules.v4
这条命令会将当前的 IPv4 规则保存到 /etc/iptables/rules.v4
文件中。
恢复规则:
在系统启动时,您可以使用 iptables-restore
命令来恢复这些规则。您可以创建一个 systemd 服务来实现这一点。
创建一个 systemd 服务文件:
sudo nano /etc/systemd/system/iptables-restore.service
在文件中添加以下内容:
[Unit]
Description=Restore iptables rules
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable iptables-restore.service
sudo systemctl start iptables-restore.service
ufw
(Uncomplicated Firewall)如果您使用的是 ufw
,它会在启用时自动保存规则。
启用 ufw
:
sudo ufw enable
查看 ufw
状态:
sudo ufw status
保存规则:
ufw
会自动将规则保存到 /etc/ufw/user.rules
和 /etc/ufw/user6.rules
文件中。
netfilter-persistent
netfilter-persistent
是一个用于保存和加载 iptables
规则的工具。
安装 netfilter-persistent
:
sudo apt-get update
sudo apt-get install netfilter-persistent
保存当前规则:
sudo netfilter-persistent save
查看已保存的规则:
sudo netfilter-persistent status
通过以上方法之一,您可以确保在系统重启后 iptables
规则仍然有效。选择适合您需求的方法进行操作即可。