Hysteria2 节点测速是空白,是节点坏了吗
不是。多数客户端的「测速」是对 服务器:端口 做一次 TCP 握手,而 Hysteria2 跑在 UDP 上,没人接握手,那一栏就空着。本文讲清楚为什么,以及怎么分辨「测不出」和「真的连不上」。
你在客户端里看到一排节点,延迟都好好的,唯独几个名字带 Hy2 / Hysteria 的是空白 —— 什么都不显示,或者一直转圈最后超时。
很多人的第一反应是「这几个节点坏了」,然后再也不点它们。
多半没坏。是测法和协议对不上。
客户端的「测速」其实在测什么
绝大多数客户端的延迟测试,做的是同一件事:对 服务器:端口 发起一次 TCP 连接,记录握手花了多少毫秒。
这对 VLESS、Trojan、Shadowsocks 这类跑在 TCP 上的协议没问题 —— 服务端本来就在那个端口上等着 TCP。
但 Hysteria2 跑在 UDP 上。它基于 QUIC,整个协议栈里没有 TCP 这一层。
于是:
- 客户端对那个端口发 TCP 握手
- 服务端的 Hysteria2 进程只监听 UDP,根本看不到这个包
- 没人回应 → 客户端等到超时 → 那一栏空白
节点本身可能完全正常,你点进去连上就能跑满速。只是那个数字测不出来。
怎么分辨「测不出」和「真的坏了」
空白这件事本身不携带任何信息,所以得换个方法问。
最直接的办法:别看数字,直接用。 选中那个节点,打开一个大文件或者一个视频。能跑就是好的。这听起来笨,但它是唯一不会骗你的方法。
想要个数字的话: 在电脑上对那个端口做一次 TCP 连接测试。注意两种结果的区别:
- 连接被拒绝(refused) —— 端口上没有任何 TCP 服务。这符合「Hy2 只跑 UDP」的预期,不说明节点坏了
- 连接超时(timeout) —— 包根本没到,或者被丢了。这才值得怀疑:可能是你到机房这一段丢包,也可能是服务端真的不在了
两者在客户端里都显示成空白,但含义完全相反。
顺带说一个更容易误导的情况
就算测出了数字,那个数字也不代表速度。
延迟测的是一个很小的包往返要多久;而你看视频、下文件要的是持续拉数据的能力。限速器和拥堵队列几乎不影响小包,却对持续下载是毁灭性的。
我们实测过一条线路:延迟 236ms、丢包 0%、探针全绿,真实下载只有 0.47 Mbps。同一时刻另一条延迟几乎相同的线路跑 46 Mbps。
细节写在另一篇里。结论是:延迟绿只能说明路通,说明不了路有多宽。
我们怎么处理这件事
我们的做法是我们动,客户不动。
让 Hy2 的那个端口也接 TCP 握手 —— 接上就关,不转发、不承载任何流量。于是客户端能测出一个数字,而这个数字就是到服务器的往返时间,和其它节点完全同一个口径。
这不是造假:客户端问的是「我到这台机器要多久」,回答的也正是这个。只是原本没人应答,现在有人应答了。
至于为什么不去教客户改测速方式 —— 因为客户不会改,也不该改。一个要客户先读说明书才能正确显示的界面,本身就是设计失败。
一张自查清单
- 节点名字里有 Hy2 / Hysteria,延迟空白 → 先别当成坏了
- 直接选中它用一下,能跑就是好的
- 想确认的话,分清「拒绝」和「超时」:拒绝是正常的,超时才值得查
- 测速数字和实际速度是两回事,别只看延迟排序挑节点
相关:节点延迟很低,速度却很慢 · Clash 导入订阅后没有节点
逐节点的实测结果公开在状态页:status.tianjiyun.org
写于 2026-10-03。实测数据来自我们自己的节点。