配置教程 精选 标签: Clash url-test Mihomo 策略组

Clash 策略组 url-test 总跳到慢节点?interval 与容差逐步调优

你已经把某条规则指到 url-test 这类「自动测速」策略组,托盘里也显示在跑健康检查,但体感仍是高延迟、频繁断流或总在几个「看起来不快」的节点之间来回。这往往不是因为 Clash「不懂选最快」,而是探测目标、测速周期、黏滞容差与 lazy 行为叠在一起,让「日志里的毫秒数」和「你真实访问的业务」脱了钩。本文用同一套可复制的顺序拆解 intervaltolerancelazyurl 探测位址,并教你如何把连接日志主观卡顿对齐;若你同时遇到 TLS 逾时或订阅解析异常,可再对照本站 TLS 逾时与节点排查 以及 订阅与 Provider 缓存 两篇,把「选错节点」与「根本连不上」分开处理。

约 22 分钟阅读
Clash 编辑部

一、先把「慢」说清楚:延迟、抖动与误测

在改 url-test 之前,建议先用一句话写下你的痛点,是网页首包慢视讯缓冲游戏掉 ping,还是SSH/Git 偶发卡住?不同业务对「延迟」与「掉包」的敏感度不同;而 url-test 默认只是在对你指定的 url 做短请求,测到的是到该探测目标的 RTT 近似值,未必等价于「访问 Cloudflare 背后某 SaaS」或「跨国长肥管道」的体验。

若你观察到的是偶发卡顿但测速数字一直很漂亮,要优先怀疑DNS、SNI、路由抖动上游对 HTTP 探测与真实业务路径不一致,而不是继续把 tolerance 调到极端。本站 TLS Handshake Timeout 专文 说明了如何把「逾时」从「单纯慢」里拆出来;本文则专注在策略组层面如何把测速参数调到「既跟线路变化,又不过度神经质」。

建议:先固定一个可重复的业务动作(例如打开同一段 4K、clone 同一仓库),再打开核心的连接/日志面板,看策略组切换的时间点是否与卡顿对齐;若完全不对齐,多半要回到规则命中别的策略组,而不是死磕当前这个 url-test。

二、url-test 到底在选什么「最快」

在 Clash 系设定里,type: url-test 的策略组会周期性(或在 lazy 条件下按需)对成员节点发起对你配置的 url 的探测请求,根据延迟测量结果在组内挑选一个「当前最优」出口。许多发行版(含 Mihomo/Meta 系核心)还会在参数里提供 tolerance,用来在「新候选节点并没有明显快一截」时避免来回切,减少体感抽风。

因此,「总跳到慢节点」在工程上经常对应两类完全不同的情况:第一类是探测结果本身失真——例如探测 URL 在你当前网络下被特殊处理、被缓存、或走了与业务不同的路径;第二类是参数组合让核心「合理地」黏在一个次优节点——例如 tolerance 过大、或 interval 太长导致列表里别的节点其实已恢复但尚未被重新评估。下文按字段拆解后,你会更容易判断自己属于哪一类。

与 selector、fallback 的边界

selector 由你手动选;fallback 通常按顺序找第一个可用成员;url-test 则偏向「在可用集合里找延迟较低者」。若你把多条规则指到不同的自动组,或链式引用(A 组里套 B 组),要确认真正生效的是哪一层;链式场景可对照 MCP 分流文 里对策略组分流的写法,避免「以为在调 url-test,其实命中了另一组」。

三、interval、tolerance、lazy、url 逐项说明

1. url(健康检查位址)

这是最容易被忽视、却最常决定「数字好不好看」的字段。常见写法会指向运营商或 CDN 的204/极小回应端点,以降低payload;但若该端点在你所在网络被劫持、缓存或走本地旁路,就会出现「全员 20ms」这类不可信结果,后续 tolerance 与切换逻辑再正确也救不回来。

排查时建议准备至少两个风格不同的探测 URL(不同云/不同地区),在相同订阅下做 A/B,看延迟分布是否整体平移;若换 URL 后排序剧烈变化,应优先修正探测,而不是盲目缩短 interval

2. interval(测速周期)

interval 控制健康检查的大致节奏(秒)。更短的周期让策略组更快反映线路变化,但也会带来更多后台请求与更「噪」的排序;更长周期则更省电省流量,但在节点品质快速波动时,你会感觉「怎么还不换」。桌面常驻与手机电池场景对 interval 的取舍往往不同,不必抄别人的「神数值」,而是以你能接受的反应时间为上限。

3. tolerance(容差/黏滞)

可以把 tolerance(毫秒)理解成防止频繁换边的缓冲带:当「当前节点」的延迟没有比「本轮测到的最佳值」好到超过一定差距时,核心倾向于维持现状,避免每一轮微幅噪声都触发切换。调得太大时,容易出现「明明列表里有更快的,却一直黏在旧的」;调得太小时,则可能对探针抖动过度敏感,体感上像「总在乱跳」。

4. lazy(惰性探测)

lazy: true 时,策略组往往只在被规则实际引用时才更积极地去跑探测,而不是无条件按 interval 对整组成员狂测。对「很多冷节点从不使用」的订阅,这能显著省资源;但若你期待「一载入设定档就立刻得到全局最优」,可能会误以为 lazy 让测速「坏了」。若你在排障期希望稳定可预期的测速节奏,可暂时改为 lazy: false 观察几轮,再切回 true。

