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

Workerman WebSocket端口被占用怎么办

风墨姑娘_7150

风墨姑娘_7150

发布时间:2026-09-02 10:30:18

|

984人浏览过

|

来源于php中文网

原创

端口被占用需按顺序排查:先用lsof或netstat查PID,再杀残留子进程,检查GatewayWorker的register地址是否同步,最后确认防火墙/SELinux是否拦截。

workerman websocket端口被占用怎么办

Workerman WebSocket 启动时报 Address already in use,基本可以确定是端口被占——不是代码写错了,而是系统层面的资源冲突。直接杀进程、换端口都治标不治本,得按顺序查清“谁在用”“为什么没退干净”“有没有连带配置漏改”。

怎么快速定位占用 websocket://0.0.0.0:2346 的进程

别猜,直接查。你监听的是哪个端口(比如 2346),就查哪个:

  • Linux/macOS:运行 lsof -i :2346,输出里会带 PID 和 COMMAND,一眼就能看出是 php、node 还是别的服务在占
  • 如果提示 command not found,Alpine 镜像跑 apk add lsof,Ubuntu/Debian 跑 apt install lsof
  • Windows:先 netstat -ano | findstr :2346 拿到 PID,再 tasklist | findstr 12345(把 12345 换成上一步的 PID)确认进程名
  • 注意lsof -i :2346 会同时覆盖 IPv4(0.0.0.0:2346)和 IPv6(:::2346),别只盯着一个地址查漏

为什么 php start.php stop 后端口还在被占

Workerman 是多进程模型,主进程 fork 出一堆 worker。一旦异常退出(比如 Ctrl+C、kill -9、断电),子进程可能还卡在后台继续 bind 端口,而 stop 命令只管主进程 PID,对这些“孤儿”无效。

WebSocket 8.18.2
WebSocket 8.18.2

WebSocket 8.18.2 是该协议规范的一个重要迭代版本,主要优化了连接稳定性与数据传输效率。它通过全双工通信机制,允许客户端与服务器在单一长连接上实时交换数据,大幅降低传统 HTTP 轮询的开销。该版本增强了心跳保活、自动重连及二进制帧传输能力,适用于即时通讯、在线游戏及金融行情推送等低延迟场景,为开发者提供更可靠的实时网络交互基础。

下载
  • 先手动扫一遍残留:ps aux | grep "start.php"ps aux | grep YourAppPath
  • 别只 kill 主进程 PID——要一锅端:kill -9 $(pgrep -f "YourAppPath/start.php")
  • 开发环境可临时加清理逻辑(生产禁用):在 start.php 开头插入 exec("killall -u $(whoami) php 2>/dev/null");
  • 常见错觉:日志里只报一句 Address already in use,根本不会提醒你“有 4 个子进程还在 ESTABLISHED 状态”

GatewayWorker 架构下 register 地址不同步也会触发端口冲突

GatewayWorker 有两层监听:业务 worker(比如 websocket://0.0.0.0:2346)和 register worker(默认 127.0.0.1:1236)。改了业务端口,但 register 还在旧地址 listen,或者客户端连的仍是旧 register,就会导致启动失败或连接不上。

  • 启动时显式指定 register 新地址:php start.php start -d --register-addr=127.0.0.1:1237
  • 检查 start_register.php 里 register worker 的监听配置,确保 IP 和端口与业务 worker 初始化时传入的一致
  • 客户端连接代码里的 register 地址必须同步更新,否则服务端启动成功,客户端也注册不进去

防火墙或 SELinux 拦截会让连接看起来像端口被占

有时候 lsofnetstat 都查不到占用者,但客户端连上来就是 ERR_CONNECTION_REFUSED,这时候问题不在 Workerman 自身,而在系统网络策略。

  • CentOS/Alibaba Cloud Linux:检查 firewall-cmd 是否放行了你的端口,比如 firewall-cmd --permanent --add-port=2346/tcp,然后 firewall-cmd --reload
  • 宝塔用户:安全 → 放行端口 → 添加 2346
  • SELinux 启用状态下,可能需要 setsebool -P httpd_can_network_connect 1(仅限 HTTP/WebSocket 场景)
  • 本地开发用 localhost 测试没问题,但部署到服务器后连不上,优先怀疑这层拦截

真正麻烦的不是端口被占,而是你以为它被占了——结果查半天是 register 地址没同步、客户端连错地址、防火墙挡着,或者 pidFile 失效导致 stop 命令压根没起作用。每一步都要验证,别跳步骤。

热门AI工具

更多
火山引擎

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

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

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

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

WorkBuddy

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

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

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

相关专题

更多
Golang WebSocket与实时通信开发
Golang WebSocket与实时通信开发

本专题系统讲解 Golang 在 WebSocket 开发中的应用,涵盖 WebSocket 协议、连接管理、消息推送、心跳机制、群聊功能与广播系统的实现。通过构建实际的聊天应用或实时数据推送系统,帮助开发者掌握 如何使用 Golang 构建高效、可靠的实时通信系统,提高并发处理与系统的可扩展性。

175

2025.12.22

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

376

2026.01.19

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

375

2026.03.18

WebSocket 前端开发与实战技巧
WebSocket 前端开发与实战技巧

聚焦 WebSocket 在前端项目中的工程化实践,涵盖原生 JavaScript WebSocket 连接的封装与状态管理、Vue 3 中 WebSocket 的 Composable 封装(useWebSocket)、React 中自定义 Hook 管理连接生命周期、心跳检测(Ping/Pong 定时器)与自动断线重连的实现策略、指数退避重连算法、消息序列化协议(JSON / Protobuf / MessagePack)的选型与性

348

2026.05.25

WebSocket发送和接收数据教程合集
WebSocket发送和接收数据教程合集

本专题整合了WebSocket发送与接收数据教程合集,阅读专题下面的文章了解更多详细内容。

281

2026.05.25

Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

146

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

182

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

127

2026.05.20

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

0

2026.09.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

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

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