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

Clash 负载均衡策略组使用前要明确哪些目标

Clash 负载均衡策略组使用前要明确哪些目标。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

在启用负载均衡用途的策略组之前,先把目标写成可核对的条件。官方代理组文档给出的是通用字段:组叫什么、类型是什么、候选从哪来、空组怎么回退、以及健康检查如何定义可用。适用条件是:你准备让请求从该组的成员中离开,并且愿意用这些字段约束集合与探活。不要把“分发”理解成文档未描述的带宽叠加;下面只根据通用字段列出使用前必须明确的目标。

先明确组的身份、类型与候选集合目标

必须先有 name 和 type。name 是策略组的名字,含特殊符号时应当使用引号包裹。type 是策略组的类型,文档把它列为必须项,因此使用前要能指出该字段的值,而不是只给一个中文别名。

候选集合目标要写清来源:proxies 引入出站代理或其他策略组;use 引入代理集合;include-all 引入所有出站代理以及代理集合且按名称排序,不含策略组;include-all-proxies 引入所有出站代理并按名称排序;include-all-providers 引入所有代理集合并按名称排序,同时会使引入代理集合的写法失效。若目标是名单顺序由你指定,应主要依赖 proxies 列表。若目标是自动纳入全部节点,必须接受按名称排序,并用 filter、exclude-filter、exclude-type 约束范围。

filter 与 exclude-filter 支持关键词或正则,多个正则可用反引号区分,且仅作用于引入代理集合以及引入所有出站代理。exclude-type 用竖线分割类型名,不支持正则,仅排除引入的出站代理,无视大小写。default-selected 的目标是启动后默认选中哪一个节点;为空或名字不存在时,默认选择组中第一个节点。若目标是必须落在某节点,就要保证该名字真实存在于筛选之后的最终集合。

再明确可用如何定义,而不是假设会叠加容量

健康检查相关字段定义的是探测,不是把多条出站的容量加在同一次传输上。使用前应明确:url 指向哪条健康检查测试地址;该地址只会检查 proxies 字段里的代理,不会检查通过 use 引入的代理集合节点。若分发目标依赖 use 里的节点可用性,组级 url 并不能覆盖它们,这一条必须写进启用前的目标清单。

同时明确:interval 是否非 0(非 0 才启用定时测试,单位秒);是否接受 lazy 默认为 true(未选择到当前策略组时不测试);timeout 的毫秒值;max-failed-times 超过后触发一次强制健康检查,默认 5;expected-status 是否要从默认星号改成明确状态码。若配置了 expected-status,只有响应状态码与期望一致才认为可用。写法上可用斜线匹配多个状态码,用短横匹配范围,例如 200 与 302,或 400 到 503,或混合书写。目标如果是探测成功即视为可参与分发,却写了与探测地址不符的状态码,节点会从集合中消失,看起来像策略未生效。

空组、UDP、展示与弃用项,以及失败下一步

还要明确空组目标:empty-fallback 在组为空时回退,默认为 COMPATIBLE,只支持填写 proxy 名称,不支持填写代理组。若目标是空了就走另一策略组,该字段不支持这种写法,需要改目标或改结构。disable-udp 用于禁用该策略组的 UDP,使用前要确定该组是否承担 UDP 流量。hidden 会在 api 返回 hidden 状态以隐藏展示,icon 会在 api 返回图标字符串,二者都需要使用 api 的前端适配,它们不是流量目标。代理组中的 interface-name 与 routing-mark 已弃用,出站接口与路由标记应写在代理节点上,优先级为代理节点大于代理策略大于全局。

失败时下一步:先对照 name、type 是否写全;再确认最终候选是来自 proxies、use 还是 include,以及是否被 filter 改写;再检查 default-selected 与排序规则是否把第一个节点换掉;最后核对 url 覆盖范围、lazy、interval、expected-status。若组为空,检查 empty-fallback 是否误填了策略组名。通用字段只提供引入规则与可用性定义,不能把健康检查失败理解成分发没有把容量加在一起。

参考资料:https://wiki.metacubex.one/config/proxy-groups/