proxy-groups:
  - name: AUTO-HK
    type: url-test
    proxies:
      - hk-a
      - hk-b
      - hk-c
    url: http://cp.cloudflare.com/generate_204
    interval: 60
    tolerance: 35
    lazy: true

上例仅示意字段组合,成员名请替换为你的订阅真实节点名;若你使用 Mihomo 或带图形界面的衍生客户端,仍应以「生成出来的 YAML」为准核对这四个字段是否如你所想。

四、用连接日志对齐「何时换节点」

调参最忌讳凭印象。建议你在客户端打开详细日志或连接记录,关注三类时间点:其一,健康检查批次何时完成;其二,策略组实际出口变更发生在哪一秒;其三,你主观卡顿的业务请求是否落在同一窗口。若变更总是比卡顿晚很久,多半是 interval 过长或 lazy 行为让你「看不到及时反应」;若变更很频但仍慢,回到上一节的 url 与成员品质。

另一个常见误判,是把别的策略组或 DIRECT的连接也算在 url-test 头上。请在日志里核对规则命中链最终策略组名称,确认你正在观察的确实是那一个 url-test 组。更完整的架构名词可参考 本站文档,再对照你所用核心的发行说明。

注意:不要在未理解含义的情况下把 interval 调到极低并搭配过大的节点池——这会给探测目标与本地网络带来压力,也可能触发上游限速,反而让测速结果更脏。

五、推荐调参顺序(可复制)

下面是一条从低风险到高风险的顺序,适合大多数「url-test 体感不对」的场景照抄执行;每一步只做一类改动,观察 10~30 分钟再进入下一步。

  1. 验证 url:换用不同探测 URL,确认延迟分布「像真的」;若对探测目标有合规顾虑,请使用你信任且体量合适的端点。
  2. 收紧或放宽 tolerance:若感觉「黏慢节点」,先把 tolerance下调一小档(例如减 10~20ms)观察切换是否更跟手;若感觉「乱跳」,则反向微调。
  3. 调整 interval:在 tolerance 基本合理后,再调周期;需要更快反应就适度缩短,但别低于你网络环境能稳定重复探测的下限。
  4. lazy 对照实验:排障期可设 lazy: false 观察是否「载入后立刻排序稳定」,再决定是否恢复 lazy。
  5. 收敛成员列表:把明显不可用或跨洲混在一起的成员拆到不同 url-test 组,避免单组内「最优」其实在另一个地理意图之外。

若完成以上步骤后,仍只在特定网站异常,请把问题从「url-test」迁移到「规则与 DNS」轨道;那已超出本文范围,但你可以从 fake-ip 与分流专文继续排查。

六、常见坑:探测站、订阅与链式策略组

第一类坑是探测与业务路径不一致:HTTP 204 探测走得很顺,但真实 HTTPS 业务要绕一大圈或遭遇 SNI 干扰;此时 url-test 会「诚实」地告诉你探测很快,却无法代表业务。第二类坑是订阅里节点名频繁变动,导致你以为绑定的成员与策略组里引用的是同一批对象,实际上已被远端重命名或合并。第三类坑是多层策略组嵌套,子组也是 url-test,父组也是 url-test,彼此 interval 不同步,看起来像「随机抽风」。

遇到「订阅刚更新、节点列表变了」一类问题时,可同步阅读 订阅与 Provider 缓存,先保证成员集合稳定,再谈自动选优。

七、自查清单

  • 日志里最终命中的策略组名称,是否就是你正在调的那一个 url-test?
  • 更换探测 URL 后,延迟分布是否整体合理,还是「全员超快/全员超时」?
  • tolerance 小幅上下移动时,切换频率与体感是否呈可解释的变化?
  • lazy 开关是否在载入初期造成「很久不测」的错觉?
  • 同一时段用固定业务动作复测三次,问题是否可重现?
  • 成员里是否混入了不同用途(家宽/机房/游戏)导致「最优」与预期不符?
你看到的现象 优先尝试
列表里有更低延迟,却一直用次低的 下调 tolerance;确认探测 URL 没被劫持或缓存成假低延迟
几个节点之间来回闪,视频一卡一卡 上调 tolerance 或略拉长 interval;检查 lazy 与成员是否过多
载入后很久都不换,线路明明坏了 缩短 interval;排障期暂时 lazy: false
测速永远很好看,但网页仍慢 更换探测目标;并行查 DNS/TLS/规则是否误走 DIRECT

八、小结

Clash url-testMihomo 生态里的自动测速策略组,本质是「用轻量探测去近似真实出口品质」;当 intervaltolerancelazyurl 任一环节与你的心智模型不一致时,就很容易得出「为什么总在慢节点」的结论。把探测可信度放在第一位,再用容差控制切换性格,用周期控制反应速度,最后才处理 lazy 与成员拆分,通常能以最小改动换来最明显的体感改善。

相比在订阅里盲目加减节点,把上述顺序固化成你自己的排障脚本,日后每次换机房、换探测站或升级核心版本时都能快速回归稳定。若你希望使用带图形界面、对日志与策略组更友好的客户端来完成这些对照实验,可以从本站下载页获取适合你平台的 Clash 衍生版本,再按本文清单逐项验证。

立即免费下载 Clash,开启流畅上网新体验