Clash 代理组详解:select、url-test、fallback、load-balance、relay 原理与写法
Clash 中文网编辑部 · 更新于 2026/10/22
代理组(proxy-groups)把多个节点组织成一个可在规则中引用的“出口”。 规则只负责把流量指向某个代理组,代理组再决定具体用哪个节点。Clash / Mihomo 支持五种代理组类型:select(手动选择)、url-test(自动选最快)、fallback(故障转移)、load-balance(负载均衡)和 relay(链式代理)。
代理组在配置中的位置
rules(规则)
└─ GEOSITE,youtube,国外媒体 → 交给“国外媒体”组
proxy-groups(代理组)
└─ 国外媒体:select [节点选择, 香港自动, 日本自动]
└─ 节点选择:select [自动选择, 香港01, 日本01, ...]
└─ 自动选择:url-test [全部节点]
proxies(节点)
└─ 香港01、日本01、……
规则 → 代理组 →(可能经过多层代理组)→ 节点。
五种类型对比
| 类型 | 选择方式 | 能手动选 | 典型用途 |
|---|---|---|---|
| select | 用户手动选择 | ✓ | 主选择组,如“节点选择” |
| url-test | 自动选择延迟最低的节点 | ✗ | “自动选择”“香港自动” |
| fallback | 按顺序用第一个可用节点 | ✗ | 主备切换 |
| load-balance | 把连接分配到多个节点 | ✗ | 分散负载、多线程下载 |
| relay | 依次经过所有节点(链式) | ✗ | 前置代理(推荐改用 dialer-proxy) |
select:手动选择
- name: 节点选择
type: select
proxies:
- 自动选择
- 香港自动
- 香港01
- 日本01
- DIRECT
- 用户在客户端中点选哪个就用哪个;
- 第一项是默认选择;
- 可以包含节点、其他代理组、
DIRECT、REJECT。
url-test:自动选最快
- name: 自动选择
type: url-test
proxies: [香港01, 香港02, 日本01, 美国01]
url: https://www.gstatic.com/generate_204
interval: 300
tolerance: 50
lazy: true
| 参数 | 说明 | 建议值 |
|---|---|---|
url |
测速网址 | https://www.gstatic.com/generate_204 |
interval |
测速间隔(秒) | 300 |
tolerance |
容差(毫秒),新节点必须快出这么多才切换 | 50 |
lazy |
没有流量经过时不测速,节省资源 | true |
timeout |
测速超时(毫秒) | 5000 |
expected-status |
期望的 HTTP 状态码 | 204 |
max-failed-times |
连续失败多少次判为不可用 | 5 |
tolerance 的作用:假设当前用香港01(80ms),新测出香港02 为 70ms。如果 tolerance 是 50,70 并没有比 80 快 50 以上,所以不切换。这样可以避免节点在延迟相近时来回跳动、频繁断线。
fallback:故障转移
- name: 主备切换
type: fallback
proxies: [香港01, 香港02, 日本01]
url: https://www.gstatic.com/generate_204
interval: 300
工作逻辑:
- 优先使用列表第一个可用的节点(香港01);
- 香港01 健康检查失败 → 自动切到香港02;
- 香港01 恢复后 → 切回香港01。
适合:有一个主力节点(或主力机场),其他作为备用;或两家机场互为备份。
load-balance:负载均衡
- name: 负载均衡
type: load-balance
proxies: [香港01, 香港02, 香港03]
url: https://www.gstatic.com/generate_204
interval: 300
strategy: consistent-hashing
| 策略 | 分配方式 | 适合 |
|---|---|---|
consistent-hashing |
同一目标域名总是分配到同一节点 | 默认推荐,网站登录状态不会因 IP 变化失效 |
round-robin |
依次轮流分配 | 下载等不在乎 IP 变化的场景 |
sticky-sessions |
同一来源和目标在一段时间内固定节点 | 兼顾分散与稳定 |
注意:负载均衡会让同一个网站的请求可能来自不同 IP(round-robin 时),部分网站会因此要求重新登录或触发风控。
relay:链式代理
- name: 链式出口
type: relay
proxies: [香港01, 美国住宅IP]
流量依次经过香港01 → 美国住宅IP。Mihomo 更推荐使用节点的 dialer-proxy 参数实现链式代理,更灵活,见 链式代理教程。
自动引入与过滤节点(Mihomo)
手动列出节点很麻烦,而且机场节点经常变化。Mihomo 提供了自动引入和过滤:
| 字段 | 作用 |
|---|---|
use |
引入指定代理集合(proxy-providers)的全部节点 |
include-all |
引入所有节点和所有代理集合 |
include-all-proxies |
只引入配置中 proxies 里的所有节点 |
include-all-providers |
只引入所有代理集合 |
filter |
用正则保留名称匹配的节点 |
exclude-filter |
用正则排除名称匹配的节点 |
exclude-type |
按协议类型排除,如 `ss |
hidden |
在客户端/面板中隐藏该组 |
icon |
代理组图标 URL |
disable-udp |
该组不转发 UDP |
示例:自动把所有香港节点组成一个 url-test 组,并排除信息节点:
- name: 香港自动
type: url-test
include-all: true
filter: "(?i)港|hk|hong ?kong"
exclude-filter: "剩余|到期|官网"
url: https://www.gstatic.com/generate_204
interval: 300
正则小技巧:
| 正则 | 含义 |
|---|---|
(?i) |
不区分大小写 |
港|hk |
包含“港”或“hk” |
^(?!.*(剩余|到期)) |
不包含“剩余”“到期”(也可以用 exclude-filter) |
常见分组方案
方案一:极简(适合大多数人)
proxy-groups:
- { name: 节点选择, type: select, proxies: [自动选择, DIRECT], include-all: true }
- { name: 自动选择, type: url-test, include-all: true, url: https://www.gstatic.com/generate_204, interval: 300 }
rules:
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
- MATCH,节点选择
方案二:按地区 + 按服务
proxy-groups:
- { name: 节点选择, type: select, proxies: [自动选择, 香港自动, 日本自动, 美国自动, DIRECT] }
- { name: 自动选择, type: url-test, include-all: true, url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: 香港自动, type: url-test, include-all: true, filter: "(?i)港|hk", url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: 日本自动, type: url-test, include-all: true, filter: "(?i)日本|jp", url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: 美国自动, type: url-test, include-all: true, filter: "(?i)美|us", url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: AI 服务, type: select, proxies: [美国自动, 日本自动, 节点选择] }
- { name: 流媒体, type: select, proxies: [香港自动, 日本自动, 美国自动, 节点选择] }
rules:
- GEOSITE,openai,AI 服务
- GEOSITE,anthropic,AI 服务
- GEOSITE,netflix,流媒体
- GEOSITE,youtube,流媒体
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
- MATCH,节点选择
方案三:双机场主备
proxy-groups:
- { name: 节点选择, type: select, proxies: [主备切换, 机场A, 机场B] }
- { name: 主备切换, type: fallback, proxies: [机场A, 机场B], url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: 机场A, type: url-test, use: [airport-a], url: https://www.gstatic.com/generate_204, interval: 300 }
- { name: 机场B, type: url-test, use: [airport-b], url: https://www.gstatic.com/generate_204, interval: 300 }
常见错误
| 错误 | 原因 |
|---|---|
proxy group not found |
规则或代理组引用了不存在的组名(注意 emoji 和空格) |
| 循环引用报错 | A 组包含 B 组,B 组又包含 A 组 |
| 代理组为空 | filter 没有匹配到任何节点,检查正则 |
| url-test 频繁切换 | tolerance 太小,适当调大 |
| 自动组选中了不可用节点 | 测速网址在节点上不可访问,换一个测速网址 |
在客户端中修改代理组
- Clash Verge Rev:右键订阅 →「编辑代理组」,见 编辑规则 / 节点 / 代理组
- 自己维护配置:见 Mihomo 配置文件入门
常见问题
url-test 的 tolerance 是什么?
容差(毫秒)。新的最快节点必须比当前节点快超过这个值才会切换,避免频繁在相近节点之间跳动。
代理组可以嵌套吗?
可以。代理组的 proxies 中可以写其他代理组的名字,例如“节点选择”组里包含“自动选择”组。但不能循环引用。
url-test 和 fallback 有什么区别?
url-test 总是选延迟最低的节点;fallback 按列表顺序使用第一个可用的节点,只有当前节点不可用时才切换。前者追求最快,后者追求稳定、可控的主备关系。
load-balance 会让网速叠加吗?
不会让单个连接变快。它把不同连接分配到不同节点,多线程下载或多个连接同时进行时整体吞吐可能提高。