●别被客户端面板上的“小绿点延迟”欺骗了
在几乎所有代理客户端(如 Clash、Sing-box、Shadowrocket)中,节点列表旁边都会显示一个延迟数值,例如 HK 01: 35ms。很多人误以为这就是“访问网页的速度”。
这完全是一个误区。
1. 客户端测速测的是什么?
多数客户端的节点测速有两类:
- TCP 连接测速:向节点代理服务器的端口发起 TCP 握手,测出握手耗时(通常是你的电脑到国内中转入口的延迟)。
- 简单 HTTP 探测:请求一个极轻量的
generate_204目标。
如果某个节点是中转架构:
- 你的电脑到深圳中转机:15ms。
- 深圳中转机到海外出口:60ms。
- 海外出口到目标网站服务器:80ms。
某些客户端如果只测了第一段(甚至只测到了国内中转机),就会给出一个虚假的“15ms”大绿灯!但这根本不是你的请求访问到真实目标的全程时间。
2. ICMP Ping 为什么不能代表代理体验?
- 层级不同:ICMP 运行在网络层(L3),由操作系统内核直接应答。
- 不经过代理流程:普通的代理协议(Socks5 / Shadowsocks / Trojan / VMess)都是应用层(L7)代理。你的应用层数据需要经过:客户端加密 -> 封装传输 -> 中转机解封转发 -> 远端出口解密 -> 远端重新建立 TCP 握手 -> TLS 握手 -> 发送 HTTP 请求 -> 接收首字节。
- ICMP Ping 完全不包含这一整套加密、解密和代理转发流程,无法反映代理服务器的真实 CPU 压力和传输栈瓶颈。
3. 本站诊断为什么测量「HTTP 请求耗时」?
本站 /lab/http-latency/ 采用浏览器原生 fetch API,对真实全球 CDN 边缘端点发起完整请求:
- 记录的是你的浏览器发出的真实应用层请求在当前网络环境下的完整往返时间。
- 统计的是包含了本地客户端分流匹配、代理协议封装、链路传输和远端目标响应的真实耗时。
- 只有真实 HTTP 成功,你的网页才能打开!