CentOS防火墙状态查看:全面掌握firewalld服务管理技巧(2025最新指南)

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

CentOS防火墙状态查看:全面掌握firewalld服务管理技巧(2025最新指南)


为什么需要查看CentOS防火墙状态?

在部署Web服务、数据库或远程访问(如SSH)时,若未正确配置防火墙,可能导致服务无法访问或系统暴露于风险之中。因此,定期检查防火墙运行状态是系统管理员的基本操作,有助于:

  • 确认防火墙是否启用

  • 验证端口是否开放

  • 排查网络连接问题

  • 提升系统整体安全性


CentOS防火墙状态查看方法(基于firewalld)

CentOS 7及以上版本默认使用 firewalld 服务替代传统的 iptables,支持动态更新规则而无需重启服务。以下是几种常用的防火墙状态查询命令:

✅ 方法1:使用 firewall-cmd --state 查看运行状态

firewall-cmd --state
  • 输出 running:表示防火墙正在运行。

  • 输出 not running:表示防火墙已停止。

⚠️ 注意:此命令仅检查firewalld守护进程是否在运行,不显示详细信息。

✅ 方法2:使用 systemctl status firewalld 查看服务详情(推荐)

systemctl status firewalld

该命令提供更全面的信息,包括:

  • 服务是否 active (running) 或 inactive (dead)

  • 是否设置为开机自启(enabled/disabled)

  • 最近的日志记录和进程ID

📌 示例输出:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2025-10-20 10:30:45 CST; 20min ago

🔍 提示:建议使用 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 才能生效!


查看与管理防火墙规则

🔍 查看已开放的端口

# 查看当前开放的端口
sudo firewall-cmd --list-ports

# 查看永久开放的端口
sudo firewall-cmd --permanent --list-ports

# 查看所有规则(含服务、端口、富规则等)
sudo firewall-cmd --list-all

➕ 开放指定端口(以8080/tcp为例)

# 永久开放TCP 8080端口
sudo firewall-cmd --permanent --add-port=8080/tcp

# 重新加载使配置生效
sudo firewall-cmd --reload

❌ 关闭已开放的端口

# 永久移除8080/tcp端口
sudo firewall-cmd --permanent --remove-port=8080/tcp

# 重新加载
sudo firewall-cmd --reload

🔎 验证端口是否开放

firewall-cmd --query-port=8080/tcp
  • 输出 yes 表示已开放

  • 输出 no 表示未开放


高级应用:批量开放端口与IP访问控制

📦 批量开放端口范围(如9001-9100)

sudo firewall-cmd --permanent --add-port=9001-9100/tcp
sudo firewall-cmd --reload

🛑 允许/禁止特定IP访问

# 允许IP 192.168.1.100 访问
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'

# 禁止IP访问8080端口
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'

sudo firewall-cmd --reload

常见问题解答(FAQ)

Q1:firewall-cmd --statesystemctl status firewalld 有什么区别?
A:前者仅返回运行状态(running/not running),后者提供完整服务信息,包括启动状态、日志等,更适合日常运维。

Q2:修改规则后为什么没有生效?
A:请务必执行 firewall-cmd --reload 命令重新加载配置。

Q3:能否直接编辑配置文件?
A:可以,规则存储在 /etc/firewalld/zones/public.xml,但建议优先使用命令行操作,避免语法错误。


掌握CentOS防火墙状态查看与管理,是每一位Linux运维人员的必备技能。通过本文介绍的 systemctlfirewall-cmd 命令组合,您可以轻松实现:

  • 实时监控防火墙运行状态

  • 精准开放/关闭服务端口

  • 实现IP级访问控制

  • 提升服务器安全性

最佳实践建议:生产环境应保持防火墙开启,并仅开放必要端口,定期审计规则列表,确保最小权限原则。

发表评论

评论列表

还没有评论,快来说点什么吧~