firewalld 默认区域需永久设置并重载生效,新网卡自动归属该区域,已绑定接口需单独调整;查看默认区、活跃区及服务状态后,按场景选public/internal/home/trusted/dmz/drop等预置zone。

firewalld 的默认区域决定了新接入网卡自动归属的安全策略,必须明确设置且需永久生效——临时修改重启即失效,生产环境务必用 --permanent 参数。
确认当前默认区域和活跃状态
先查清现状,避免覆盖错误配置:
- 查看当前默认区域:
firewall-cmd --get-default-zone - 列出所有已激活的 zone 及其绑定接口:
firewall-cmd --get-active-zones - 检查 firewalld 服务是否运行:
firewall-cmd --state(返回 running 才有效)
选择适合场景的预置区域
不同 zone 预设规则差异显著,不能仅凭名称判断:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- public:仅放行 ssh、dhcpv6-client,适合面向公网的接口
- internal 或 home:允许 samba、mdns、ssh 等,适合内网或可信局域网
- trusted:完全放行所有入站流量,仅用于 Docker bridge 或隔离管理 VLAN
- dmz:只开放明确指定服务(如 http、https),适合对外提供 Web 的跳板机
- drop:静默丢弃所有入站包,不响应 ICMP,适合暴露但无需响应的节点
永久设置默认区域并重载
执行后必须重载才能应用,否则配置不生效:
- 将默认区域永久设为 internal:
firewall-cmd --permanent --set-default-zone=internal - 重载配置使永久设置生效:
firewall-cmd --reload - 验证结果:
firewall-cmd --get-default-zone应返回 internal
补充说明:新接口自动归属与已有接口调整
默认区域只影响后续新添加的网卡;已绑定接口不会自动迁移,需单独处理:
- 查看某接口当前所属 zone:
firewall-cmd --get-active-zones输出中找对应网卡名 - 将已有接口 ens33 永久划入 internal:
firewall-cmd --permanent --zone=internal --add-interface=ens33 - 调整后仍需执行
firewall-cmd --reload

















