在企业级服务器运维中,CentOS凭借其稳定性与安全性广受青睐。而作为系统安全的第一道防线——防火墙(Firewall),则是每一位Linux管理员必须熟练掌握的核心技术之一。

本文将围绕 CentOS 7及以上版本默认的 firewalld 防火墙服务,全面解析其工作原理、常用命令、端口开放技巧,并深入探讨与Docker容器集成时的关键配置问题,帮助你构建高效、安全的网络环境。
什么是 firewalld?它和 iptables 有何区别?
自 CentOS 7 起,系统默认使用 firewalld 替代传统的 iptables 作为动态防火墙管理工具。
firewalld:基于 区域(Zone)和服务(Service) 的抽象机制,支持运行时配置更新,无需重启整个防火墙服务。
iptables:底层基于 Netfilter 内核模块,规则复杂但灵活,适合高级定制化需求。
✅ 推荐使用 firewalld 进行日常管理,简洁直观;如需精细控制流量,可结合 rich rules 或直接操作 iptables。
firewalld 基础状态查询命令
在修改任何规则前,请先了解当前防火墙状态:
📌 提示:--list-all 是最常用的命令,能一次性展示该区域下的所有服务、端口、富规则等信息。
如何开放端口或服务?常用配置命令详解
1. 开放指定端口(临时 + 永久)
以开放 TCP 端口 8080 为例:
✅ 支持协议类型:tcp、udp、sctp 等。
2. 删除已开放的端口
3. 放行预定义服务(更安全便捷)
firewalld 内置了常见服务模板(如 SSH=22, HTTP=80, HTTPS=443):
查看内置服务列表:
高级配置:IP白名单、富规则(Rich Rules)
1. 给特定 IP 开放某个端口(例如允许 192.168.1.100 访问 22 端口)
2. 设置 IP 白名单(对某 IP 开放所有端口)
适用于内网集群通信场景:
3. 禁止 Ping(防探测攻击)
⚠️ 注意:此设置不通过 firewalld 控制,属于内核参数调整。
Docker 容器环境下防火墙配置难点与解决方案
❗ 问题:Docker 容器端口绕过 firewalld?
由于 Docker 使用自己的 iptables 规则链,默认会绕过 firewalld 的控制,导致即使关闭了主机端口,容器仍可被访问。
✅ 解决方案一:启用 NAT 转发并信任 docker0 接口
验证是否成功:
✅ 解决方案二:禁止 Docker 修改 iptables(推荐生产环境)
编辑 Docker 服务配置文件:
找到 ExecStart 行,在 dockerd 后添加 --iptables=false:
保存后执行:
此时,所有容器网络规则需由 firewalld 显式管理,提升安全性。
✅ 方案三:手动添加容器 IP 到白名单
若容器固定 IP 为 172.18.0.10,可添加富规则放行:
最佳实践建议:安全配置流程
调试阶段宽松策略
初期可先开放必要端口或添加 IP 白名单,避免误锁导致无法远程连接。策略写入脚本备份
所有命令建议提前写入.sh脚本或文本文件,便于批量执行与回滚。逐步收紧权限
待服务正常运行后,逐步移除宽泛规则(如全端口开放),只保留最小必要权限。定期审查规则
使用firewall-cmd --list-all和cat /etc/firewalld/zones/*.xml审核配置。避免永久关闭防火墙
不推荐执行systemctl disable firewalld,应通过合理配置实现功能与安全平衡。
常用辅助命令汇总(收藏备用)
| 功能 | 命令 |
|---|---|
| 启动防火墙 | sudo systemctl start firewalld |
| 开机自启 | sudo systemctl enable firewalld |
| 查看状态 | sudo systemctl status firewalld |
| 临时关闭 | sudo systemctl stop firewalld |
| 永久关闭(不推荐) | sudo systemctl disable firewalld && sudo systemctl stop firewalld |
| 重载规则 | sudo firewall-cmd --reload |
| 当前规则写入永久配置 | sudo firewall-cmd --runtime-to-permanent |
| 查看 nat 表规则 | sudo iptables -nL -t nat |
CentOS 防火墙不仅是“开关端口”的工具,更是保障系统安全的重要屏障。掌握 firewalld 的区域、服务、富规则三大核心概念,结合 Docker 场景下的特殊处理方式,才能真正做到既通又安。
无论你是新手运维还是资深工程师,都建议将本文收藏,作为日常操作手册。网络安全无小事,每一条规则都可能是抵御攻击的关键防线!





















