当执行 sudo firewall-cmd --list-ports
出现 FirewallD is not running
错误时,说明 防火墙服务(FirewallD)未启动。以下是详细的解决步骤:
一、检查 FirewallD 状态
首先确认服务是否真的未运行:
sudo systemctl status firewalld
- 如果输出中包含
inactive (dead)
,则确认为未启动状态。
二、启动 FirewallD 服务
1. 临时启动(当前会话有效,重启后失效)
sudo systemctl start firewalld
2. 设置开机自启动(推荐,避免重启后服务再次关闭)
sudo systemctl enable firewalld
3. 验证启动状态
再次执行状态命令,确认服务已运行:
sudo systemctl status firewalld
- 输出中出现
active (running)
即表示启动成功。
三、重新执行命令
服务启动后,再次运行原命令即可查看开放的端口:
sudo firewall-cmd --list-ports
四、补充说明
-
FirewallD 与 iptables 的关系:FirewallD 是 CentOS 7+、Fedora 等系统默认的防火墙管理工具,底层仍基于 iptables。如果系统中同时存在 iptables 服务,可能需要先停止 iptables 避免冲突:
sudo systemctl stop iptables sudo systemctl disable iptables
-
关闭 FirewallD:如果确实不需要防火墙(不推荐),可以永久关闭:
sudo systemctl stop firewalld sudo systemctl disable firewalld
通过以上步骤,即可解决 FirewallD is not running
错误并正常使用 firewall-cmd
命令管理防火墙。