掌握 Clash 分流:策略组与规则设置全攻略 – wiki基地

掌握 Clash 分流:策略组与规则设置全攻略

Clash 作为一款功能强大的代理客户端,其核心魅力之一便是灵活且高度可定制的分流能力。通过精妙地配置“策略组”(Proxy Group)和“规则”(Rule),用户可以实现对网络流量的精准控制,例如特定网站走特定代理、国内流量直连、广告拦截等。本文将深入解析 Clash 的分流机制,助你全面掌握策略组与规则的设置。

一、Clash 分流基础概念

在深入策略组和规则之前,我们先理解几个基本概念:

  • 代理节点 (Proxy Node):指实际的代理服务器,如 Shadowsocks (SS)、VMess、Trojan 等。它们是流量的最终出口。
  • 策略组 (Proxy Group):可以理解为一个代理节点的集合,或者是一个流量分配的逻辑单元。一个策略组内可以包含多个代理节点,也可以包含其他策略组。它是实现复杂分流逻辑的关键。
  • 规则 (Rule):定义了什么样的流量(如目标域名、IP 地址、流量类型等)应该如何处理(如走哪个代理节点、走哪个策略组、直连或拒绝)。规则是按顺序匹配的,一旦匹配成功,后续规则将不再生效。

二、策略组 (Proxy Group) 详解

策略组是 Clash 分流体系的基石,它允许你将多个代理节点或逻辑合并,并提供多种选择策略。

1. 策略组类型

