Clash 代理组(proxy-groups)完全指南:从入门到精通
代理组是 Clash 配置文件的核心,决定了流量如何分流。本文深入解析四大代理组类型的工作原理与实战配置,配合完整 YAML 示例,让你的规则策略如丝般顺滑。
什么是代理组?
在 Clash 的配置文件(YAML)中,proxy-groups 定义了一组"虚拟代理"——它们本身不是真实节点,而是对一批节点的调度策略。规则(Rules)匹配到某条流量后,会将其交给指定的代理组,再由代理组按照自身策略决定最终走哪个节点。
理解代理组的关键一句话:规则决定"哪类流量该走代理",代理组决定"走哪个代理"。
四大代理组类型
① select — 手动选择
select 是最基础的代理组,节点由用户在面板中手动切换,不会自动测速或切换。适合对固定节点有特殊偏好的用户。
proxy-groups:
- name: "🚀 手动选择"
type: select
proxies:
- 香港 01
- 日本 01
- 美国 01
- DIRECT
proxies 列表中加入 DIRECT,可以让用户一键切换到直连模式,方便调试。
② url-test — 自动测速选优
url-test 会定期向指定 URL 发起请求,并自动选择延迟最低的节点。适合对延迟敏感的场景(如游戏、视频流)。
proxy-groups:
- name: "⚡ 自动选优"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300 # 每 300 秒重新测速
tolerance: 50 # 延迟差距 <50ms 时不切换,避免频繁跳变
proxies:
- 香港 01
- 香港 02
- 日本 01
③ fallback — 故障转移
fallback 按节点顺序依次检测可用性,优先使用第一个可用节点,当前节点失效时自动切换到下一个。适合对稳定性要求高、不在意延迟差异的场景。
proxy-groups:
- name: "🛡️ 故障转移"
type: fallback
url: "http://www.gstatic.com/generate_204"
interval: 180
proxies:
- 主力节点 HK
- 备用节点 JP
- 应急节点 SG
fallback 与 url-test 的区别:前者按顺序优先,后者按延迟最低。
④ load-balance — 负载均衡
load-balance 将流量分散到多个节点,有 round-robin(轮询)和 consistent-hashing(同一目标域名固定走同一节点)两种子策略。
proxy-groups:
- name: "⚖️ 负载均衡"
type: load-balance
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: consistent-hashing # 推荐,同域名走固定节点
proxies:
- 香港 01
- 香港 02
- 香港 03
嵌套代理组:构建灵活策略
proxies 列表中不仅可以放真实节点名,还可以引用其他代理组名称,实现多级嵌套。
proxy-groups:
# 第一层:地区分组(自动测速)
- name: "🇭🇰 香港节点"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies: [香港 01, 香港 02, 香港 03]
- name: "🇯🇵 日本节点"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies: [日本 01, 日本 02]
# 第二层:用途分组(手动从地区组选择)
- name: "🚀 节点选择"
type: select
proxies:
- 🇭🇰 香港节点 # 引用整个地区组
- 🇯🇵 日本节点
- DIRECT
- name: "🎬 流媒体"
type: select
proxies:
- 🇺🇸 美国节点
- 🇯🇵 日本节点
完整配置示例
下面是一个典型的三层策略配置,覆盖日常 90% 以上的使用场景:
proxy-groups:
# ── 主选择入口 ──
- name: "🚀 节点选择"
type: select
proxies: [⚡ 自动选优, 🇭🇰 香港, 🇯🇵 日本, 🇺🇸 美国, DIRECT]
# ── 自动测速组 ──
- name: "⚡ 自动选优"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
proxies: [香港 01, 香港 02, 日本 01, 新加坡 01]
# ── 流媒体专用 ──
- name: "🎬 流媒体解锁"
type: select
proxies: [🇺🇸 美国, 🇯🇵 日本, 🇭🇰 香港]
# ── 地区分组 ──
- name: "🇭🇰 香港"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies: [香港 01, 香港 02]
- name: "🇯🇵 日本"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies: [日本 01, 日本 02]
- name: "🇺🇸 美国"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
proxies: [美国 01, 美国 02]
# ── 兜底 ──
- name: "🐟 漏网之鱼"
type: select
proxies: [🚀 节点选择, DIRECT]
常见问题
url-test 多久测一次?可以调快吗?
interval 单位为秒,默认 300s。可以调小(如 60s),但过于频繁会增加带宽消耗,通常 180~300s 为最佳平衡点。
代理组名称能用中文和 emoji 吗?
可以,YAML 完全支持 UTF-8,包括中文和 emoji。但要确保 Rules 和 proxy-groups 中的名称完全一致(区分大小写)。
DIRECT 和 REJECT 是特殊节点吗?
是的,DIRECT 表示直连不走代理,REJECT 表示丢弃该连接(常用于广告屏蔽)。两者无需在 proxies 中声明,可以直接在任意代理组或规则中引用。