对话笔记直发:8.15 OpenClash节点延迟诊断。分类:网络基建。


tags: [OpenClash, 节点延迟, ClashMeta, 代理, 网络诊断, NAS, v2rayN] title: OpenClash 节点延迟虚高诊断(对比 v2rayN) date: 2026-08-15

OpenClash 节点延迟虚高诊断(对比 Windows v2rayN)

背景

  • 设备:局域网 NAS jp,IP 192.168.*.*(即 局域网IP(已脱敏)),跑 OpenClash(Clash Meta 内核)。
  • 现象:OpenClash 界面两个节点延迟 1173ms / 403ms;同一节点在 Windows v2rayN 只有 100~200ms。用户质疑”为什么 OpenClash 延迟过高”。

两个节点

节点名类型出口网络server
vless9443-CF-Tunnel-443VLESS(CF Tunnel)Cloudflarevless11443.douy.indevs.in(解析到 172.67.*.* Cloudflare)
Reality-awsVLESS RealityAWS3.34.*.* :1443

根因(第一性原理)

  • 两种”延迟”测的根本不是一回事:
    • v2rayN(Windows):测 你 → 节点入口 的 RTT(只算前半段,忽略出口质量)→ 100~200ms。
    • OpenClash:测 你 → 节点 → gstatic.com → 回 的 HTTP 全程(配置里 url-test 组 url: https://www.gstatic.com/generate_204)→ 1173/403ms。
  • 没有”节点的固有延迟”这回事,延迟是”目的地相关”的。数字高是因为节点出口去 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),排除”软件加解密慢”这一条。

关键结论

  1. OpenClash 的”延迟”≠ 节点离家距离,是”到测试 URL 的速度”。
  2. Clash 内核无法像 v2rayN 那样直接 ping 节点 IP;其 delay 永远是”走代理访问某 URL 的 HTTP 往返”。
  3. 想让 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。
  4. 单个全局测试 URL 照顾不了两种出口(CF vs AWS),设 Cloudflare URL 会让 AWS 节点偏高(250–350)。要想两个都精确≈100200,需给每种出口单独建 url-test 组、各配对应 URL(纯配置,无需分流规则)。
  5. 改测试 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 已脱敏,请替换为你自己的地址。


相关: 00-索引-网络基建索引 openclash配置与WSL代理迁移总结