在 CentOS 系统中保存 iptables 配置的方式取决于 CentOS 版本 以及是否使用 iptables-services。下面按常见情况说明。
service iptables save
或
/etc/init.d/iptables save
规则会保存到:
/etc/sysconfig/iptables
chkconfig iptables on
CentOS 7 默认使用
firewalld,如果仍想使用 iptables,需要先安装并启用iptables-services。
yum install -y iptables-services
systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables
systemctl start iptables
service iptables save
或
iptables-save > /etc/sysconfig/iptables
cat /etc/sysconfig/iptables
iptables-save > /root/iptables.rules
iptables-restore < /root/iptables.rules
⚠️ 这种方式 不会自动开机恢复,需要加入启动脚本。
chmod +x /etc/rc.d/rc.local
echo "iptables-restore < /root/iptables.rules" >> /etc/rc.d/rc.local
创建服务文件:
vi /etc/systemd/system/iptables-restore.service
内容示例:
[Unit]
Description=Restore iptables rules
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /root/iptables.rules
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用:
systemctl enable iptables-restore
iptables -L -n -v
| 场景 | 推荐方式 |
|---|---|
| CentOS 6 | service iptables save |
| CentOS 7/8 使用 iptables | iptables-services |
| 临时规则 | iptables-save / iptables-restore |
| 新系统 | 尽量使用 firewalld |
如果你愿意,可以告诉我 CentOS 具体版本,我可以给你最精确的命令。