讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux firewalld 在生产环境的使用建议

夏枫大大_9521

夏枫大大_9521

发布时间:2026-01-28 16:58:02

|

798人浏览过

|

来源于php中文网

原创

生产环境是否启用 firewalld 取决于网络策略管理主体:若已有硬件防火墙、云安全组或 eBPF/iptables 工具(如 Calico),则 firewalld 冗余且易引发冲突;仅推荐用于无集中管控的中小规模物理机/虚拟机场景。

linux firewalld 在生产环境的使用建议

firewalld 服务是否该在生产环境启用

生产环境是否启用 firewalld,不取决于“该不该用”,而取决于“谁在管网络策略”。如果已有专用硬件防火墙、云平台安全组(如 AWS Security Group、阿里云 ECS 安全组)或主机侧 eBPF/iptables 直接管理工具(如 Calico、Cilium),firewalld 往往是冗余层,反而增加策略冲突风险。它适合中小规模、无集中网络策略管控的物理机或虚拟机场景,尤其是管理员需频繁增删端口且不熟悉 raw iptables 规则时。

  • 不建议在 Kubernetes 节点上同时启用 firewalld 和 kube-proxy 的 iptables 模式,二者会竞争 FORWARD 链规则,导致 Pod 网络不通或 Service 访问异常
  • 若使用 cloud-init 或 Ansible 自动化部署,确保 firewalld 启动顺序早于应用服务,否则服务可能在防火墙就绪前监听成功,造成短暂暴露
  • 默认的 public zone 允许 ssh、dhcpv6-client,但禁止所有入向新连接——这点常被误认为“已锁死”,实则只是没显式放行业务端口

zone 切换与 runtime/permanent 模式的坑

firewall-cmd 的 --runtime-to-permanent 不是“保存当前配置”,而是把当前 runtime 规则覆盖写入 permanent 配置。若你只临时加了一条端口、未 reload,又执行该命令,之前通过 firewall-offline-cmd 或手动编辑 /etc/firewalld/zones/*.xml 写死的规则就会丢失。

  • 修改 zone 建议始终用 firewall-cmd --permanent --set-default-zone=trusted + firewall-cmd --reload,避免仅 runtime 切换导致重启后回退
  • 给网卡绑定 zone 时,不要依赖 firewall-cmd --change-interface=eth0 --zone=internal,该操作仅 runtime 生效;应改用 nmcli connection modify "System eth0" firewall.zone internal(配合 NetworkManager)或在 /etc/sysconfig/network-scripts/ifcfg-eth0 中加 FIREWALL_ZONE=internal
  • firewall-cmd --list-all-zones 输出中,每个 zone 的 services: 行只显示“预定义服务”(即 /usr/lib/firewalld/services/ 下的 XML 文件),自定义端口必须看 ports: 字段,否则容易漏检

如何安全地批量开放端口而不留后门

直接 firewall-cmd --permanent --add-port=8080-8090/tcp 是高危操作:范围端口难以审计,且一旦某端口被恶意进程监听,即自动获得通行权。生产环境应坚持“最小端口+明确协议+绑定 zone”。

OpenJDK 24
OpenJDK 24

OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。

下载
  • 优先用服务名而非端口号:firewall-cmd --permanent --add-service=http,因为 /usr/lib/firewalld/services/http.xml 明确定义了 80/tcp,语义清晰且防错
  • 如需开放非标端口(如 Java 应用的 8761/tcp),先建自定义服务:
    cat > /etc/firewalld/services/eureka.xml <<'EOF'
    <service>
    <short>Eureka Server</short>
    <port protocol="tcp" port="8761"/>
    </service>
    EOF
    ,再 firewall-cmd --reload && firewall-cmd --permanent --add-service=eureka
  • 永远避免 --add-port=0-65535/udp 类操作;UDP 端口尤其危险,因无连接状态跟踪,firewalld 默认仅靠 timeout 控制,易被放大攻击利用

排查 connection refused 却能 ping 通的问题

ping 通只说明 ICMP 和网络层可达,connection refused 多数情况是 TCP 连接被拒绝,原因常不在 firewalld,但在排查路径上它最容易被冤枉。

  • 先确认服务真在监听:ss -tlnp | grep :8080,若无输出,问题在应用未启动或绑定错了地址(如只绑 127.0.0.1)
  • 再查 firewalld 是否放行:firewall-cmd --list-ports 和 firewall-cmd --list-services,注意输出中的 zone 是否匹配网卡实际所属 zone(firewall-cmd --get-active-zones)
  • 最后验证规则是否生效:用 firewall-cmd --direct --get-all-rules 查看是否有 direct rules 干扰,或用 iptables -t filter -L INPUT -n -v 看底层链是否含 REJECT 或 DROP —— firewalld 的 default_zone 若设为 drop,未匹配任何 rule 的包会被静默丢弃,此时 telnet 会超时而非 refused

真正麻烦的是 multi-zone 场景下 interface 绑定漂移,比如 DHCP 重获 IP 后 NetworkManager 重载配置,导致网卡 zone 回到 default。这种问题不会报错,只会让某批请求突然失联,得盯住 journalctl -u firewalld -f 里 zone change 日志。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4584

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

5937

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2462

2024.11.28

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

3870

2025.09.10

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

357

2023.12.07

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

814

2023.11.24

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

116

2025.12.22

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

188

2026.06.29

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

0

2026.10.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn