Clash策略组详解:fallback、url-test与select工作原理

立即下载Clash入门 全平台支持 · 官方最新版

Clash策略组详解:fallback、url-test与select工作原理

策略组(Strategy Group)是Clash配置文件中最强大的功能之一。它允许用户将多个代理节点组合在一起,通过不同的策略逻辑实现智能切换、负载均衡和故障转移。本文将深入解析Clash三大核心策略组类型——fallback、url-test和select——的工作原理、配置方法和最佳实践。

什么是Clash策略组

策略组的基本概念

在Clash中,策略组是一个容器,可以将多个代理节点(Proxies)或子策略组(Proxy Groups)放入其中。通过指定不同的策略类型,Clash会根据预设规则从中选择一个最优节点来转发流量。

策略组的核心优势包括:

策略组在配置文件中的位置

策略组在Clash配置文件中位于 proxy-groups 部分:

proxy-groups:
  - name: "自动选择"
    type: url-test
    proxies:
      - 节点1
      - 节点2
      - 节点3
    url: "http://www.gstatic.com/generate_204"
    interval: 300

  - name: "故障转移"
    type: fallback
    proxies:
      - 节点1
      - 节点2
    url: "http://www.gstatic.com/generate_204"
    interval: 300

  - name: "手动选择"
    type: select
    proxies:
      - 节点1
      - 节点2
      -  DIRECT

url-test 策略组:延迟测速自动选优

工作原理

url-test 策略组会定期对组内所有节点进行延迟测试,然后自动选择延迟最低的节点来转发流量。如果当前使用的节点延迟变高或失效,它会自动切换到另一个延迟更低的节点。

核心参数详解

参数名 类型 必填 默认值 说明
name string 是 - 策略组名称
type string 是 - 固定为 url-test
proxies array 是 - 节点或子策略组列表
url string 是 - 测速目标URL
interval integer 否 300 测速间隔(秒)
tolerance integer 否 50 延迟容差(毫秒)
timeout integer 否 5000 单次测速超时(毫秒)

配置示例

proxy-groups:
  - name: "自动选择-香港"
    type: url-test
    proxies:
      - 香港-节点1
      - 香港-节点2
      - 香港-节点3
      - 香港-节点4
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 100
    timeout: 3000

tolerance 参数解析

tolerance 是 url-test 中一个容易误解但非常重要的参数。它定义了切换节点的延迟阈值:

这个机制的作用是避免频繁切换。如果差值超过 tolerance,才会触发切换。例如:

最佳实践建议

  1. 测速URL选择:使用 Google 的 generate_204 或 Cloudflare 的 cp.cloudflare.com/generate_204,响应稳定且全球可用
  2. interval 设置:建议 300-600 秒(5-10分钟),过于频繁会增加不必要的网络开销
  3. timeout 设置:建议 3000-5000ms,过短会导致节点被误判为不可用
  4. tolerance 设置:根据网络环境,一般设置 50-150ms,WiFi环境可以设小一点,移动网络可以设大一点

fallback 策略组:优先级故障转移

工作原理

fallback 策略组按照 proxies 列表中的顺序排列优先级。它会优先使用列表中的第一个节点,只有当该节点不可用时,才会依次尝试后面的节点。它非常适合构建主备架构。

与 url-test 的核心区别

特性 url-test fallback
选择依据 延迟测速结果 列表顺序
切换触发 延迟差值超过tolerance 当前节点不可用
使用场景 追求最低延迟 追求稳定连接
优先级 动态 静态(按列表顺序)
节点权重 均等 按列表顺序递减

配置示例

proxy-groups:
  - name: "主力线路"
    type: fallback
    proxies:
      - 专线-主节点
      - 专线-备用节点
      - 普通节点1
      - 普通节点2
      - DIRECT
    url: "http://www.gstatic.com/generate_204"
    interval: 300

