在Linux系统中查询防火墙状态及规则主要通过检查系统使用的防火墙服务(如iptables、firewalld或ufw)来实现,具体命令取决于发行版和防火墙工具。

确定当前防火墙服务
首先确认系统使用的防火墙服务,不同Linux发行版可能默认使用不同工具:
- CentOS/RHEL 7+:通常使用firewalld
- Ubuntu/Debian:可能使用ufw(Uncomplicated Firewall)或iptables
- 较旧系统或自定义配置:可能直接使用iptables
运行以下命令快速识别:
sudo systemctl status firewalld # 检查firewalld是否运行 sudo systemctl status ufw # 检查ufw是否运行 sudo iptables -L # 检查iptables规则
主流防火墙工具查询方法
iptables查询
iptables是Linux内核集成的包过滤工具,即使系统使用firewalld或ufw,底层仍可能调用iptables。
查看所有规则:
sudo iptables -L -n -v
-L:列出规则-n:禁用反向DNS解析,加快显示速度-v:显示详细信息(数据包和字节计数)
查看NAT表规则:
sudo iptables -t nat -L -n -v
查看规则编号(便于管理):
sudo iptables -L --line-numbers
firewalld查询
firewalld是动态防火墙管理器,支持区域(zone)概念,更适合网络环境频繁变化的场景。
查看防火墙状态:
sudo firewall-cmd --state
查看活动区域及规则:

sudo firewall-cmd --list-all
输出包括:允许的服务、端口、协议、源地址等。
查看所有可用区域配置:
sudo firewall-cmd --list-all-zones
查看运行时与永久配置差异:
sudo firewall-cmd --runtime-to-permanent # 显示差异
ufw查询
ufw是iptables的简化前端,主要用在Ubuntu/Debian系列。
查看状态及规则:
sudo ufw status verbose ```包括:策略(默认允许/拒绝)、活动规则列表。 **查看编号规则(用于删除或修改):** ```bash sudo ufw status numbered
高级查询与监控技巧
规则统计信息
使用iptables查看规则匹配计数,识别流量模式:
sudo iptables -L -n -v | head -20
关注pkts和bytes列,可发现异常流量。
追踪特定端口或IP
检查22端口(SSH)是否允许:
sudo iptables -L -n | grep :22
查看来自特定IP的规则:

sudo iptables -L -n -v | grep 192.168.1.100
结合日志分析
启用日志记录后,通过dmesg或journalctl查看防火墙日志:
sudo dmesg | grep -i firewall sudo journalctl -xe | grep -i deny
专业排查流程
当遇到网络连接问题时,建议按以下顺序排查:
- 确认服务运行:
systemctl status <防火墙服务> - 检查默认策略:查看INPUT/OUTPUT链的默认动作(ACCEPT/DROP)
- 验证规则顺序:规则从上到下匹配,优先级高的规则应靠前
- 测试临时关闭(谨慎操作):
sudo systemctl stop firewalld # 临时停止firewalld sudo ufw disable # 临时禁用ufw
测试后务必重新启用。
安全增强建议
- 最小化开放端口:仅允许必要服务,使用
sudo netstat -tulnp查看监听端口 - 使用区域限制:在firewalld中配置源IP限制,如
sudo firewall-cmd --zone=trusted --add-source=192.168.1.0/24 - 定期审计规则:保存当前规则备份
sudo iptables-save > /backup/iptables_backup_$(date +%F).rules - 启用连接跟踪:对于复杂协议(如FTP),确保加载相关模块
lsmod | grep conntrack
可视化工具推荐
对于复杂环境,可考虑安装图形界面或监控工具:
- firewall-config:firewalld图形配置工具
- gufw:ufw的图形界面
- Cockpit:Web管理界面,含防火墙模块
掌握Linux防火墙查询不仅是执行命令,更要理解规则背后的设计逻辑,生产服务器应遵循“默认拒绝”原则,先设置DROP策略再逐步开放必要端口,同时注意firewalld的运行时与永久配置区别,避免重启后规则丢失,对于高安全环境,建议结合网络层防火墙(如云平台安全组)形成纵深防御。
您在配置防火墙时遇到的具体场景是什么?是服务器端口无法访问,还是需要优化现有规则?欢迎分享您的实际情况,我可以提供更针对性的分析。
原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/2551.html