要恢复 CentOS 的 iptables 配置,取决于你是要恢复默认规则、从备份还原,还是解决因规则错误导致的网络问题。下面按常见场景给你完整说明(适用于 CentOS 6 / 7 / 8)。
systemctl status iptables
iptables -L -n -v
如果是 CentOS 7/8,默认可能使用 firewalld,而不是 iptables 服务。
iptables -F # 清除所有规则
iptables -X # 删除自定义链
iptables -Z # 清零计数器
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
⚠️ 远程服务器务必先 ACCEPT,否则可能断网
service iptables save
iptables-save > /etc/sysconfig/iptables
iptables-restore < /root/iptables.bak
iptables-save > /etc/sysconfig/iptables
CentOS 没有“系统默认”规则,但通常:
所以最简恢复就是:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
在云厂商或物理控制台执行:
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
systemctl set-default multi-user.target
reboot
然后清空规则。
如果你之前切换过 firewalld:
systemctl stop iptables
systemctl disable iptables
systemctl start firewalld
systemctl enable firewalld
恢复原 firewalld 规则:
firewall-cmd --reload
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables-save > /etc/sysconfig/iptables
| 错误 | 说明 |
|---|---|
| 先 DROP INPUT | 可能立刻断网 |
| 重启前未保存 | 规则丢失 |
| 混淆 firewalld 和 iptables | 规则不生效 |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的恢复方案。