这个配置的策略是:

  1. 优先使用专线主节点
  2. 主节点失效时切换到专线备用节点
  3. 专线都失效时降级到普通节点
  4. 所有节点都失效时直连(DIRECT)

适用场景

fallback 策略组特别适合以下场景:

select 策略组:手动选择

工作原理

select 是最简单的策略组类型。它不会在后台自动测速或切换,而是将选择权交给用户。在 Clash Verge 或 Clash Dashboard 等客户端中,用户可以通过下拉菜单手动选择要使用的节点。

配置示例

proxy-groups:
  - name: "节点选择"
    type: select
    proxies:
      - 自动选择-香港
      - 自动选择-日本
      - 自动选择-美国
      - 自动选择-新加坡
      - DIRECT

  - name: "流媒体解锁"
    type: select
    proxies:
      - 美国-Netflix专用
      - 日本-Abema专用
      - 香港-Viu专用
      - 自动选择-美国
      - DIRECT

与其他策略组嵌套

select 的真正威力在于与其他策略组嵌套使用。上面的第一个例子中,select 的选项不是单个节点,而是其他 url-test 策略组。这意味着:

特殊选项:DIRECT 和 REJECT

select 策略组可以包含两个特殊选项:

proxy-groups:
  - name: "广告拦截"
    type: select
    proxies:
      - REJECT
      - DIRECT

这个配置默认拒绝所有广告域名,但用户可以手动切换到 DIRECT 以排查误拦截问题。

策略组组合实战:构建完整的分流体系

推荐的策略组架构

一个成熟的分流配置通常包含以下层级:

proxy-groups:
  # 第一层:按地理位置分组(url-test)
  - name: "香港自动"
    type: url-test
    proxies:
      - 香港-1
      - 香港-2
    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
    url: "http://www.gstatic.com/generate_204"
    interval: 300

  # 第二层:手动选择策略组(select)
  - name: "手动选择"
    type: select
    proxies:
      - 香港自动
      - 日本自动
      - 美国自动
      - DIRECT

  # 第三层:故障转移(fallback)
  - name: "故障转移"
    type: fallback
    proxies:
      - 香港自动
      - 日本自动
      - 美国自动
      - DIRECT
    url: "http://www.gstatic.com/generate_204"
    interval: 300

  # 第四层:特殊用途策略组
  - name: "流媒体"
    type: select
    proxies:
      - 美国自动
      - 香港自动
      - 日本自动
      - DIRECT

规则与策略组配合

在 rules 部分引用策略组:

rules:
  - GEOIP,CN,DIRECT
  - DOMAIN-SUFFIX,netflix.com,流媒体
  - DOMAIN-SUFFIX,openai.com,美国自动
  - DOMAIN-SUFFIX,google.com,手动选择
  - MATCH,故障转移

策略组调试技巧

查看当前策略组状态

在 Clash Verge 中,点击左侧“代理”面板,可以看到所有策略组及其当前选择的节点。对于 url-test 策略组,还可以查看每个节点的实时延迟。

常见问题排查

问题 可能原因 解决方法
url-test 不切换节点 tolerance 设置过大 适当减小 tolerance 值
fallback 不切换备用 节点并未真正失效 检查测速URL是否可达
延迟测速不准确 测速URL被干扰 更换测速目标
策略组显示为空 引用了不存在的节点 检查节点名称拼写
切换后速度反而更慢 延迟不等于实际速度 综合考虑延迟和带宽

总结

Clash 的三种策略组各有优势:

在实际配置中,最佳实践是三种策略组组合使用:用 select 做顶层控制,用 url-test 做区域自动选择,用 fallback 做兜底保障。这样的多层架构既能享受自动化带来的便利,又能保留手动干预的灵活性,是构建高效 Clash 配置的核心。

这篇教程有帮助吗?立即下载Clash入门试试吧!

全平台支持 · 安全无毒 · 官方最新版

下载Clash入门