firewall-cmd通过将网卡绑定到zone实现流量过滤:用--get-zone-of-interface查归属,--add-interface启用过滤(临时或永久),--remove-interface停用,--zone切换可调整过滤强度。

firewall-cmd 本身不直接“启用或关闭网卡的流量过滤”,而是通过将网卡分配给某个 zone(区域),由该 zone 的预设规则决定是否放行流量。网卡一旦被 firewalld 管理,其入站/出站数据包就会受对应 zone 规则约束——这本质上就是开启过滤;反之,若网卡未被任何 zone 管理(即不在任何 zone 中),firewalld 就不会对该接口应用规则,相当于绕过过滤(但系统级 netfilter 仍生效,只是 firewalld 不干预)。
查看网卡当前所属区域
确认某块网卡(如 ens33)是否已被 firewalld 纳入管理:
- firewall-cmd --get-zone-of-interface=ens33 —— 显示该网卡归属的 zone;若返回 no zone,说明它目前未被任何 zone 管理
把网卡加入指定区域(开启 firewalld 过滤)
让 firewalld 开始对该网卡的流量执行规则检查:
- firewall-cmd --zone=public --add-interface=ens33 —— 临时加入 public 区域(重启 firewalld 或系统后失效)
- firewall-cmd --permanent --zone=public --add-interface=ens33 —— 永久加入,需配合 firewall-cmd --reload 生效
加入后,该网卡所有入站流量将按 public 区域的默认策略(通常只放行 ssh、dhcpv6-client 等基础服务)进行过滤。
从区域中移除网卡(停止 firewalld 对该接口的过滤)
让 firewalld 不再为这块网卡加载任何规则(恢复为“无 zone 管理”状态):
- firewall-cmd --zone=public --remove-interface=ens33 —— 临时移除
- firewall-cmd --permanent --zone=public --remove-interface=ens33 —— 永久移除,同样需 --reload
注意:移除后,firewalld 不再控制该接口,但内核 netfilter 仍工作,其他工具(如 iptables/nftables)或系统默认策略可能仍有影响。
快速切换网卡区域(改变过滤强度)
不同 zone 安全等级不同,可借此调整过滤严格程度:
- 想宽松些(如内网测试):firewall-cmd --zone=trusted --add-interface=ens33(trusted 允许所有入站)
- 想更严格(如暴露在公网):firewall-cmd --zone=drop --add-interface=ens33(drop 默认丢弃所有入站,仅允许出站)
操作后建议用 firewall-cmd --list-all --zone=目标区域 核对规则是否符合预期。


















