如何在Linux利用Firewalld的--Permanent与--Reload组合机制确保在不中断现有线上业务长连接的同时应用新规则

小伟吖_7142

小伟吖_7142

2026-06-01

1003人浏览

原创

firewalld的运行时规则与永久配置分离,--permanent仅修改配置文件,--reload才将永久规则合并到运行时且不中断长连接;必须先确认服务活跃、无冲突防火墙,再执行永久添加/删除规则并重载,最后验证生效状态及连接持续性。

如何在linux利用firewalld的--permanent与--reload组合机制确保在不中断现有线上业务长连接的同时应用新规则

关键在于理解 firewalld 的“运行时规则”与“永久配置”是两个独立层,--permanent 只改配置文件,--reload 才把配置合并进当前运行环境——这个过程不重置连接状态,所以长连接(如数据库连接、SSH 会话、WebSocket、HTTP/2 流)全部保持畅通。

确认当前防火墙处于活跃且可热更新状态

先确保服务在运行,且不是靠 iptables-legacy 或其他冲突服务接管:

  • 检查 firewalld 是否运行:firewall-cmd --state(返回 running 即可)
  • 验证未被禁用:systemctl is-enabled firewalld(应为 enabled)
  • 确认没有其他防火墙(如 ufw、iptables.service)正在运行:systemctl list-units --type=service | grep -E "(ufw|iptables)",如有需停用并屏蔽

所有变更必须走“永久+重载”流程

临时规则(不带 --permanent)只存于内存,重启或 reload 后即消失,不可用于生产;而永久规则若不 reload,永远不生效——这是线上误配的最常见原因。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 开放 HTTP/HTTPS 服务:firewall-cmd --permanent --add-service=http && firewall-cmd --permanent --add-service=https
  • 开放自定义端口(如 API 端口 8081):firewall-cmd --permanent --add-port=8081/tcp
  • 移除旧端口(如停用测试端口 9000):firewall-cmd --permanent --remove-port=9000/tcp
  • 执行统一重载:firewall-cmd --reload(注意:不是 restart,也不用加 sudo,除非当前用户无权限)

验证规则已真正加载到运行时

不能只看命令没报错,要确认规则实际存在于当前运行环境:

  • 查当前区域所有开放服务:firewall-cmd --list-services(应含 http、https)
  • 查当前开放端口:firewall-cmd --list-ports(应含 8081/tcp)
  • 精准验证某端口是否被放行:firewall-cmd --query-port=8081/tcp(返回 yes 才算成功)
  • 检查连接未中断:从另一终端 ss -tnp | grep :22 或 netstat -tnp | grep ESTAB,确认 SSH 或应用连接仍为 ESTABLISHED

需要源 IP 控制时,必须用富规则而非端口命令

--add-port 是全网放行,无法限制访问者。若要求“仅运维跳板机 10.10.5.100 能连管理端口 2222”,必须用富规则,并注意顺序:

  • 允许指定 IP 访问:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.5.100" port port="2222" protocol="tcp" accept'
  • 拒绝其他所有 IP 访问该端口(放在允许规则之后):firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="2222" protocol="tcp" reject'
  • 执行 firewall-cmd --reload 生效
  • 验证:firewall-cmd --list-rich-rules 查看规则顺序是否正确

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

5105

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

435

21

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4310

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3633

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2893

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7110

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6762

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3873

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3365

4

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习

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

共0课时 | 0人学习