在Linux服务器运维中,防火墙是保障系统安全的第一道防线。对于使用CentOS 7及后续版本的用户而言,firewalld 作为默认的动态防火墙管理工具,其状态监控与规则配置至关重要。本文将为您详细介绍如何高效查看CentOS防火墙状态,并提供常用管理命令,帮助您轻松掌控服务器网络安全。

为什么需要查看CentOS防火墙状态?
在部署Web服务、数据库或远程访问(如SSH)时,若未正确配置防火墙,可能导致服务无法访问或系统暴露于风险之中。因此,定期检查防火墙运行状态是系统管理员的基本操作,有助于:
确认防火墙是否启用
验证端口是否开放
排查网络连接问题
提升系统整体安全性
CentOS防火墙状态查看方法(基于firewalld)
CentOS 7及以上版本默认使用 firewalld 服务替代传统的 iptables,支持动态更新规则而无需重启服务。以下是几种常用的防火墙状态查询命令:
✅ 方法1:使用 firewall-cmd --state 查看运行状态
输出
running:表示防火墙正在运行。输出
not running:表示防火墙已停止。
⚠️ 注意:此命令仅检查firewalld守护进程是否在运行,不显示详细信息。
✅ 方法2:使用 systemctl status firewalld 查看服务详情(推荐)
该命令提供更全面的信息,包括:
服务是否 active (running) 或 inactive (dead)
是否设置为开机自启(enabled/disabled)
最近的日志记录和进程ID
📌 示例输出:
🔍 提示:建议使用
sudo systemctl status firewalld获取完整权限信息。
常用防火墙管理命令汇总
除了查看状态,以下命令可帮助您全面管理CentOS防火墙:
| 功能 | 命令 |
|---|---|
| 启动防火墙 | sudo systemctl start firewalld |
| 停止防火墙 | sudo systemctl stop firewalld |
| 重启防火墙 | sudo systemctl restart firewalld |
| 设置开机自启 | sudo systemctl enable firewalld |
| 禁用开机自启 | sudo systemctl disable firewalld |
| 重新加载配置 | sudo firewall-cmd --reload |
⚠️ 重要提醒:修改规则后必须执行
firewall-cmd --reload才能生效!
查看与管理防火墙规则
🔍 查看已开放的端口
➕ 开放指定端口(以8080/tcp为例)
❌ 关闭已开放的端口
🔎 验证端口是否开放
输出
yes表示已开放输出
no表示未开放
高级应用:批量开放端口与IP访问控制
📦 批量开放端口范围(如9001-9100)
🛑 允许/禁止特定IP访问
常见问题解答(FAQ)
Q1:firewall-cmd --state 和 systemctl status firewalld 有什么区别?
A:前者仅返回运行状态(running/not running),后者提供完整服务信息,包括启动状态、日志等,更适合日常运维。
Q2:修改规则后为什么没有生效?
A:请务必执行 firewall-cmd --reload 命令重新加载配置。
Q3:能否直接编辑配置文件?
A:可以,规则存储在 /etc/firewalld/zones/public.xml,但建议优先使用命令行操作,避免语法错误。
掌握CentOS防火墙状态查看与管理,是每一位Linux运维人员的必备技能。通过本文介绍的 systemctl 和 firewall-cmd 命令组合,您可以轻松实现:
实时监控防火墙运行状态
精准开放/关闭服务端口
实现IP级访问控制
提升服务器安全性
✅ 最佳实践建议:生产环境应保持防火墙开启,并仅开放必要端口,定期审计规则列表,确保最小权限原则。





















