在 CentOS 系统中,使用 iptables
命令配置的防火墙规则默认不会自动保存。当系统重启后,这些规则会丢失。为了在重启后保留 iptables
规则,你需要使用 service
或 systemctl
命令来管理 iptables
服务。
以下是在 CentOS 7 及更高版本中保存和恢复 iptables
规则的方法:
- 保存
iptables
规则:
sudo iptables-save > /etc/sysconfig/iptables
- 创建一个名为
iptables-restore.service
的 systemd 服务文件:
sudo vi /etc/systemd/system/iptables-restore.service
将以下内容粘贴到文件中:
[Unit] Description=Restore IPTables Firewall Rules Before=network.target [Service] Type=oneshot ExecStart=/sbin/iptables-restore < /etc/sysconfig/iptables [Install] WantedBy=multi-user.target
保存并关闭文件。
- 重新加载 systemd 配置:
sudo systemctl daemon-reload
- 启用
iptables-restore.service
以便在启动时自动恢复防火墙规则:
sudo systemctl enable iptables-restore.service
现在,当你重启系统时,iptables
规则将被自动恢复。
如果你使用的是 CentOS 6 或更低版本,可以使用以下命令来保存和恢复 iptables
规则:
- 保存
iptables
规则:
sudo service iptables save
或者
sudo iptables-save > /etc/sysconfig/iptables
- 在
/etc/rc.d/rc.local
文件中添加以下行,以便在启动时恢复防火墙规则:
/sbin/iptables-restore < /etc/sysconfig/iptables
确保 /etc/rc.d/rc.local
文件具有可执行权限:
sudo chmod +x /etc/rc.d/rc.local
现在,在重启系统后,iptables
规则将被自动恢复。