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

Workerman UDP连接失败怎么排查

雨宇吖_1508

雨宇吖_1508

发布时间:2026-09-03 07:16:29

|

739人浏览过

|

来源于php中文网

原创

UDP端口监听需用ss -uuln | grep :端口确认,若无输出则未成功绑定;必须将udp://127.0.0.1改为udp://0.0.0.0并完整重启,防火墙与安全组须显式放行UDP协议。

workerman udp连接失败怎么排查

UDP端口监听状态怎么确认

Workerman UDP服务启动后,ss -tulnnetstat -tuln 必须看到 *:端口号0.0.0.0:端口号 的 UDP 条目,否则说明内核根本没绑定成功。TCP 和 UDP 监听是独立的,不能用 telnet 测 UDP——它只支持 TCP。正确验证方式是:ss -uuln | grep :你的端口(注意是 -uuln,不是 -tuln)。如果无输出,90% 是 Worker 实例没起来,或 listen() 参数写错协议。

UDP监听地址写成127.0.0.1会怎样

UDP 比 TCP 更“安静”:监听 127.0.0.1:5678 时,外部设备发包过去,Linux 内核直接丢弃,不回 ICMP,客户端收不到任何响应,表现为“完全静默失败”。常见错误写法:new Worker('udp://127.0.0.1:5678')。必须改成:new Worker('udp://0.0.0.0:5678')new Worker('udp://*:5678')。改完务必完整重启:php start.php stop && php start.php start,reload 不会重绑 UDP socket。

UDP连接失败时防火墙和安全组要注意什么

UDP 流量更容易被拦截,且错误表现更隐蔽:

  • 云厂商安全组默认只放行 TCP 规则,UDP 需单独添加——协议类型必须选 UDP,不是 ALL 或留空
  • Linux 系统防火墙(如 firewalld)对 UDP 的限制更严格:sudo firewall-cmd --add-port=5678/udp --permanent && sudo firewall-cmd --reload
  • Docker 容器跑 UDP 服务时,-p 5678:5678/udp 必须显式加 /udp 后缀,否则只映射 TCP
  • Windows/macOS 宿主机防火墙对 UDP 入站默认全拒,临时测试建议直接关闭或添加入站规则

UDP数据收不到的常见代码陷阱

UDP 是无连接协议,Workerman 不会触发 onConnectonClose,只走 onMessage。收不到数据时先排除这些:

  • onMessage 回调里用了 echovar_dump 却没开日志——UDP 没响应体,输出不会返回给客户端,只能靠 file_put_contents 写日志验证是否进回调
  • 客户端发的是广播包(如 255.255.255.255),但 Workerman 默认不接收广播,需在 onWorkerStart 中手动设置 socket 选项:socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, 1)
  • UDP 包大小超限(默认 Linux 为 65507 字节),若客户端发 >64KB 的包,内核直接截断或丢弃,onMessage 收到的是残缺数据
  • 多个 Worker 进程监听同一 UDP 端口时,未启用 reusePort,导致部分包被随机丢弃——需在实例化后加:$worker->reusePort = true;
UDP 没有连接状态、没有重传机制,排查时不能依赖“连接是否建立”,而要直击三层:内核是否真在收包(ss -uuln)、防火墙是否放行(/udp 显式规则)、代码是否真进回调(写文件日志而非 echo)。最容易被忽略的是:改了监听地址却只 reload,旧 UDP socket 仍占着端口,新进程 bind 失败却不报错。

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
火山引擎

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

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

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

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

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

讯飞绘文

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

Laper
Laper Hot

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

WorkBuddy

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

相关专题

更多
tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

423

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

2251

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

2609

2024.11.14

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

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

0

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

20

2026.09.22

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

热门下载

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

精品课程

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

共0课时 | 0人学习

webman初步使用及后台搭建
webman初步使用及后台搭建

共15课时 | 2.6万人学习

Webman中文手册
Webman中文手册

共0课时 | 0人学习

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

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