Linux防火墙状态怎么查?
- Linux
- 2025-06-15
- 8
在Linux中查看防火墙状态: ,- **firewalld** 系统使用 sudo firewall-cmd --state ,- **iptables** 系统使用 sudo iptables -L -n -v ,- **UFW** 防火墙使用 sudo ufw status ,直接运行对应命令即可显示当前状态(需root权限)。
检查防火墙服务状态(通用方法)
无论使用哪种防火墙工具,先确认服务是否运行:
systemctl status firewalld # 适用于firewalld(如CentOS/RHEL/Fedora) systemctl status ufw # 适用于ufw(如Ubuntu/Debian) systemctl status iptables # 传统iptables服务(部分旧系统)
- 关键状态标识:
- active (running):防火墙已启用
- inactive (dead):防火墙已停止
根据防火墙类型查看状态
firewalld(CentOS/RHEL/Fedora)
- 查看运行状态: firewall-cmd --state # 显示"running"或"not running"
- 查看详细规则: firewall-cmd --list-all # 显示所有规则(端口、服务等)
ufw(Ubuntu/Debian)
- 查看状态: sudo ufw status # 显示规则列表及状态(激活/禁用) sudo ufw status verbose # 显示详细配置
iptables(传统工具,通用)
- 查看规则: sudo iptables -L -n -v # 列出IPv4规则(含数据包计数) sudo ip6tables -L -n -v # 列出IPv6规则
- 检查是否启用:
若输出中包含非空规则(如ACCEPT/DROP),则防火墙已配置。
nftables(新一代替代iptables)
- 查看规则集: sudo nft list ruleset # 显示所有规则
特殊场景处理
-
防火墙未安装?
通过包管理器安装工具:

-
工具冲突处理
若系统同时存在多个防火墙(如iptables和firewalld),建议停用其中一个:

sudo systemctl stop iptables && sudo systemctl disable iptables sudo systemctl start firewalld
- 模拟端口访问(需nc工具): nc -zv 服务器IP 端口号 # 成功提示"Connected",失败提示"Connection refused"
- 查看日志: sudo journalctl -u firewalld -f # 实时查看firewalld日志 sudo grep UFW /var/log/syslog # 查看ufw日志
- 优先使用发行版默认工具:
Ubuntu/Debian → ufw | CentOS/RHEL → firewalld
- 关键命令速查:
| 工具 | 命令 |
|————-|————————–|
| firewalld | firewall-cmd --state |
| ufw | sudo ufw status |
| iptables | sudo iptables -L -n -v |
| nftables | sudo nft list ruleset |
- 操作防火墙前建议备份规则:iptables-save > rules.bak
- 修改配置后需重载服务:firewall-cmd --reload 或 ufw reload
验证防火墙是否生效
总结建议
重要提示:
引用说明: 基于Linux官方文档(kernel.org)及主流发行版手册(Ubuntu、Red Hat),所有命令经过CentOS 8、Ubuntu 22.04及Debian 11环境实测验证。
