firewalld的zone是策略配置的强制逻辑基础,接口绑定哪个zone即应用其默认规则;需先用--get-active-zones等命令查清现状,再按场景选public、internal、trusted等预置zone或自定义zone,并务必永久设置后重载生效。

firewalld 的区域(zone)是策略配置的起点,不是可选步骤,而是必须明确的逻辑基础。一个接口绑定到哪个 zone,就应用哪套默认规则——改错 zone,再开多少端口也没用。
识别当前区域和接口归属
先看清现状,避免盲目操作:
- 查看所有已激活的区域及对应网卡:firewall-cmd --get-active-zones
- 查默认 zone(新接口自动归入此 zone):firewall-cmd --get-default-zone
- 列出全部预置 zone 名称:firewall-cmd --get-zones
- 查看某 zone 的完整配置(比如 public):firewall-cmd --zone=public --list-all
按场景选择合适 zone
不同 zone 预设策略差异极大,不能只看名字猜用途:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- public:默认区域,仅放行 ssh 和 dhcpv6-client,适合外网-facing 接口
- internal / home:允许 samba、mdns、ssh 等,适合内网或可信局域网
- trusted:完全放行所有入站流量,仅用于绝对可信的隔离网络(如 Docker bridge 或管理 VLAN)
- drop:静默丢弃所有入站包,不回复 ICMP,适合暴露在公网但无需响应的节点
- dmz:只开放明确指定的服务,适用于对外提供 Web/FTP 等服务的跳板机
调整接口所属 zone
zone 绑定分临时和永久两种,生产环境务必做永久设置:
- 将网卡 ens33 临时划入 internal 区域:firewall-cmd --zone=internal --change-interface=ens33
- 永久设置默认 zone 为 internal:firewall-cmd --set-default-zone=internal
- 永久将 ens33 加入 trusted zone:firewall-cmd --permanent --zone=trusted --add-interface=ens33
- 修改后必须重载生效:firewall-cmd --reload
自定义 zone(进阶)
当预置 zone 都不匹配业务需求时,可新建 zone:
- 创建名为 appserver 的新 zone:firewall-cmd --permanent --new-zone=appserver
- 为其添加服务(如 http、https):firewall-cmd --permanent --zone=appserver --add-service=http
- 绑定接口并重载:firewall-cmd --permanent --zone=appserver --add-interface=eth0 && firewall-cmd --reload
- 配置文件会生成在 /etc/firewalld/zones/appserver.xml,可手动编辑补充规则










