恢复firewalld到出厂设置的核心是清除自定义配置并重置为默认规则,以下是具体步骤:
停止firewalld服务:
执行sudo systemctl stop firewalld.service,立即停止当前运行的firewalld服务,避免自定义规则继续生效。
禁用firewalld自启动:
执行sudo systemctl disable firewalld.service,防止系统重启后自动启动firewalld,确保恢复后的配置不会被覆盖。
删除firewalld配置文件:
执行sudo rm -rf /etc/firewalld,彻底清除所有自定义的zone、服务、端口等配置文件,恢复初始状态。
(可选)重新安装firewalld:
若配置文件删除不彻底或需要全新安装,可执行sudo yum remove firewalld && sudo yum install firewalld,重新安装firewalld以确保文件完整性。
重启系统:
执行sudo reboot,重启后firewalld将加载默认配置(如默认区域为public,仅允许SSH、DHCPv6-client等服务)。
补充:快速重置默认规则(无需删除配置文件)
若仅需重置规则而不删除配置文件,可执行以下命令:
sudo firewall-cmd --set-default-zone=public(public为默认区域,允许基本通信);sudo firewall-cmd --reload,使默认规则生效。CentOS 6及更早版本默认使用iptables作为防火墙,恢复出厂设置需清空所有规则并重置默认策略:
sudo service iptables stop,立即停止iptables服务,终止当前规则的执行。sudo chkconfig iptables off,防止系统重启后自动启动iptables。sudo iptables -P INPUT ACCEPT # 设置INPUT链默认策略为ACCEPT(允许所有入站流量)
sudo iptables -P FORWARD ACCEPT # 设置FORWARD链默认策略为ACCEPT(允许所有转发流量)
sudo iptables -P OUTPUT ACCEPT # 设置OUTPUT链默认策略为ACCEPT(允许所有出站流量)
sudo iptables -t nat -F # 清空nat表所有规则
sudo iptables -t mangle -F # 清空mangle表所有规则
sudo iptables -F # 清空filter表所有规则
sudo iptables -X # 删除所有自定义链
这些命令会将iptables恢复到“无规则、全允许”的初始状态。sudo yum remove iptables && sudo yum install iptables,确保iptables服务及配置文件为默认版本。iptables-services,可使用sudo systemctl restart iptables;CentOS 6使用sudo service iptables save);sudo reboot,确保规则持久化生效。/etc/firewalld,CentOS 6备份/etc/sysconfig/iptables),以便后续恢复自定义规则。