节点延迟:先判断可用,再比较网速
延迟低不等于下载快,显示超时也不等于节点彻底失效。Clash 客户端里的“测速”通常是一次小型 HTTP 请求测试,不是持续下载测试。它适合排除当前无法完成请求的节点,也适合为自动选择策略组提供依据;判断视频、下载或会议体验,还要看持续吞吐、稳定性和实际目标网站。
例如,一个节点显示 80 ms,另一个显示 180 ms,前者未必更适合下载大文件。前者可能响应快但带宽受限,后者可能建立连接稍慢,却能稳定传输较大的数据量。这里的数字只是说明场景,不是本站实测结果。
单位也容易看错。100 Mbps 的理论换算值是 12.5 MB/s,实际下载还受协议开销、服务器限速和链路状态影响。不能把节点列表中的 100 ms 当成某个下载速度等级。
url-test 原理:计时的是一次代理 HTTP 探测
url-test 是策略组类型。内核通过候选代理访问指定测试 URL,记录耗时,再据此选择节点。客户端里的手动延迟按钮也常通过内核控制接口发起类似测试,但按钮与策略组可能使用不同地址、不同超时,因此两处数字不一定一致。
一次测试经过哪些环节
- 读取测试地址,确定要测试的代理或策略组。
- 建立到代理服务的连接,完成该代理协议要求的连接过程。
- 通过代理访问目标;使用 HTTPS 时还涉及目标 TLS 协商。
- 发送 HTTP 探测请求,在内核规定的计时边界内取得响应。
不同内核版本的连接复用、计时起点和请求实现可能存在差异。测试不应被精确等同于 ICMP ping,也不是严格的单次网络往返时延。更准确的说法是:它反映当时通过该代理完成小型 HTTP 探测的耗时,其中包含连接、握手及响应等待等成本。
为什么不能测出带宽
常用的 generate_204 地址返回很小的响应,204 表示没有响应内容。请求没有持续传输足够的数据,无法观察链路在数十秒负载下的吞吐表现。一次响应快,只说明这条测试路径当时完成得快,不代表大文件传输不会限速。
测试通常也不等同于按业务规则访问网站。它是对指定代理的探测,不足以证明浏览器请求确实命中了同一个节点。要确认实际路径,需查看客户端的连接记录、匹配规则和最终代理链。
测试地址:换 URL 会改变排名
测试结果同时受“本地到代理入口”和“代理出口到测试站点”影响。测试站点位于哪里、是否采用 CDN、目标域名如何解析,都可能改变结果。某节点访问测试站点很快,却访问你的业务服务器很慢,完全可能。
| 测试地址 | 适合观察 | 限制 |
|---|---|---|
https://www.gstatic.com/generate_204 |
小型 HTTPS 请求是否能完成 | 只代表访问该目标的路径,不代表所有网站 |
https://cp.cloudflare.com/generate_204 |
另一条目标路径的响应情况 | 边缘节点位置可能不同,排名也会变化 |
| 实际业务页面或文件 | 目标服务的真实体验 | 登录、重定向、缓存与限速会影响结果 |
HTTP 与 HTTPS 不宜混着比较
HTTP 测试通常少了目标 TLS 协商,数字可能更低,但只能说明 HTTP 探测结果。HTTPS 更接近日常加密网页访问,也可能暴露证书或系统时间问题。比较节点时应保持地址、协议和超时一致,而不是拿一个 HTTP 结果与另一个 HTTPS 结果直接排序。
- 优先选择响应小、长期稳定、无需登录的地址。
- 遇到全部节点超时,先换第二个测试地址交叉验证。
- 不要把大量节点的自动测试指向有严格访问限制的业务接口。
- 修改前记录原地址,避免换地址后误判为网络突然变好或变差。
自动选择配置:interval 与 tolerance 各管一件事
下面是适用于支持 include-all 的 mihomo 内核的策略组片段,不是完整订阅。它从完整配置中的代理节点及代理提供者纳入候选项;必须先有真实的代理配置。传统 Clash 或旧版内核不一定支持该字段,应按对应内核文档使用 proxies 或 use 明确引用已有对象。
proxy-groups:
- name: 自动选择
type: url-test
include-all: true
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 50
lazy: true
- name: 代理出口
type: select
proxies:
- 自动选择
- DIRECT
自动选择 和 代理出口 都在片段中定义了,但它们不会自动接管所有流量。完整配置中的规则还需要引用相应策略组。保留订阅原有规则结构,先确认目标请求指向哪个组,再决定是否替换;不要为了测试把整份规则直接改成全局代理。
| 配置项 | 示例值 | 作用 |
|---|---|---|
interval |
300 | 周期测试间隔,单位是秒,不是请求超时 |
tolerance |
50 | 切换容差,单位是毫秒,减少微小差距引起的切换 |
lazy |
true | 组未使用时可跳过周期测试,不保证始终有新结果 |
容差不是“低于 50 ms 才可用”,也不是固定给所有结果加 50 ms。它影响自动选择的切换判断。例如当前节点约 130 ms,另一节点约 110 ms,20 ms 的改善可能不足以触发切换;最终行为还取决于内核实现与节点可用状态。
超时设置:5000 ms 是等待上限,不是网速门槛
超时表示探测没有在规定时间内完成。超时设置为 5000 ms,只是最多等待约 5 秒;把它调到 10000 ms,可能让部分慢请求得到结果,却不会增加节点带宽。也不要直接把 timeout 写进任何策略组:字段是否支持、放在哪里,必须按对应内核的配置说明确认。
用控制接口理解超时参数
支持 Clash 风格控制 API 的内核通常提供代理延迟接口。以下命令仅用于本机诊断,假设控制接口已在 127.0.0.1:9090 启用,且本例接口无需鉴权。测试对象是内置 DIRECT,用于观察直连基线,不是某个订阅节点:
curl --get "http://127.0.0.1:9090/proxies/DIRECT/delay" \
--data-urlencode "url=https://www.gstatic.com/generate_204" \
--data-urlencode "timeout=5000"
成功时可返回类似 {"delay":186} 的结果,表示此次测得 186 ms;这只是格式示例。测试具体节点时,需要将路径中的 DIRECT 换为实际代理名称,并对名称进行 URL 路径编码。中文、空格和斜杠不能直接随意拼接。
若接口启用了 secret,请求需要携带对应 Bearer 鉴权头;没有权限时出现的 401 不是节点超时。不要为方便测试把控制接口开放到公网。端口 9090 也不是固定要求,以客户端当前运行配置为准。
全部超时时按这个顺序排查
- 确认内核正在运行,订阅中的节点已加载,而不是只看到了旧列表。
- 换第二个测试 URL;若只有一个地址失败,先查目标可达性。
- 查看日志中的 DNS、连接拒绝、TLS 与超时信息,区分失败环节。
- 确认系统日期时间正确,排除 HTTPS 证书时间异常。
- 在相同超时下测试两个不同节点,必要时再比较直连基线。
真实网速:固定节点、固定目标、重复测量
要比较两个节点,先把自动选择改为手动固定候选节点,或者使用已有的手动选择组。测试过程中频繁换出口,会让结果难以归因。浏览器页面复用连接、服务端缓存和后台下载,也会干扰比较。
一套可复现的测试步骤
- 固定条件:使用同一设备、同一 Wi-Fi 或有线网络,暂停其他大流量任务。
- 确认路由:在连接记录里核对目标域名、匹配规则和最终节点,避免下载实际走了 DIRECT。
- 重复小请求:每个节点测试 5 次,记录全部数值,不只记最低值。
- 观察持续传输:使用获准访问的同一个大文件,持续观察 30~60 秒,区分刚开始的突发速度与稳定速度。
- 换时间复测:例如 10:00 与 21:00 各测一轮,记录是否出现晚间吞吐下降或超时增多。
假设五次延迟为 82、85、87、91、680 ms,中位数是 87 ms,但最后一次大幅波动值得关注。这组数值是计算示例,不是实测报告。小样本 HTTP 测试中的失败比例也不能直接叫“网络丢包率”;它可能由 DNS、TLS、目标站或连接超时造成。
延迟低、下载慢,优先查这几项
- 代理出口拥塞:小请求仍能快速完成,大流量却在高峰时段竞争带宽。
- 目标服务器限速:不同文件站、不同 CDN 对同一出口可能有不同限制。
- 本地无线网络:信号不稳与重传会拖慢持续传输,改用有线连接可做对照。
- 协议与设备负载:加密处理、CPU 占用及客户端资源限制可能影响吞吐。
- 路径不一致:测速按钮与业务请求用了不同节点,或者应用根本没遵循系统代理。
最后一种情况尤其常见。浏览器可以正常代理,不代表所有应用都走同一条路径。不遵循系统代理的程序可能需要应用内代理或 TUN 接管;TUN 改变的是流量进入内核的方式,不会凭空增加出口带宽。入门设置可参考系统代理步骤,概念区别可查看概念速查。
选节点结论:按使用场景,而不是只按毫秒排序
网页浏览优先看响应稳定与目标可达性;大文件下载优先看持续吞吐;视频重点看缓冲速度和播放中断;语音会议与实时业务还要观察抖动、断流及相应 UDP 路径。HTTP 延迟测试不能证明 UDP 转发可用,也不能替代应用内网络诊断。
- 日常浏览:保留一个稳定节点,或使用带合理容差的自动选择组。
- 大文件任务:比较实际下载速度,开始后尽量保持出口稳定。
- 某个网站异常:先确认命中规则,再比较该网站的实际访问表现。
- 晚间卡顿:按同一条件复测,别只看上午保存的延迟数字。
最实用的记录只有几项:测试时间、测试 URL、超时、最终节点、重复延迟和持续下载速度。信息齐全后,才能分清是探测目标问题、节点路径问题,还是本地配置问题。需要更换客户端时,先看客户端对比,再按平台选择,不必为追求更小的延迟数字反复重装。