Clash代理组策略详解:选择、负载均衡与故障转移
目录
Clash的代理组(Proxy Group)是整个配置体系中最灵活、也最容易被忽视的部分。很多人直接使用机场提供的配置,从未深入理解代理组的工作原理。但实际上,合理配置代理组是提升网络稳定性和速度的关键。
本文将系统讲解Clash所有代理组策略类型,从基础概念到高级嵌套用法,帮你真正掌握代理组的配置。
什么是代理组(Proxy Group)
代理组是Clash配置文件中的核心组件之一,它定义了一组代理服务器以及如何在这组服务器之间做流量分配决策。
简单来说,代理组解决的是这个问题:当你有多条线路(节点)时,选哪一条来传输数据?
在Clash配置文件中,代理组位于proxy-groups字段下:
proxy-groups:
- name: "Proxy"
type: select
proxies:
- 香港节点1
- 香港节点2
- 日本节点
- 美国节点
- name:策略组名称,在规则中通过此名称引用
- type:策略类型,决定了流量在组内代理间的分配方式
- proxies:包含的代理服务器列表,可以是具体节点,也可以是其他策略组
Clash支持6种代理组类型,每种都有特定的使用场景。理解它们的区别是优化网络配置的基础。
select策略组:手动选择
select是最简单直接的策略类型——完全由用户手动选择使用哪个节点。这也是大多数机场配置中"Proxy"主策略组使用的类型。
基本配置
- name: "Proxy"
type: select
proxies:
- 香港节点1
- 香港节点2
- 日本节点
- 美国节点1
- 美国节点2
使用场景
- 主代理策略组:日常使用时手动切换节点
- 流媒体分流:根据地区手动选择对应节点(如Disney+需要美区节点)
- 游戏加速:手动选择延迟最低的游戏节点
在客户端UI中,select策略组通常以列表形式展示,点击即可切换。建议将最常用的节点放在列表最前面,减少切换操作。
url-test策略组:自动选择最优节点
url-test是最实用的自动化策略——通过定期测速,自动选择延迟最低的节点。这是大多数进阶用户的首选。
完整配置参数
- name: "Auto"
type: url-test
proxies:
- 香港节点1
- 香港节点2
- 日本节点
- 新加坡节点
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 150
参数详解
- url:测速目标地址。推荐使用
http://www.gstatic.com/generate_204,这是一个返回HTTP 204的轻量地址,测速最准确 - interval:测速间隔(秒)。300表示每5分钟测一次。设置太短会浪费带宽,太长则无法及时响应节点变化
- tolerance:容差值(毫秒)。当前最优节点延迟与新节点延迟之差超过此值时才切换。避免在两个相近节点间频繁切换
interval不建议低于60秒。频繁的测速请求会占用节点带宽,反而影响正常使用。推荐值为300秒(5分钟),既能及时感知网络变化,又不会产生额外负担。
lazy参数
lazy(默认为true)控制是否对不活跃的代理跳过测速。如果你的某些节点平时很少被访问到,开启lazy可以避免不必要的测速开销:
- name: "Auto"
type: url-test
proxies:
- 香港节点1
- 香港节点2
- 日本节点
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 150
lazy: true
fallback策略组:故障转移
fallback策略组实现了主备切换逻辑——按列表顺序依次尝试节点,使用第一个可用的节点。
基本配置
- name: "Fallback"
type: fallback
proxies:
- 香港节点1
- 香港节点2
- 日本节点
- 美国节点
url: "http://www.gstatic.com/generate_204"
interval: 300
工作原理
fallback策略组按顺序对节点进行健康检查:
- 首先测试"香港节点1"是否可用
- 如果可用,直接使用"香港节点1",不再检测后续节点
- 如果不可用,测试"香港节点2"
- 依此类推,直到找到一个可用的节点
- 如果全部不可用,则使用列表中第一个节点(即使不可达)
与url-test的区别
- url-test:选择延迟最低的节点(追求速度)
- fallback:选择列表中第一个可用的节点(追求优先级)
如果你希望优先使用香港节点,只有香港节点不可用时才切换到日本节点,应该用fallback。如果你希望香港和日本节点中哪个快就用哪个,应该用url-test。
典型使用场景
- 多线路备份:主线路故障时自动切换到备用线路
- 分级节点:优先使用低价线路,只在不可用时切换到高价线路
- 跨地区容灾:本地节点故障时自动切换到远端节点
load-balance策略组:负载均衡
load-balance将流量分散到多个节点,适合需要高带宽或多人共享的场景。
基本配置
- name: "LoadBalance"
type: load-balance
proxies:
- 香港节点1
- 香港节点2
- 香港节点3
- 日本节点1
url: "http://www.gstatic.com/generate_204"
interval: 300
strategy: consistent-hashing
负载均衡算法
Clash支持两种负载均衡算法:
同一个目标域名(如google.com)的所有请求始终走同一个节点。好处是:
- 连接稳定,不会频繁切换节点
- 保持TCP长连接的效率
- 避免因切换节点导致的cookie丢失或会话中断
推荐:这是绝大多数场景下的最佳选择。
按顺序轮流使用每个节点,第1个请求走节点1,第2个请求走节点2,依此类推。
特点:
- 流量分配最均匀
- 但可能导致同一个域名的请求分散到不同节点
- 可能影响依赖长连接的服务
适用场景:多人共享同一个代理配置时,每个用户的请求可以分散到不同节点。
load-balance策略在某些机场可能不友好。部分机场对单节点有速率限制或连接数限制,如果分散到多节点反而可能触发风控。使用前建议测试实际效果。
relay策略组:链式代理
relay是最特殊的策略类型——它将流量依次经过多个代理节点,形成代理链。这是Clash中唯一能实现"多级代理"的方式。
基本配置
- name: "Relay"
type: relay
proxies:
- 日本节点(作为入口)
- 新加坡节点(作为中间节点)
- 美国节点(作为出口)
工作原理
数据流路径为:你的设备 → 日本节点 → 新加坡节点 → 美国节点 → 目标网站
对于目标网站来说,请求来自美国节点的IP。但日本和新加坡节点都能看到你原始的加密流量。
使用场景
- 隐藏真实来源:通过多跳混淆真实的出口IP和入口IP之间的关系
- 突破特殊限制:某些场景需要先经过特定地区的节点,再从另一地区出口
- 内网穿透:先连接到可达的入口节点,再通过中间节点到达目标网络
链式代理会显著增加延迟。每增加一跳,延迟增加约20-100ms。3跳以上的代理链基本不适合日常浏览,仅适合对隐私要求极高的场景。此外,relay策略组不支持url和interval参数,因为它的健康检查机制与其他策略不同。
relay的限制
- 不能使用
url-test等自动化参数 - 不能嵌套其他relay策略组
- 每个节点必须是具体的代理服务器,不能是其他策略组
- Clash Meta内核已不再支持relay(推荐使用
chain方式替代)
嵌套代理组的高级用法
代理组的proxies列表不仅可以包含具体节点,还可以包含其他策略组。这就是嵌套代理组——实现复杂路由逻辑的核心机制。
嵌套结构示例
proxy-groups:
# 底层:按地区分组
- name: "香港节点组"
type: url-test
proxies:
- 香港节点1
- 香港节点2
- 香港节点3
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "日本节点组"
type: url-test
proxies:
- 日本节点1
- 日本节点2
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "美国节点组"
type: url-test
proxies:
- 美国节点1
- 美国节点2
- 美国节点3
url: "http://www.gstatic.com/generate_204"
interval: 300
# 中层:地区优先级
- name: "亚太自动"
type: fallback
proxies:
- 香港节点组
- 日本节点组
url: "http://www.gstatic.com/generate_204"
interval: 300
# 顶层:最终选择
- name: "Proxy"
type: select
proxies:
- 亚太自动
- 美国节点组
- 香港节点组
- 日本节点组
嵌套的工作逻辑
在上面的例子中:
- "Proxy"策略组提供最终手动选择
- 默认选择"亚太自动",它会优先使用香港节点组(因为fallback按顺序)
- 如果所有香港节点都不可用,自动切换到日本节点组
- 用户也可以手动切换到"美国节点组"或某个具体地区组
代理组嵌套深度建议不超过3层。过深的嵌套会增加配置的理解难度和调试复杂度,而且可能影响Clash的解析性能。
实战:构建智能选择策略组
以下是一个完整的实战配置,实现"智能选择 + 手动兜底"的策略架构:
设计思路
- 按地区分组,每组内部自动测速选最优
- 设置地区优先级,优先使用低延迟地区
- 保留手动选择能力作为兜底
- 为特定应用(如流媒体、游戏)提供专用策略组
完整配置
proxy-groups:
# ===== 主策略组 =====
- name: "Proxy"
type: select
proxies:
- Auto Best
- 香港自动
- 日本自动
- 新加坡自动
- 美国自动
- DIRECT
# ===== 自动选择层 =====
- name: "Auto Best"
type: fallback
proxies:
- 香港自动
- 日本自动
- 新加坡自动
url: "http://www.gstatic.com/generate_204"
interval: 300
# ===== 地区自动层 =====
- name: "香港自动"
type: url-test
proxies:
- HK-01
- HK-02
- HK-03
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 100
- name: "日本自动"
type: url-test
proxies:
- JP-01
- JP-02
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 100
- name: "新加坡自动"
type: url-test
proxies:
- SG-01
- SG-02
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 100
- name: "美国自动"
type: url-test
proxies:
- US-01
- US-02
- US-03
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 150
# ===== 流媒体专用 =====
- name: "Disney+"
type: select
proxies:
- 美国自动
- US-01
- US-02
- name: "Netflix"
type: select
proxies:
- 香港自动
- 日本自动
- 美国自动
# ===== 游戏专用 =====
- name: "Game"
type: url-test
proxies:
- HK-01
- HK-02
- JP-01
url: "http://www.gstatic.com/generate_204"
interval: 120
tolerance: 50
配置解析
- Proxy组默认走"Auto Best",它优先使用香港节点组,香港全挂则切换日本,再挂则切换新加坡
- 用户可以手动切换到"美国自动"或其他地区组
- Disney+规则强制走美国节点
- Netflix规则默认走香港(解锁内容丰富),可手动切换
- Game策略组interval设为120秒(更频繁的测速),tolerance设为50ms(更敏感的切换),确保游戏延迟最低
常见策略组配置模板
模板1:简洁自动切换
适合不想手动选择、希望全自动的用户:
proxy-groups:
- name: "Proxy"
type: url-test
proxies:
- 节点1
- 节点2
- 节点3
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 150
模板2:主备双线路
适合有明确主备线路的用户:
proxy-groups:
- name: "Proxy"
type: fallback
proxies:
- 主线路组
- 备用线路组
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "主线路组"
type: url-test
proxies:
- HK-01
- HK-02
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "备用线路组"
type: url-test
proxies:
- JP-01
- SG-01
url: "http://www.gstatic.com/generate_204"
interval: 300
模板3:多地区智能选择
适合拥有多地区节点的高级用户:
proxy-groups:
- name: "Proxy"
type: select
proxies:
- Smart Auto
- HK Auto
- JP Auto
- SG Auto
- TW Auto
- US Auto
- DIRECT
- name: "Smart Auto"
type: url-test
proxies:
- HK Auto
- JP Auto
- SG Auto
- TW Auto
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 80
- name: "HK Auto"
type: url-test
proxies: [HK-01, HK-02, HK-03]
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "JP Auto"
type: url-test
proxies: [JP-01, JP-02]
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "SG Auto"
type: url-test
proxies: [SG-01, SG-02]
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "TW Auto"
type: url-test
proxies: [TW-01, TW-02]
url: "http://www.gstatic.com/generate_204"
interval: 300
- name: "US Auto"
type: url-test
proxies: [US-01, US-02, US-03]
url: "http://www.gstatic.com/generate_204"
interval: 300
以上模板需要根据你的实际节点名称替换proxies中的值。建议配合Rule Provider使用,让不同流量走不同的策略组,实现精细化的流量管理。