欢迎光临
我们一直在努力

CentOS 查看防火墙状态命令详解(适用于CentOS 7/8)


CentOS 7及更高版本默认采用firewalld作为防火墙管理工具,其动态规则管理机制和区域化设计显著提升了安全运维效率。本文ZHANID工具网将系统梳理查看防火墙状态的常用命令,并结合端口管理、服务配置等核心操作进行详细说明。

一、防火墙状态检查基础命令

1. 查看防火墙服务运行状态

通过systemctl命令可获取防火墙服务的详细状态信息:

systemctl status firewalld

输出示例:

● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: active (running) since 二 2025-09-09 10:00:00 CST; 5min ago
 Main PID: 1234 (firewalld)
  CGroup: /system.slice/firewalld.service
      └─1234 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid

关键字段解析:

  • Active: active (running):表示防火墙正在运行。

  • Loaded: enabled:表示防火墙已设置为开机自启。

2. 快速检查防火墙是否运行

使用firewall-cmd命令可获取简化状态信息:

firewall-cmd --state

输出结果为running(运行中)或not running(未运行)。

二、防火墙规则与端口管理

1. 查看当前开放的端口

firewall-cmd --zone=public --list-ports

输出示例:

80/tcp 443/tcp 22/tcp

表示当前公共区域(public)开放了HTTP(80)、HTTPS(443)和SSH(22)端口。

2. 查看所有区域规则

firewall-cmd --list-all

输出示例:

public (active)
 target: default
 icmp-block-inversion: no
 interfaces: eth0
 sources: 
 services: ssh dhcpv6-client
 ports: 80/tcp 443/tcp
 protocols: 
 masquerade: no
 forward-ports: 
 source-ports: 
 icmp-blocks: 
 rich rules:

关键信息:

  • active:当前生效的区域。

  • services:预定义服务(如SSH、DHCPv6客户端)。

  • ports:手动开放的端口。

3. 端口开放与关闭操作

开放端口(永久生效):

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload # 重新加载规则

关闭端口:

firewall-cmd --zone=public --remove-port=8080/tcp --permanent
firewall-cmd --reload

三、防火墙区域与接口管理

1. 查看活动区域

firewall-cmd --get-active-zones

输出示例:

public
 interfaces: eth0 eth1

表示eth0和eth1网卡均属于public区域。

2. 查看接口所属区域

firewall-cmd --get-zone-of-interface=eth0

输出结果为接口所属区域名称(如public、trusted)。

3. 修改接口区域

firewall-cmd --zone=trusted --change-interface=eth0 --permanent
firewall-cmd --reload

将eth0接口从public区域切换至trusted区域(完全信任环境)。

CentOS  logo.webp

四、防火墙服务管理命令

1. 启动/停止/重启防火墙

systemctl start firewalld  # 启动
systemctl stop firewalld   # 停止
systemctl restart firewalld # 重启

2. 设置开机自启

systemctl enable firewalld  # 启用开机自启
systemctl disable firewalld # 禁用开机自启

3. 验证开机自启状态

systemctl is-enabled firewalld

输出结果为enabled或disabled。

五、高级操作与故障排查

1. 查看防火墙日志

journalctl -u firewalld --no-pager -n 50 # 查看最近50条日志

2. 紧急模式(拒绝所有流量)

firewall-cmd --panic-on   # 开启紧急模式
firewall-cmd --panic-off   # 关闭紧急模式

3. 常见问题处理

问题:修改规则后未生效。
解决:

  1. 检查是否遗漏--permanent参数(临时规则重启后失效)。

  2. 执行firewall-cmd --reload重新加载规则。

  3. 确认修改的区域是否正确(如public而非work)。

六、命令速查表

命令 功能说明
systemctl status firewalld 查看防火墙服务状态
firewall-cmd --state 快速检查防火墙是否运行
firewall-cmd --zone=public --list-ports 查看公共区域开放端口
firewall-cmd --list-all 查看所有区域规则
firewall-cmd --get-active-zones 查看活动区域
firewall-cmd --zone=public --add-port=80/tcp --permanent 永久开放端口
firewall-cmd --reload 重新加载防火墙规则
systemctl enable firewalld 设置开机自启

总结

CentOS 7/8的firewalld防火墙通过区域化设计和动态规则管理,为系统提供了灵活的安全防护机制。掌握上述命令后,用户可高效完成状态检查、端口管理、区域配置等核心操作。关键注意事项:

  1. 修改规则后务必执行firewall-cmd --reload或重启服务。

  2. 生产环境中谨慎使用--panic-on紧急模式。

  3. 长期开放的端口建议通过--permanent参数持久化配置。

赞(0) 打赏
未经允许不得转载:王子主页 » CentOS 查看防火墙状态命令详解(适用于CentOS 7/8)

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册