CentOS 7怎么修改具体的防火墙默认拦截规则
CentOS 7 里的“默认拦截规则”,其实并不是某一条孤立的规则在起作用,而是 firewalld 的 default_zone(比如 public)和它对应的 target(默认是 default)一起决定的:明确加入白名单的服务和端口会被放行,没被放行的,其余流量都会直接拒绝。要改这套行为,得
CentOS 7 里的“默认拦截规则”,其实并不是某一条孤立的规则在起作用,而是 firewalld 的 default_zone(比如 public)和它对应的 target(默认是 default)一起决定的:明确加入白名单的服务和端口会被放行,没被放行的,其余流量都会直接拒绝。要改这套行为,得通过 firewall-cmd 去调整 zone target,或者增删 service、port、rich rule;另外还有个关键点不能漏,必须配合 --permanent 和 --reload,修改后才会真正生效。

CentOS 7 里所谓的“默认拦截规则”,并不是一条拿来就能直接改的单独语句。它本质上是由 firewalld 的 zone 默认策略共同拼出来的,也就是 default_zone + target,再加上链级别的默认动作一起决定。说白了,动手修改之前,必须先分清楚到底是在改“入站默认拒绝”这类行为,还是在调整“某个 zone 的默认放行逻辑”;这一步要是没想明白,很容易一操作就把 SSH 连接直接弄断。
firewalld 的 default_zone 和 target 决定拦截起点
firewalld 不像 iptables 那样有显式的 INPUT DROP 规则。它的“默认拦截”来自两层:
default_zone(如public)的target值,默认是default,等价于“只放行白名单里的服务/端口,其余一律拒绝”- 底层 netfilter 链的默认策略仍是
ACCEPT,但 firewalld 通过 rich rule 或 zone 配置在 runtime 中插入了隐式拒绝逻辑
所以你不能靠改 /etc/firewalld/zones/public.xml 里某一行来“放开默认拦截”,而要改 zone 的 target 或换 zone。
例如把 public zone 的 target 改为 ACCEPT(极不推荐):
sudo firewall-cmd --permanent --zone=public --set-target=ACCEPT sudo firewall-cmd --reload
⚠️ 这会让所有未显式拒绝的入站连接被接受——相当于关掉防火墙逻辑,仅保留基础链控制。
真正可控的“默认拦截行为”在 zone 的 target 和 service/port 白名单里
你日常能安全调整的,其实是 zone 的「白名单范围」,而非“默认拦截开关”。常见做法:
- 用
firewall-cmd --add-service=xxx --permanent添加预定义服务(如http、mysql),它们自带端口+协议+辅助模块(如 conntrack) - 用
firewall-cmd --add-port=3306/tcp --permanent开放单端口,但不会自动处理 RELATED/ESTABLISHED 流量(firewalld 默认已内置处理) - 用
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' --permanent做源 IP 级放行,比改 target 更精准
注意:--permanent 必须配合 --reload 才生效;漏掉 --reload 是最常导致“改了没用”的原因。
想彻底绕过 firewalld 的默认拦截?别直接停服务,先切 zone
如果你需要临时允许大量端口或动态端口段(比如 Docker 或 K8s 场景),不要停 firewalld 或切回 iptables,而是:
- 新建一个宽松 zone:
sudo firewall-cmd --permanent --new-zone=trusted-internal - 设其 target 为
ACCEPT:sudo firewall-cmd --permanent --zone=trusted-internal --set-target=ACCEPT - 把内网网卡绑定过去:
sudo firewall-cmd --permanent --zone=trusted-internal --change-interface=eth1 sudo firewall-cmd --reload
这样外网仍走 public(默认拦截),内网走新 zone(默认放行),风险隔离清晰。直接 systemctl stop firewalld 会丢失所有 zone 状态,且重启后可能因网络脚本触发自动拉起,造成策略漂移。
改配置文件前务必确认你改的是 permanent 配置,不是 runtime
firewalld 区分 runtime(当前生效)和 permanent(重启后生效)。直接编辑 /etc/firewalld/zones/public.xml 只影响 permanent,但不会自动同步到 runtime —— 你得手动 --reload,否则 firewall-cmd --list-all 显示的还是旧规则。
更危险的是:如果 XML 文件格式出错(比如少闭合标签、属性值没加引号),--reload 会失败并回退到上一次有效配置,但错误信息只写在 journal 日志里:journalctl -u firewalld | tail -20。没人查日志就以为“改了没反应”,其实服务早 silently 拒绝了 reload 请求。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。














