Clash 策略组是什么?select、url-test 与 fallback 的区别

先说结论

Clash 策略组是规则与节点之间的一层:规则决定交给哪个组,组再挑出具体节点。select 由你手动选,url-test 按延迟自动选,fallback 按顺序取第一个可用的,load-balance 把请求分摊到多个节点。

规则只会说“这类流量交给某某组”,至于组里的哪个节点真正出站,是 Clash 策略组的工作。它夹在规则和节点中间,既可以让你手动点选,也可以让内核按延迟、按顺序自动挑。类型选对了,日常几乎不用管;选错了,才会遇到“莫名其妙换了节点”“主节点挂了却不切换”这类事。

Clash 策略组在配置里的位置

流量的走向是一条链:请求先撞上 rules 里的某条规则,规则的去向写着一个组名,这个组再从自己的成员里选出一个节点。组的定义写在配置的 proxy-groups 里,下面是一个只含占位内容的例子:

proxy-groups:
  - name: "节点选择"
    type: select
    proxies:
      - "自动选择"
      - "节点甲"
      - "节点乙"
      - DIRECT

  - name: "自动选择"
    type: url-test
    proxies:
      - "节点甲"
      - "节点乙"
    url: https://test.example.com/generate_204
    interval: 300
    tolerance: 50

每个组至少有 name、type 和成员列表。成员可以是节点,也可以是别的组,还可以是 DIRECT 这样的内置出口。配置全貌见 Clash 配置文件怎么看,规则如何指向组见 Clash 规则怎么写,词典里的 策略组 有一句话释义。

四种常见类型,各解决什么问题

类型 谁来选节点 一句话说明 适合 代价
select 你 点哪个用哪个 需要固定出口、想完全自己掌控 节点失效时要手动换
url-test 内核 定期测延迟,用最低的那个 节点多,想省心 出口可能来回变
fallback 内核 按成员顺序,用第一个可用的 有明确的主力和备用 只看“可用”,不比较快慢
load-balance 内核 把请求分摊到多个成员 多个等价节点想分担 同一站点的连接可能出口不一致,效果要自己验证

load-balance 还有分摊策略可选,取值和含义以内核文档为准。此外内核还支持把节点串起来的类型和其他进阶写法,新手阶段可以不碰。

clash url-test 到底在测什么

很多人以为自动测速选的是“最快的节点”,其实它做的事情很具体:每隔 interval 设定的时间,让内核经由组里的每个节点去访问一个测试地址,记录往返花了多久,再选出耗时最短的。

常见想法 实际情况
数字小就是下载快 它测的是访问一个轻量地址的往返时间,和下载速度是两件事
能连上测试地址就能打开任何网站 测试地址能通,只说明节点本身在工作,不代表目标站点对这个出口开放
选中的永远是此刻最低的 选中的是上一轮测试的结果,且受 tolerance 影响

tolerance 是容差(单位为毫秒):新节点比当前节点快得不多时,内核不会切换,避免来回抖动。把它调得很小,节点会频繁切换;调大,切换更迟钝。延迟这个概念的完整解释见 延迟,测出来全部超时怎么办见 节点超时怎么办,真觉得慢要区分带宽、线路和客户端,见 梯子速度慢怎么办。

什么时候该手动选,什么时候交给自动

先问自己:这类流量在乎出口稳定,还是在乎省心?

场景 倾向 理由
需要保持登录状态的账号类网站 select 出口变化可能引发网站要求重新验证
日常浏览、看网页 url-test 对出口不敏感,自动挑能省去手动切换
手里有一个主力和一两个备用 fallback 平时只用主力,主力不可用才切备用
几个条件相当的节点,想分担压力 load-balance 分摊的效果因线路而异,要自己观察
暂时看不出差别 select 中套一个 url-test 默认交给自动,需要时手动覆盖

这个表只是思路,不是定论。判断依据始终是你自己的使用感受和验证结果,梯子岛没有任何节点的测速数据,不能替你下结论。

proxy-groups 的常见字段与“套娃”写法

