最近入手了一台 Geelinx HK 玩耍,碰到一个挺有意思的现象:
在本地客户端测试节点延迟时,Hysteria2 / Shadowsocks 跑出来只有 20~30ms 的极低延迟;但是只要在本地终端直接 ping <IP>,延迟却稳定在 160ms ~ 176ms。
一开始还以为是客户端测速作弊或者本地网络玄学,后来直接上双向 MTR 抓包对比了一下 ICMP 和 TCP 端口 的真实路由,总算破案了。分享出来给各位小白和刚折腾网络的朋友避个坑。
1. 现象对比
- 本地 ICMP Ping 测试:
ping 节点公网 IP,平均延迟稳定在 ~175ms,几乎没有波动。
- 本地 TCP 握手实测(指定代理业务端口):
直接对服务器开放的代理业务端口做 TCP 握手测试,RTT 最低只有 21ms(平均 30~50ms)。
2. 路由真相(MTR 抓包对比)
① ICMP(Ping)走的路由路径:绕美一整圈 🌍
通过 MTR 跟踪 ICMP 数据包,发现数据在进入运营商出海骨干网后,直接被甩到了跨太平洋国际海缆:
HOST: Client Loss% Snt Avg Best Wrst
1.|-- 局域网网关 0.0% 5 0.6 0.5 0.6
2.|-- 国内省内骨干 0.0% 5 13.0 12.7 13.0
3.|-- 223.120.13.xxx (美西出口) 0.0% 5 206.8 206.7 206.9 <-- 跨洋出境
4.|-- 63.220.xxx.xx (美西 PCCW) 0.0% 5 204.5 204.3 204.8
...
5.|-- 香港落地机 IP 0.0% 5 175.4 175.3 175.5
原因:机房/运营商将普通的 ICMP(Ping)流量归类为普通国际公网流量,默认走廉价国际路由,横跨太平洋去美西绕了一大圈再回香港,导致 Ping 延迟高达 175ms。
② TCP 业务端口走的路由路径:广东直连过境 ⚡
使用 TCP 模式(针对服务器代理端口)进行 MTR 跟踪:
HOST: Client Loss% Snt Avg Best Wrst
1.|-- 局域网网关 0.0% 5 0.6 0.6 0.6
2.|-- 广东本地骨干 0.0% 5 6.8 5.9 7.7
3.|-- 223.120.2.xxx (广港直连) 0.0% 5 18.5 17.5 20.1 <-- 直接从广东过境香港
4.|-- 63.218.xxx.xx (香港 PCCW) 0.0% 5 20.2 18.9 22.1
5.|-- 香港落地机 IP 0.0% 5 21.1 17.5 25.0
原因:针对特定的 TCP/UDP 业务端口,运营商与上游机房走了优化直连线路(广东直接过境香港落地),物理距离极短,因此实际代理使用体验是丝滑的 20ms。
3. 总结 & 避坑建议
- Ping 延迟 ≠ 真实代理延迟:很多机房或者上游为了节约优质带宽成本,对 ICMP 做 QoS 限制或者直接走普通国际 BGP 绕路;但针对 TCP/UDP 端口走直连优化。
- 测试节点质量的正确姿势:
- 不要盲信系统的
ping 命令。
- 测 TCP 建议使用
tcping <IP> <Port> 或 mtr -T -P <Port> <IP>。
- 测 UDP/QUIC 建议以客户端内的 Url-Test(如 cp.cloudflare.com 握手)为准。
奇葩的“路由分流”,是最近被打坏了吗?