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
⚠️ 注意 fallbackurl-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 中声明,可以直接在任意代理组或规则中引用。