在 CentOS 上保存 iptables 规则,取决于你使用的 CentOS 版本 以及是否已切换到 firewalld。下面分情况说明。
service iptables save
规则会保存到:
/etc/sysconfig/iptables
chkconfig iptables on
⚠️ CentOS 7 以后默认使用 firewalld,如果你手动停掉 firewalld 并改用 iptables,需要手动保存规则。
systemctl status firewalld
如果使用的是 iptables:
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
启动并设置开机自启:
systemctl enable iptables
systemctl start iptables
service iptables save
或
iptables-save > /etc/sysconfig/iptables
重启后规则仍然生效 ✅
iptables-save > /root/iptables.rules
iptables-restore < /root/iptables.rules
⚠️ 这种方式不会自动生效,需要写入启动脚本或 crontab。
CentOS 8 已废弃 iptables,推荐使用 nftables:
iptables -L
实际调用的是 iptables-nft
如果你坚持使用传统方式,建议 退回 CentOS 7 或改用 firewalld。
| 场景 | 推荐做法 |
|---|---|
| CentOS 6 | service iptables save |
| CentOS 7 + iptables | 安装 iptables-services + service iptables save |
| 临时/测试 | iptables-save / iptables-restore |
| 新系统 | ✅ 使用 firewalld |
如果你愿意,可以把你的 CentOS 版本 和 是否使用 firewalld 发给我,我可以给你一套最合适、最稳定的配置方案。