在 CentOS 系统中,iptables 规则存储在内核的网络过滤表中。如果你不小心修改了 iptables 规则,可以通过以下方法恢复:
- 从备份文件恢复:
如果你有定期备份 iptables 规则的习惯,那么可以直接从备份文件中恢复。通常,备份文件位于
/etc/sysconfig/iptables
或/etc/iptables/rules.v4
(IPv4)和/etc/iptables/rules.v6
(IPv6)。你可以使用以下命令将备份的规则应用到当前的 iptables 配置中:
对于 IPv4:
sudo iptables-restore < /etc/sysconfig/iptables
对于 IPv6:
sudo ip6tables-restore < /etc/iptables/rules.v6
- 清除所有规则并设置默认策略: 如果没有任何备份,你可以清除所有 iptables 规则并设置默认策略。这将允许所有网络流量通过,但在实际应用中,请谨慎操作,以免阻止自己访问服务器。
清除所有规则:
sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X
设置默认策略(根据你的需求进行修改):
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT DROP
- 重新配置防火墙规则: 在清除所有规则后,你可以根据需要重新配置防火墙规则。例如,允许 SSH 连接:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
完成配置后,保存规则:
sudo service iptables save
注意:CentOS 7 及更高版本使用 firewalld
作为默认防火墙。如果你使用的是 firewalld
,则需要使用 firewall-cmd
命令来管理防火墙规则。