策略组是Clash配置的核心组件,它决定了流量使用哪个代理节点。Clash提供了多种策略组类型,每种类型有不同的节点选择逻辑。理解这些策略组的区别和适用场景,是优化Clash配置的关键。
一、策略组基础概念
策略组(Proxy Group)是一组代理节点的集合,配合分流规则使用。当某条规则匹配到一个策略组时,Clash会根据策略组的类型和配置,从组中选择一个节点来处理该连接。
策略组可以包含实际的代理节点,也可以包含其他策略组,形成嵌套结构。这种设计提供了极大的灵活性,可以实现复杂的分流逻辑。
二、select策略组
select是最基础的策略组类型,需要用户手动选择使用哪个节点。在图形化客户端中,select策略组显示为一个下拉菜单,用户可以随时切换节点。
适用场景
- 需要手动控制代理节点的场景
- 作为顶层策略组,让用户选择整体代理方案
- 需要固定使用某个特定节点的场景
配置示例
创建一个名为"Proxy"的select策略组,包含多个节点和子策略组。用户在客户端中可以手动选择使用哪个节点或子策略组。
三、url-test策略组
url-test策略组自动测试所有节点的延迟,并选择延迟最低的节点。它会定期发送HTTP请求测试每个节点的响应时间,然后自动切换到最快的节点。
关键参数
url:测试用的URL,建议使用https://www.gstatic.com/generate_204,响应快且准确interval:测试间隔(秒),建议设置为300(5分钟)tolerance:容差值(毫秒),新节点延迟必须比当前节点低tolerance值才会切换,避免频繁切换lazy:是否懒测试,设为true时仅在节点被使用时才测试
适用场景
- 追求最低延迟的日常浏览场景
- 节点质量差异较大的情况
- 需要自动选择最优节点的场景
推荐配置:url-test策略组设置 url: https://www.gstatic.com/generate_204,interval: 300,tolerance: 100,可以自动选择延迟最低且稳定的节点。
四、fallback策略组
fallback策略组按照节点列表的顺序依次尝试,使用第一个可用的节点。与url-test不同,fallback不选择延迟最低的节点,而是选择第一个能连通的节点。
工作原理
fallback策略组会定期测试所有节点的可用性。从列表第一个节点开始,如果该节点可用就使用它;如果不可用就尝试下一个,直到找到可用的节点。这种机制确保了只要有节点可用,代理就能正常工作。
适用场景
- 需要稳定连接,不追求最低延迟的场景
- 节点质量参差不齐,需要自动故障转移
- 按优先级排列节点,优先使用排在前面的节点
五、load-balance策略组
load-balance策略组将流量分散到多个节点上,实现负载均衡。每个新连接会被分配到不同的节点,避免单个节点过载。
负载均衡策略
- consistent-hashing:一致性哈希,相同目标域名的连接始终使用同一节点
- round-robin:轮询方式,依次分配连接到每个节点
适用场景
- 有大量节点需要同时使用
- 单节点带宽不足,需要分散流量
- 需要最大化总带宽的场景
六、relay策略组
relay策略组实现节点中继,流量依次经过多个节点转发。例如:本地 → 节点A → 节点B → 目标网站。这种方式可以增加匿名性,但会增加延迟。
适用场景
- 需要更高匿名性的场景
- 单个节点无法满足访问需求,需要通过中继绕过限制
七、策略组嵌套设计
策略组可以嵌套使用,形成层次化的分流结构。一个常见的设计模式是:
- 创建多个url-test策略组,按地区分组(如"香港节点"、"日本节点"、"美国节点")
- 创建一个select策略组作为总出口,包含各地区策略组
- 分流规则指向总出口策略组
- 用户在总出口策略组中选择使用哪个地区的节点
这种设计让用户既可以选择自动最优节点(通过url-test),也可以手动切换地区(通过select),兼顾了自动化和灵活性。
总结
Clash的策略组类型丰富多样,select提供手动控制,url-test自动选择最优节点,fallback提供故障转移,load-balance实现负载均衡,relay支持节点中继。根据不同的使用场景选择合适的策略组类型,并合理设计策略组的嵌套结构,可以充分发挥Clash的分流能力,获得最佳的使用体验。