Clash 提供了多种内置的策略组类型,每种类型都有其独特的流量分配逻辑:

  • select (手动选择):最常用也是最灵活的类型。它会列出组内所有可用的代理节点和子策略组,允许用户在 Clash 客户端界面手动选择一个作为当前使用的代理。
    “`yaml

    • name: 🚀 节点选择
      type: select
      proxies:

      • ♻️ 自动选择
      • 香港节点 A
      • 台湾节点 B
      • … 其他节点

        “`

  • url-test (自动测速):根据预设的 URL(通常是一个低延迟的网站,如 http://www.gstatic.com/generate_204https://www.google.com/generate_204)自动测试组内所有代理节点的延迟,并自动选择延迟最低的节点。适用于追求速度的用户。
    “`yaml

    • name: ♻️ 自动选择
      type: url-test
      url: http://www.gstatic.com/generate_204
      interval: 300 # 每300秒(5分钟)测试一次
      tolerance: 50 # 容忍延迟波动,避免频繁切换
      proxies:

      • 香港节点 A
      • 台湾节点 B
      • 日本节点 C
        “`
  • fallback (故障转移):按顺序测试组内代理节点的可用性。如果第一个节点不可用,则切换到下一个,直到找到可用的节点。适用于追求稳定性的用户,即使某个节点挂掉也能自动切换。
    “`yaml

    • name: 🌍 负载均衡
      type: fallback
      url: http://www.gstatic.com/generate_204
      interval: 300
      proxies:

      • 美国节点 X
      • 德国节点 Y
      • 英国节点 Z
        “`
  • load-balance (负载均衡):实验性功能,尝试将流量平均分配到组内所有节点。在实际使用中效果可能不如 url-testfallback 直观。
    “`yaml

    • name: 负载均衡测试
      type: load-balance
      url: http://www.gstatic.com/generate_204
      interval: 300
      proxies:

      • 节点 M
      • 节点 N
        “`
  • relay (链式代理):将流量按顺序通过多个代理节点。常用于多重代理,增加匿名性或解决某些特殊网络环境问题。
    “`yaml

    • name: 链式代理
      type: relay
      proxies:

      • 节点 A (入口)
      • 节点 B (中间)
      • 节点 C (出口)
        “`

2. 策略组的嵌套

策略组可以嵌套,这是一个非常强大的特性。例如,你可以创建一个 select 策略组,其中包含多个 url-test 策略组,这样你可以在不同地域的“最优节点”之间进行手动切换。

“`yaml
proxy-groups:
– name: 🚀 顶级策略
type: select
proxies:
– ♻️ 智能优选 # 这是一个url-test组
– 🇭🇰 香港专线 # 这是一个url-test组
– 🇨🇳 国内直连 # 这是一个直接连接的组或特殊处理组
– DIRECT
– REJECT

  • name: ♻️ 智能优选
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    proxies:

    • 香港节点 A
    • 台湾节点 B
    • 日本节点 C
  • name: 🇭🇰 香港专线
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    proxies:

    • 香港节点 D
    • 香港节点 E
      “`

三、规则 (Rule) 设置详解

规则定义了流量如何匹配以及匹配后如何处理。Clash 的规则引擎会按顺序从上到下匹配规则,一旦匹配成功便立即执行,不再检查后续规则。因此,规则的顺序至关重要。

1. 规则类型

Clash 支持多种规则类型:

  • DOMAIN-SUFFIX: 匹配域名后缀。例如 DOMAIN-SUFFIX,google.com,🚀 节点选择 会匹配所有以 google.com 结尾的域名(如 www.google.com, mail.google.com)。
  • DOMAIN-KEYWORD: 匹配域名中包含特定关键字的域名。例如 DOMAIN-KEYWORD,google,🚀 节点选择 会匹配任何包含 google 的域名。
  • DOMAIN: 精确匹配域名。例如 DOMAIN,www.google.com,🚀 节点选择 只匹配 www.google.com
  • FULL: (Clash Premium) 精确匹配域名(同 DOMAIN),但可能包含端口信息。
  • IP-CIDR / IP-CIDR6: 匹配 IP 地址或 IP 段。例如 IP-CIDR,192.168.1.0/24,DIRECT。通常用于路由内部或国内流量。
  • GEOIP: 基于 IP 地址的地理位置匹配。例如 GEOIP,CN,DIRECT 会匹配所有中国大陆的 IP 地址并直连。
  • PROCESS-NAME: (Clash Premium) 匹配发起连接的进程名。例如 PROCESS-NAME,telegram.exe,🚀 节点选择
  • MATCH: 兜底规则,匹配所有未被前面规则匹配到的流量。此规则必须放在所有规则的最后,且通常指向一个默认的策略组(如 🚀 节点选择)或 DIRECT / REJECT
  • RULE-SET: (Clash Premium) 引用外部规则集文件,便于管理大量规则。

2. 规则的动作 (Policy)

每条规则的最后一个参数是其动作,可以是:

  • 代理节点名:直接指定一个代理节点来处理流量。
  • 策略组名:将流量导入到指定的策略组,由该策略组决定如何进一步处理。
  • DIRECT:直连,不经过任何代理。
  • REJECT:拒绝连接。常用于广告拦截或恶意网站屏蔽。

3. 规则的编写顺序

规则的顺序至关重要,遵循“特殊优先于一般,精确优先于模糊”的原则:

  1. 拒绝 (REJECT) 规则:如广告、恶意网站,应放在最前面。
    DOMAIN-SUFFIX,ad.com,REJECT
  2. 直连 (DIRECT) 规则:如国内网站、局域网,应在代理规则之前。
    GEOIP,CN,DIRECT
    IP-CIDR,192.168.0.0/16,DIRECT
  3. 精确匹配规则DOMAIN, DOMAIN-KEYWORD 等。
    DOMAIN,cdn.cloudflare.com,DIRECT (如果 CDN 直连更快)
  4. 模糊匹配规则DOMAIN-SUFFIX
    DOMAIN-SUFFIX,google.com,🚀 节点选择
    DOMAIN-SUFFIX,youtube.com,🚀 节点选择
  5. 兜底规则 (MATCH):必须放在最后。
    MATCH,🚀 节点选择 (所有未匹配的流量都走这个策略组)

4. 规则示例

“`yaml
rules:
# 1. 拒绝规则 (最优先)
– DOMAIN-SUFFIX,ad.doubleclick.net,REJECT
– DOMAIN-SUFFIX,googlesyndication.com,REJECT

# 2. 直连规则 (优先于代理)
– GEOIP,CN,DIRECT # 中国大陆IP直连
– IP-CIDR,127.0.0.1/8,DIRECT # 本地环回地址直连
– IP-CIDR,192.168.0.0/16,DIRECT # 局域网直连
– DOMAIN-SUFFIX,cn,DIRECT # 所有.cn域名直连

# 3. 代理规则
– DOMAIN-SUFFIX,google.com,🚀 节点选择
– DOMAIN-SUFFIX,youtube.com,🚀 节点选择
– DOMAIN-SUFFIX,twitter.com,🚀 节点选择
– DOMAIN-KEYWORD,telegram,🚀 节点选择
– PROCESS-NAME,clash.exe,DIRECT # Clash自身流量直连 (Premium)

# 4. 兜底规则 (最后)
– MATCH,🚀 节点选择 # 所有未匹配的流量都走“节点选择”策略组
“`

四、配置文件结构概览

一个典型的 Clash 配置文件(YAML 格式)大致结构如下:

“`yaml
port: 7890
socks-port: 7891
allow-lan: false
mode: rule # rule / global / direct
log-level: info
external-controller: 127.0.0.1:9090

proxies:
# 在这里定义你的所有代理节点
– name: 香港节点 A
type: ss
server: example.com
port: 443
cipher: aes-256-gcm
password: “password”
# … 其他代理节点

proxy-groups:
# 在这里定义你的所有策略组
– name: 🚀 节点选择
type: select
proxies:
– ♻️ 自动选择
– 香港节点 A
– DIRECT
– name: ♻️ 自动选择
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
– 香港节点 A
– 台湾节点 B

rules:
# 在这里定义你的所有规则
– GEOIP,CN,DIRECT
– DOMAIN-SUFFIX,google.com,🚀 节点选择
– MATCH,🚀 节点选择
“`

五、高级技巧与注意事项

  1. 规则集 (Rule Provider):对于复杂的分流需求,将规则集中管理并从外部 URL 导入是更好的选择。Clash Premium 支持 rule-providers,这大大简化了规则的维护。
  2. 订阅转换:许多机场(代理服务提供商)提供的订阅链接可能不直接兼容 Clash,或其生成的配置不尽如人意。使用在线订阅转换工具(如 SubConverter 等)可以自定义生成的 Clash 配置,包括预设策略组和规则。
  3. 日志调试:当分流不符合预期时,检查 Clash 的日志。日志会显示流量命中了哪条规则,走了哪个代理,这对于调试非常有用。
  4. DIRECTREJECT 的优先级:务必将 DIRECTREJECT 相关的规则放在代理规则之前,以确保它们能及时生效。
  5. 避免循环引用:在策略组嵌套时,确保不要创建循环引用,否则会导致配置错误。

总结

Clash 的策略组与规则系统为用户提供了无与伦比的流量控制能力。通过理解不同策略组的特性、掌握规则的编写顺序和类型,并结合实际需求进行灵活配置,你可以构建出高效、稳定且智能的网络分流方案。希望本文能助你成为 Clash 分流的真正高手!

滚动至顶部