策略组是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 → 目标网站。这种方式可以增加匿名性,但会增加延迟。

适用场景

  • 需要更高匿名性的场景
  • 单个节点无法满足访问需求,需要通过中继绕过限制

七、策略组嵌套设计

策略组可以嵌套使用,形成层次化的分流结构。一个常见的设计模式是:

  1. 创建多个url-test策略组,按地区分组(如"香港节点"、"日本节点"、"美国节点")
  2. 创建一个select策略组作为总出口,包含各地区策略组
  3. 分流规则指向总出口策略组
  4. 用户在总出口策略组中选择使用哪个地区的节点

这种设计让用户既可以选择自动最优节点(通过url-test),也可以手动切换地区(通过select),兼顾了自动化和灵活性。

总结

Clash的策略组类型丰富多样,select提供手动控制,url-test自动选择最优节点,fallback提供故障转移,load-balance实现负载均衡,relay支持节点中继。根据不同的使用场景选择合适的策略组类型,并合理设计策略组的嵌套结构,可以充分发挥Clash的分流能力,获得最佳的使用体验。