检查 firewalld
状态(CentOS/RHEL/Fedora)
firewalld 是红帽系发行版的默认防火墙,通过以下命令操作:
# 若显示 "active (running)" 表示已启用 ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2025-10-10 09:00:00 UTC; 1h ago # 直接获取防火墙状态(更简洁) sudo firewall-cmd --state running # 输出 "running" 表示开启
检查 ufw
状态(Ubuntu/Debian)
ufw(Uncomplicated Firewall)是Ubuntu系的简化工具:
# 查看状态(需sudo权限) sudo ufw status # 若开启会显示规则列表, Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere # 若未启用则显示: Status: inactive
检查 iptables
状态(传统工具,通用)
iptables 是早期Linux的通用防火墙,若系统未使用 firewalld
或 ufw
,可通过以下方式:
# 查看规则列表(无输出表示未启用或规则为空) sudo iptables -L -n -v # 检查服务状态(适用于SysVinit系统) sudo service iptables status # 或 sudo /etc/init.d/iptables status
其他诊断方法
-
检查默认防火墙服务
通过系统服务管理器确认:# 列出所有防火墙相关服务 sudo systemctl list-unit-files | grep -E 'firewalld|ufw|iptables'
-
使用
nmap
扫描本地端口(外部视角验证)
安装nmap
后扫描本机:sudo nmap -sT -p- 127.0.0.1
若关键端口(如22/80)状态为
filtered
,说明防火墙可能已拦截。
常见问题解决
-
防火墙未启动?
启用命令:firewalld
:sudo systemctl start firewalld && sudo systemctl enable firewalld
ufw
:sudo ufw enable
-
命令不存在?
可能未安装对应工具:- 安装
ufw
:sudo apt install ufw
- 安装
firewalld
:sudo yum install firewalld
- 安装
-
多防火墙冲突
避免同时运行多个防火墙(如iptables
与firewalld
),可能导致规则混乱。
- CentOS/RHEL/Fedora → 优先用
firewall-cmd --state
- Ubuntu/Debian → 使用
sudo ufw status
- 旧版系统 → 检查
iptables -L
或服务状态 - 不确定工具? → 通过
systemctl
或service
命令排查服务名
定期检查防火墙状态是基础安全实践,配置规则后,建议用 telnet
或 nmap
验证端口是否按预期开放/关闭,确保防护生效。
本文参考来源:
- Linux
man
手册(man firewalld
,man ufw
)- Red Hat 官方文档:Firewalld 入门指南
- Ubuntu Wiki:UFW 基础
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6865.html