上一篇
Linux防火墙状态怎么查?
- Linux
- 2025-06-15
- 2996
在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 # 显示所有规则
特殊场景处理
-
防火墙未安装?
通过包管理器安装工具:# Ubuntu/Debian sudo apt install ufw # CentOS/RHEL sudo yum install firewalld
-
工具冲突处理
若系统同时存在多个防火墙(如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环境实测验证。