上一篇
Linux防火墙状态怎么查
- Linux
- 2025-06-16
- 5
在Linux中查看 防火墙状态,执行以下命令:,1. 使用 systemctl status firewalld(Firewalld),2. 或 sudo ufw status(UFW),3. 或 sudo iptables -L( iptables),若显示”active”或列出规则,则防火墙已开启。
常见防火墙工具及对应发行版
| 防火墙工具 | 适用发行版 | 特点 |
|---|---|---|
| firewalld | CentOS/RHEL 7+、Fedora、OpenSUSE | 动态管理,支持区域划分 |
| iptables | Debian/Ubuntu(旧版)、CentOS 6 | 传统工具,直接操作内核规则 |
| ufw | Ubuntu/Debian | 简化iptables的配置界面 |
| nftables | 较新内核系统(逐步替代iptables) | 更高效的规则管理 |
查看防火墙状态的具体方法
检查 firewalld 状态
systemctl status firewalld
- 输出说明:
- Active: active (running) → 防火墙已开启
- Active: inactive (dead) → 防火墙已关闭
- 补充命令: firewall-cmd --state # 直接返回状态(显示"running"或"not running")
检查 ufw 状态(Ubuntu/Debian)
sudo ufw status
- 输出说明:
- Status: active → 防火墙已开启(下方显示具体规则)
- Status: inactive → 防火墙已关闭
- 详细模式: sudo ufw status verbose # 显示详细规则及策略
检查 iptables 状态
sudo iptables -L -n -v # 列出所有规则(无规则也可能表示防火墙关闭)
- 关键提示:
- 若输出中无任何规则或只有ACCEPT规则,可能防火墙未启用或未配置拦截策略。
- 需结合服务状态确认: systemctl status iptables # CentOS 6 service iptables status # 旧版Debian/Ubuntu
检查 nftables 状态
sudo nft list ruleset # 列出所有规则
- 服务状态: systemctl status nftables
通用检查方法
通过服务管理工具 systemctl
systemctl list-unit-files | grep -E 'firewalld|ufw|iptables|nftables'
- 显示防火墙服务是否被启用(enabled表示开机自启)。
查看默认端口状态
使用netstat或ss检查关键端口是否被拦截:

常见问题解决
-
命令未找到?
可能未安装对应工具:
# 安装firewalld sudo yum install firewalld # CentOS/RHEL sudo dnf install firewalld # Fedora # 安装ufw sudo apt install ufw # Ubuntu/Debian
-
防火墙开启但未拦截流量?
检查默认策略:
firewall-cmd --list-all # 查看firewalld默认区域规则 sudo ufw show raw # 查看ufw底层iptables规则
-
如何临时关闭防火墙?
sudo systemctl stop firewalld # 停止firewalld sudo ufw disable # 禁用ufw
总结建议
- 优先使用发行版默认工具:
CentOS/RHEL 用firewalld,Ubuntu/Debian 用ufw。
- 状态确认需双重验证:
服务状态(systemctl) + 规则状态(如ufw status)。
- 修改配置后重载: firewall-cmd --reload # firewalld生效配置 sudo ufw reload # ufw生效配置
- 生产环境谨慎操作:
修改防火墙前备份规则,避免SSH连接中断。
重要安全提示:
防火墙关闭时系统暴露于网络威胁,若非必要,请保持开启状态,并仅放行可信端口(如SSH、HTTP/HTTPS)。
引用说明: 参考Linux官方文档(Linux防火墙指南(access.redhat.com)及Ubuntu UFW手册(help.ubuntu.com),确保信息准确性和可靠性。