对话笔记直发:8.15 OpenClash节点延迟诊断。分类:网络基建。
tags: [OpenClash, 节点延迟, ClashMeta, 代理, 网络诊断, NAS, v2rayN] title: OpenClash 节点延迟虚高诊断(对比 v2rayN) date: 2026-08-15
OpenClash 节点延迟虚高诊断(对比 Windows v2rayN)
背景
- 设备:局域网 NAS
jp,IP192.168.*.*(即局域网IP(已脱敏)),跑 OpenClash(Clash Meta 内核)。 - 现象:OpenClash 界面两个节点延迟 1173ms / 403ms;同一节点在 Windows v2rayN 只有 100~200ms。用户质疑”为什么 OpenClash 延迟过高”。
两个节点
| 节点名 | 类型 | 出口网络 | server |
|---|---|---|---|
vless9443-CF-Tunnel-443 | VLESS(CF Tunnel) | Cloudflare | vless11443.douy.indevs.in(解析到 172.67.*.* Cloudflare) |
Reality-aws | VLESS Reality | AWS | 3.34.*.* :1443 |
根因(第一性原理)
- 两种”延迟”测的根本不是一回事:
- v2rayN(Windows):测
你 → 节点入口的 RTT(只算前半段,忽略出口质量)→ 100~200ms。 - OpenClash:测
你 → 节点 → gstatic.com → 回的 HTTP 全程(配置里 url-test 组url: https://www.gstatic.com/generate_204)→ 1173/403ms。
- v2rayN(Windows):测
- 没有”节点的固有延迟”这回事,延迟是”目的地相关”的。数字高是因为节点出口去 gstatic(Google)绕路,尤其 CF Tunnel 节点出 Cloudflare 骨干抓 Google 特别绕,凭空多 ~980ms。
- 对主要翻 Google 的用户,OpenClash 的 1173/403 反而是诚实的真实速度,自动选把 AWS 顶上去是对的。
实测验证(从路由器直连)
- 路由器直连 ping
vless11443.douy.indevs.in→ avg 195ms(182~204),与 Windows 一致 → 证明节点本身不慢,只是 gstatic 测试靶子选差了。 Reality-aws(3.34.*.*)ICMP 被云厂商挡(100% loss),但 TCP 可达、OpenClash 能跑出 403ms,说明节点本身 ~200ms 级。- CPU 有 AES-NI(4 核 aarch64),排除”软件加解密慢”这一条。
关键结论
- OpenClash 的”延迟”≠ 节点离家距离,是”到测试 URL 的速度”。
- Clash 内核无法像 v2rayN 那样直接 ping 节点 IP;其 delay 永远是”走代理访问某 URL 的 HTTP 往返”。
- 想让 OpenClash 显示
100200(贴近 v2rayN),必须把测试 URL 放在节点出口所在的网络上,使”节点→目标”段≈0,测出来≈入口 RTT。- CF 节点 → 用 Cloudflare 自家 URL(如
https://www.cloudflare.com/cdn-cgi/trace或http://cp.cloudflare.com)→ ~195ms。 - AWS 节点 → 用 AWS 自家 URL(如
https://s3.amazonaws.com/)→ ~200ms。
- CF 节点 → 用 Cloudflare 自家 URL(如
- 单个全局测试 URL 照顾不了两种出口(CF vs AWS),设 Cloudflare URL 会让 AWS 节点偏高(
250–350)。要想两个都精确≈100200,需给每种出口单独建 url-test 组、各配对应 URL(纯配置,无需分流规则)。 - 改测试 URL 只改”延迟数字含义 + 自动选路排名”,不涉及分流规则(测速 URL ≠ 分流规则,是两回事)。
待办 / 下次继续
- 用户确认主要流量是 Google 系 / Cloudflare 系 / 混合,据此定方案:
- 方案A(最小改动):全局测试 URL 改 Cloudflare 地址 → CF 节点变 ~195,AWS 节点 ~250–350。
- 方案B(精确):按出口拆两个 url-test 组,各配对应测试 URL → 两个都≈100~200,纯配置无规则。
- 方案C(不改):接受 1173/403 是真实 Google 速度,只是别和 v2rayN 比。
- 落地时改
/etc/openclash/1元.yaml(当前生效配置,clash 以-f /etc/openclash/1元.yaml运行)里 url-test 组的url:(或 OpenClash 后台”延迟测试地址”),改完重启 OpenClash。 - 顺带:yacd/OpenClash secret 仍是弱口令
xxxx(原 123456),建议改强。 - 验证:改后从路由器直连 ping 节点 IP 复核原始 RTT,确认数字合理。
参考命令
- 连路由器:
ssh root@192.168.*.*(已配 RSA 免密) - 查节点延迟:
curl -H "Authorization: Bearer xxxx" http://127.0.0.1:9090/proxies - 当前生效配置:
/etc/openclash/1元.yaml;测试 URL 在 url-test 组url:字段。 - 路由器直连测原始 RTT:
ping -c 10 <节点域名/IP>
注:本文涉及的服务器公网 IP / Tailnet / 局域网 IP 已脱敏,请替换为你自己的地址。