字段 用途 常见问题
name 组的名字,规则按它引用 改名后忘记同步规则
type 组的类型 拼写错误时配置无法加载
proxies 成员列表,可含节点、其他组、DIRECT 名字与 proxies 里的节点对不上
url 与 interval 测试地址与测试间隔 间隔太短会频繁发起测试
tolerance url-test 的容差 太小导致频繁切换

“套娃”指组里放组:最外层的 select 供你选,里层放 url-test、fallback 等自动组,再往里才是节点。这样的好处是界面上只有一个组需要你操作。要留意一点,组与组之间不能首尾相接成环,比如 A 包含 B、B 又包含 A,配置加载时会报错。

怎么确认 Clash 策略组按预期工作

  1. 看当前选中项:在客户端的节点页,确认每个组当前选中的成员是不是你预期的。
  2. 手动切换,再看连接:对 select 组换一个节点,到连接页打开一个网站,经过的节点应当随之变化。
  3. 对自动组做一次延迟测试:观察被选中的节点是不是延迟较低的一个,结合 tolerance 判断,差距不大属于正常。
  4. 验证 fallback:先备份配置,把排在最前的节点暂时移出成员列表并重载,看是否切到了第二个,验证完恢复。
  5. 看日志:加载不通过时,日志会指出是哪个名称找不到,或者哪个组出现了环。

下一步:把组理顺,再去碰规则

  1. 先打开自己正在用的配置,数一数有几个组、各是什么类型,画出“规则 → 组 → 节点”的链路。
  2. 常用但要求出口稳定的流量,指向 select 组;其余交给自动组。
  3. 想深入理解规则怎么指向组,读 Clash 规则怎么写;想先弄清内核本身,读 Mihomo 内核是什么。
  4. 想在浏览器里生成一份带策略组的最小骨架做对照,用 Clash 最小配置生成器,对照官方文档可以到 官方文档导航 查找。

这篇没有覆盖的

  • 本文只写以 Mihomo 文档为准的行为,各客户端图形界面对策略组的叫法和操作并不统一。
  • 链式转发、按名称筛选节点这类进阶写法没有展开,需要时请查内核文档。
  • 延迟数字不等于下载速度,本文没有任何真实的速度数据,也不推荐具体节点。

本文引用的官方来源

  1. Mihomo(Clash Meta)文档(wiki.metacubex.one)
  2. Mihomo 内核官方仓库(github.com)

以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。

Clash 策略组常见问题

select 和 url-test 可以放在一起用吗?

可以,这是很常见的结构。做法是把 url-test 组本身作为一个选项,放进 select 组的成员里。这样平时在 select 组选“自动选择”就交给内核挑,需要固定某个节点时再改选具体节点,两种需求都照顾到。

url-test 选中的节点为什么不是延迟最低的那个?

有几个常见原因。测试按设定的间隔进行,选中的是上一轮测试的结果;tolerance 容差让内核在差距不大时不频繁切换;测试时的网络状况也会波动。看到的延迟数字与选择结果有出入,多半不是配置错误。

fallback 和 url-test 有什么区别?

判断标准不同。url-test 在所有可用节点里挑延迟最低的;fallback 按成员的排列顺序,只要排在前面的节点可用就一直用它,前面的不可用才依次往后。主力加备用的需求适合 fallback,哪个快用哪个适合 url-test。

自动选择会让我的出口 IP 经常变吗?

有可能。url-test 和 load-balance 都可能在不同节点间切换,出口地址也随之变化。需要稳定出口的场景,比如保持登录状态,更适合用 select 固定一个节点,自动组留给对出口不敏感的日常浏览。

策略组的名字可以随便改吗?

可以改,但规则里的去向、其他组的成员列表都是按名字引用的,改名后必须同步修改,否则配置加载时会提示找不到对应的名称。改之前先全文搜索这个名字出现了几处。

接着读

文中出现的术语

相关专题

接下来去哪儿?

找官方入口去网址导航,想核对仓库和版本看GitHub 项目导航;需要现成的机场,机场目录收了 28 家的价格与线路资料,性价比机场、便宜机场、VPN 机场分别有专项页。