永久放行自定义tcp端口需同时执行--permanent添加和--reload重载,如sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload,并验证运行时与永久配置。

永久放行自定义 TCP 端口,关键在于写入配置并重载规则,不能只加临时规则或漏掉 --permanent 和 --reload。
确认 firewalld 已启用并明确作用区域
先确保服务运行且知道规则生效的 zone(默认通常是 public):
- 检查状态:
sudo systemctl status firewalld;未运行则执行sudo systemctl start firewalld && sudo systemctl enable firewalld - 查默认 zone:
sudo firewall-cmd --get-default-zone - 如需指定区域(例如用
internal),后续命令需显式加上--zone=internal
永久添加 TCP 端口并立即生效
以开放 8080 端口为例,必须同时完成两步:写入永久配置 + 重载运行时规则:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 执行永久添加:
sudo firewall-cmd --permanent --add-port=8080/tcp - 重载使规则加载进内存:
sudo firewall-cmd --reload - 支持端口范围,如开放 9000–9010:
sudo firewall-cmd --permanent --add-port=9000-9010/tcp,同样要--reload
验证是否成功放行
别只看命令返回,要分层确认:
- 查当前运行时开放的端口:
sudo firewall-cmd --list-ports(应含8080/tcp) - 查永久配置里有没有写上:
sudo firewall-cmd --permanent --list-ports - 查完整 zone 配置:
sudo firewall-cmd --list-all,确认ports:行包含目标端口 - 额外提醒:云服务器还需检查安全组是否同步放行该端口
更推荐的方式:用 service 替代硬写端口
如果端口对应标准服务(如 Nginx 用 80、HTTPS 用 443),优先启用内置 service:
- 查可用服务:
sudo firewall-cmd --get-services - 永久启用:
sudo firewall-cmd --permanent --add-service=https(自动处理 443/tcp 及相关连接跟踪) - 若服务监听非标端口(如 Web 服务跑在 8081),建议创建自定义 service 文件,而不是直接开 8081 —— 更安全、易维护










