CClash 中文社区选择客户端 ↗
首页/博客
操作教程

Clash 故障转移策略组怎样阅读候选顺序

Clash 故障转移策略组怎样阅读候选顺序。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

阅读故障转移策略组的候选顺序,不能只确认某个节点名是否出现在配置里,而要按官方代理组字段还原「最终成员列表」从前往后的次序。type 为必须项,策略组类型决定如何使用这份列表;proxies 用于引入出站代理或其他策略组。顺序读错时,故障转移会落在错误的候选上。

适用条件:先分清列表从哪组装

阅读顺序前,先确认成员来源。仅使用 proxies 时,书写次序是起点。使用 use 时引入代理集合,但健康检查不会检查这些通过 use 引入的代理,因此「谁在名单里」和「谁会被测」必须分开读。include-all 为 true 时,引入所有出站代理以及代理集合,顺序将按照名称排序;引入不包含策略组,若还需要其他策略组,仍可在 proxies 写入。include-all-proxies 引入所有出站代理并按名称排序;include-all-providers 引入所有代理集合并按名称排序,且会使常规的引入代理集合写法失效。

若存在 filter、exclude-filter、exclude-type,最终候选不是原始名单。filter 筛选满足关键词或正则表达式的节点,可用反引号区分多个正则,且仅作用于引入代理集合以及引入所有出站代理。exclude-filter 排除匹配项。exclude-type 不支持正则,通过 | 分割,根据节点类型排除,仅排除引入的出站代理,无视大小写。判断依据是:能指出成员来自 proxies、use 还是 include-all 系列,并能指出过滤后仍按书写序还是改按名称序。

具体操作:从上到下读出第几个候选

  1. 读 name 与 type,确认这是目标组而不是被嵌套的子组。名称含特殊符号时,文档要求使用引号包裹。

  2. 读 proxies 的书写顺序,区分每一项是出站还是其他策略组。嵌套组表示候选可能再进入另一组的选择结果。

  3. 若开启 include-all 系列,把「按名称排序」叠到顺序解释上,不能再假设手工排列就是最终顺序。

  4. 应用过滤与排除,删去不会成为候选的项。若得到空列表,读 empty-fallback:当组为空时的回退 proxy,默认为 COMPATIBLE;这里不支持填写代理组,只支持填写 proxy 名称。

  5. 读 default-selected:默认选择的节点;该项为空或节点名不存在时,默认选择组中第一个节点。它影响初始选中,阅读故障转移候选时仍要保留完整列表次序,不能把默认项当成唯一候选。

  6. 健康检查不改书写顺序,但改「当前谁算可用」。url、interval、timeout、expected-status、max-failed-times 决定可用性,从而决定故障转移会停在列表中的哪一个可用候选。记住检查范围不含 use 引入的集合代理。

判断依据:能复述成员按何种规则排序、过滤后第几个是谁、空组回退到哪个 proxy、默认选中是谁。

失败时下一步

实际选中的候选与阅读结果不一致时,按组装规则回查:先看 include-all 是否已把顺序改成按名称排序;再看过滤条件是否删掉了以为排在前面的节点;然后看空组是否已落到 empty-fallback,且未误填代理组名;接着看健康检查是否把前面的候选判为不可用从而跳到后续项;最后看 default-selected 是否因名称不存在而落到组中第一个节点。仍对不上时,只对照上述通用字段,不要改用文档未给出的界面名称来解释顺序。

来源:https://wiki.metacubex.one/config/proxy-groups/