firewall-cmd 简介
firewall-cmd 是 firewalld 的命令行管理工具,主要用于 Fedora、RHEL、CentOS Stream、Rocky Linux、AlmaLinux 等发行版。
核心概念
| 概念 | 说明 | 示例 |
|---|---|---|
| Zone | 防火墙区域,通常将网卡划入某个 Zone,不同 Zone 使用不同规则 | FedoraServer、public、docker |
| Service | 预定义的服务规则,内部包含对应端口/协议 | ssh → TCP 22、https → TCP 443 |
| Port | 直接指定需要开放的端口和协议 | 2222/tcp、9108/tcp |
关系可以简单理解:
网卡 enp4s0
↓
Zone: FedoraServer
├── Service: ssh、cockpit
└── Port: 2222/tcp、9108/tcp
常用查看命令
# 状态
firewall-cmd --state
# 查看网卡所在 Zone
firewall-cmd --get-active-zones
# 查看当前 Zone 的完整配置
firewall-cmd --list-all
# 查看开放的 Service
firewall-cmd --list-services
# 查看开放的 Port
firewall-cmd --list-ports
# 查看 Service 具体定义
firewall-cmd --info-service=ssh
开放/删除端口
# 临时开放
firewall-cmd --add-port=2222/tcp
# 永久开放
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
# 永久删除
firewall-cmd --permanent --remove-port=2222/tcp
firewall-cmd --reload
开放/删除 Service
# 开放 SSH
firewall-cmd --permanent --add-service=ssh
# 删除 SSH
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
常用操作组合
# 1. 看 Zone
firewall-cmd --get-active-zones
# 2. 看规则
firewall-cmd --list-all
# 3. 临时开放测试
firewall-cmd --add-port=9108/tcp
# 4. 测试正常后永久保存
firewall-cmd --permanent --add-port=9108/tcp
firewall-cmd --reload
# 5. 最后确认
firewall-cmd --list-all
一句话记忆:Zone 决定“哪组防火墙规则”,Service 按服务开放,Port 按端口直接开放;--permanent + --reload 用于永久保存并加载规则。

浙公网安备 33010602011771号