首页 > 行业资讯 > 宝藏问答 >

问 linux7 中怎么关闭防火墙 firewalld 操作详解

2026-11-08 22:24:16
最佳答案

答

CentOS7 也就是 linux7 系统默认防火墙服务名称是 firewalld,不再使用旧版本 iptables 作为默认防火墙服务,关闭防火墙分为临时关闭和永久关闭两种方式,临时关闭只是本次运行生效,系统重启之后防火墙会自动重新开启,永久关闭是把 firewalld 服务设置成开机不启动,重启之后依然保持关闭状态,很多运维新手只做临时关闭,重启之后发现防火墙又自动起来,业务端口依旧不通,这个是最常见踩坑点,执行命令必须使用 root 权限,普通用户要加 sudo 或者切换 root 账号,不然会提示权限不足,同时要清楚关闭防火墙会降低系统安全防护,生产环境一般不建议直接全部关闭,优先选择放行指定端口,只有测试环境才会直接关闭防火墙。

核心命令对照表

操作类型命令说明
临时关闭防火墙systemctl stop firewalld当前立刻停止,重启失效
永久关闭防火墙systemctl disable firewalld禁止开机自启
查看防火墙状态systemctl status firewalld查看当前是否运行
临时开启防火墙systemctl start firewalld重新启动防火墙服务
永久开启防火墙systemctl enable firewalld设置开机自启

完整操作步骤

第一步切换 root 账号,或者在命令前面添加 sudo 获取管理员权限

第二步执行临时关闭命令 systemctl stop firewalld

第三步执行永久关闭命令 systemctl disable firewalld

第四步执行状态查询命令 systemctl status firewalld,确认显示 inactive 也就是未运行,并且没有开机自启标记

第五步如果需要重启系统验证,重启之后再次执行状态查询,确认防火墙没有自动启动

深度补充说明

CentOS7 的 firewalld 底层依然调用 iptables 规则,只是上层增加了管理框架,很多老运维习惯使用 iptables 命令,但是默认 firewalld 服务接管规则,单纯操作 iptables 之后,firewalld 重启会覆盖原有规则,所以关闭防火墙优先操作 firewalld 服务本身。

如果不想完全关闭防火墙,推荐替代方案,使用 firewall-cmd 命令放行端口,例如放行 80 端口,执行 firewall-cmd add port 80 tcp permanent,然后 reload 重载规则,这种方式保留防火墙安全能力,只开放业务端口,比直接关闭防火墙更加安全。

注意事项

关闭防火墙之后,系统所有端口对外暴露,容易遭受扫描攻击,公网服务器不推荐直接关闭,内网测试环境可以临时关闭,做完测试建议重新开启防火墙。

【常见问题】

问题 1 linux7 中怎么关闭防火墙只执行 stop 为什么重启又打开

回答 1 linux7 中怎么关闭防火墙,systemctl stop 只是临时关闭,没有关闭开机自启,重启之后 firewalld 会自动启动,必须额外执行 disable 命令永久关闭。

问题 2 linux7 中怎么关闭防火墙是不是直接操作 iptables 就可以

回答 2 linux7 中怎么关闭防火墙默认是 firewalld 服务,单纯操作 iptables 不能彻底关闭,firewalld 重启会重置规则,正确方式是停止 firewalld 服务。

问题 3 linux7 中怎么关闭防火墙之后怎么恢复开启

回答 3 linux7 中怎么关闭防火墙之后想要恢复,执行 systemctl start firewalld 临时开启,再执行 systemctl enable firewalld 设置开机自启。

【免责申明】

本内容基于 CentOS7 firewalld 标准操作讲解,关闭防火墙存在安全风险,生产环境请谨慎操作,具体以系统官方文档为准,内容仅供运维学习参考。