firewalld 防火墙服务需同时启动并启用才能持久生效:执行 systemctl start firewalld 立即启动,systemctl enable firewalld 实现开机自启,推荐使用 systemctl enable --now firewalld 一键完成;验证时 firewall-cmd --state 应返回 running,systemctl is-enabled firewalld 应返回 enabled。

启动并启用 firewalld 防火墙服务,关键在于区分“临时启动”和“永久启用”两个动作:前者让服务立刻运行,后者确保系统重启后自动加载。
检查是否已安装并确认状态
大多数 RHEL/CentOS/AlmaLinux/Rocky/Fedora 系统默认已预装 firewalld。先验证服务是否存在且未运行:
- 查看当前状态:firewall-cmd --state(返回 running 表示已启动,not running 表示未运行)
- 查看 systemd 详细状态:systemctl status firewalld(观察 Active 行)
启动服务(立即生效)
若服务未运行,执行以下命令启动它:
- systemctl start firewalld
此时防火墙开始工作,但重启系统后会停止。
设置开机自启(永久生效)
要让 firewalld 每次开机自动运行,必须启用它:
- systemctl enable firewalld
该操作会创建符号链接,将 firewalld 加入系统启动目标。可与启动命令合并为一键操作:systemctl enable --now firewalld(同时启用并启动)。
验证配置是否成功
完成上述步骤后,建议快速验证:
- 再次运行 firewall-cmd --state,应输出 running
- 运行 systemctl is-enabled firewalld,应返回 enabled
- 查看默认区域是否生效:firewall-cmd --get-default-zone(通常为 public)











