Clash分流规则详解:让国内外流量各走各的

2026-07-26 阅读约 12 分钟

分流规则是Clash最核心的功能之一。所谓分流,就是让不同的流量走不同的通道:国内网站直接连接,国外网站走代理,广告域名直接屏蔽。合理的分流配置不仅影响上网速度,还关系到稳定性和安全性。本文将全面讲解Clash分流规则的配置方法,从基础原理到实战场景,帮你打造最优的分流方案。

什么是分流(Split Routing)

分流(Split Routing)是指根据预定义的规则,将不同类型的网络流量引导到不同的出口通道。在Clash的语境下,分流通常意味着:

分流的核心逻辑

Clash的分流本质上是一个决策过程:每条网络请求到达Clash后,Clash会按照配置文件中的规则列表,从上到下逐条匹配。第一条命中的规则决定这条流量的最终去向。如果没有命中任何规则,则由最后的MATCH兜底规则决定。

为什么需要分流

1. 速度优化

国内网站如果绕道国外代理服务器,延迟会显著增加。一个本来10ms的国内请求,经过代理可能变成300ms以上。分流让国内流量直连,保持毫秒级响应。

2. 稳定性保障

代理服务器的连接质量不稳定,可能出现断连、丢包等情况。如果国内流量也走代理,任何代理故障都会导致国内网站也无法访问。分流可以隔离风险:代理故障时,国内网站仍然可以正常访问。

3. 合规性考虑

部分国内服务对来自境外IP的访问有限制或风控措施。使用国内IP直连可以避免触发这些风控,保证账号安全。

4. 带宽节省

代理服务器的带宽通常有限。如果所有流量都走代理,包括国内视频、下载等大流量操作,会迅速耗尽代理带宽。分流让大流量的国内操作走直连,节省代理带宽。

不分流的后果

如果你使用全局代理模式,所有流量(包括国内网站)都走代理。这会导致:国内网站变慢、代理带宽被大量占用、代理故障时全部断网。分流就是解决这些问题的核心方案。

Clash规则匹配原理

理解规则匹配原理是正确配置分流的基础。Clash的规则引擎工作方式如下:

匹配流程

从上到下逐条匹配

Clash读取配置文件中的rules列表,从第一条开始,逐条与当前请求进行匹配。一旦某条规则匹配成功,立即停止匹配,将该流量导向规则指定的策略组。后续的规则不再检查。

这意味着规则的顺序至关重要。越精确的规则应该放在越前面,越宽泛的规则放在越后面。

匹配示例

rules:
  # 规则1:bilibili.com精确匹配 -> 直连
  - DOMAIN,bilibili.com,DIRECT
  
  # 规则2:google.com后缀匹配 -> 代理
  - DOMAIN-SUFFIX,google.com,Proxy
  
  # 规则3:所有国内IP -> 直连
  - GEOIP,CN,DIRECT
  
  # 规则4:兜底 -> 代理
  - MATCH,Proxy

当访问bilibili.com时:

  1. 首先检查规则1:DOMAIN,bilibili.com → 精确匹配成功 → 走DIRECT(直连)
  2. 不再检查后续规则

当访问google.com时:

  1. 检查规则1:不匹配(不是bilibili.com)
  2. 检查规则2:DOMAIN-SUFFIX,google.com → google.com及其所有子域名匹配 → 走Proxy
顺序错误示例

如果把MATCH,Proxy放在规则列表最前面,所有流量都会走代理,后面的规则永远不会被匹配到。这是最常见的配置错误之一。务必记住:MATCH规则必须放在最后

常见规则类型详解

Clash支持多种规则类型,每种类型适用于不同的匹配场景:

DOMAIN:精确域名匹配

只匹配完全相同的域名,不匹配子域名。

# 只匹配 www.google.com,不匹配 mail.google.com
- DOMAIN,www.google.com,Proxy

DOMAIN-SUFFIX:域名后缀匹配

匹配域名及其所有子域名。这是最常用的域名匹配方式。

# 匹配 google.com、www.google.com、mail.google.com、a.b.google.com...
- DOMAIN-SUFFIX,google.com,Proxy

DOMAIN-KEYWORD:域名关键词匹配

匹配域名中包含特定关键词的所有请求。

# 匹配任何包含 "google" 的域名
- DOMAIN-KEYWORD,google,Proxy

IP-CIDR / IP-CIDR6:IP段匹配

匹配目标IP地址是否落在指定的CIDR范围内。常用于局域网、特定IP段分流。

# 匹配192.168.0.0/16范围的所有IP(局域网)
- IP-CIDR,192.168.0.0/16,DIRECT

# 匹配10.0.0.0/8范围的所有IP
- IP-CIDR,10.0.0.0/8,DIRECT

# IPv6示例
- IP-CIDR6,fd00::/8,DIRECT

GEOIP:地理位置匹配

根据IP地址的地理位置数据库判断目标IP所属国家/地区。最常用的场景是区分国内和国外IP。

# 中国大陆IP走直连
- GEOIP,CN,DIRECT

# 美国IP走代理
- GEOIP,US,Proxy
GEOIP注意事项

GEOIP依赖MaxMind等地理位置数据库。数据库不是100%准确的,偶尔会出现误判。如果对准确性要求很高,建议结合DOMAIN规则使用,形成双重保障。

MATCH:兜底规则

匹配所有未被前面规则匹配到的流量。必须放在规则列表的最后一条。

# 所有其他流量走代理
- MATCH,Proxy

# 或者:所有其他流量直连
- MATCH,DIRECT

DST-PORT / SRC-PORT:端口匹配

# 目标端口为80和443的流量走代理
- DST-PORT,80,Proxy
- DST-PORT,443,Proxy

# 源端口为53(DNS)的流量直连
- SRC-PORT,53,DIRECT

PROCESS-NAME / PROCESS-PATH(Meta专属)

# Chrome浏览器走代理
- PROCESS-NAME,chrome.exe,Proxy

# 微信直连
- PROCESS-NAME,WeChat.exe,DIRECT

# 按路径匹配(Linux/macOS)
- PROCESS-PATH,/usr/bin/wget,DIRECT

实战配置:国内直连+国外代理经典规则集

以下是一套经过验证的经典分流规则配置,适用于大多数国内用户:

# 策略组定义
proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - Auto
      - HK节点
      - JP节点
      - US节点

  - name: Auto
    type: url-test
    proxies:
      - HK节点
      - JP节点
      - US节点
    url: https://www.gstatic.com/generate_204
    interval: 300

# 规则定义
rules:
  # === 第一层:精确域名规则(最高优先级)===
  
  # 广告域名屏蔽
  - DOMAIN-SUFFIX,ad.com,REJECT
  - DOMAIN-KEYWORD,admarvel,REJECT
  - DOMAIN-KEYWORD,admaster,REJECT
  - DOMAIN-KEYWORD,adsage,REJECT
  - DOMAIN-KEYWORD,adsmogo,REJECT
  - DOMAIN-KEYWORD,adsrvmedia,REJECT
  - DOMAIN-KEYWORD,adwords,REJECT
  - DOMAIN-KEYWORD,analytics,REJECT
  
  # 国内常用站点直连
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,tmall.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT
  - DOMAIN-SUFFIX,alipay.com,DIRECT
  - DOMAIN-SUFFIX,163.com,DIRECT
  - DOMAIN-SUFFIX,126.net,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - DOMAIN-SUFFIX,bilivideo.com,DIRECT
  - DOMAIN-SUFFIX,zhihu.com,DIRECT
  - DOMAIN-SUFFIX,douyin.com,DIRECT
  - DOMAIN-SUFFIX,bytedance.com,DIRECT
  - DOMAIN-SUFFIX,weibo.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,wechat.com,DIRECT
  - DOMAIN-SUFFIX,microsoft.com,DIRECT
  
  # === 第二层:需要代理的域名 ===
  
  # Google全家桶
  - DOMAIN-SUFFIX,google.com,Proxy
  - DOMAIN-SUFFIX,googleapis.com,Proxy
  - DOMAIN-SUFFIX,googlevideo.com,Proxy
  - DOMAIN-SUFFIX,gstatic.com,Proxy
  - DOMAIN-SUFFIX,ggpht.com,Proxy
  
  # 社交媒体
  - DOMAIN-SUFFIX,twitter.com,Proxy
  - DOMAIN-SUFFIX,x.com,Proxy
  - DOMAIN-SUFFIX,facebook.com,Proxy
  - DOMAIN-SUFFIX,instagram.com,Proxy
  - DOMAIN-SUFFIX,telegram.org,Proxy
  - DOMAIN-SUFFIX,t.me,Proxy
  
  # 开发工具
  - DOMAIN-SUFFIX,github.com,Proxy
  - DOMAIN-SUFFIX,githubusercontent.com,Proxy
  - DOMAIN-SUFFIX,stackoverflow.com,Proxy
  - DOMAIN-SUFFIX,npmjs.org,Proxy
  - DOMAIN-SUFFIX,pypi.org,Proxy
  
  # 流媒体
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - DOMAIN-SUFFIX,ytimg.com,Proxy
  - DOMAIN-SUFFIX,netflix.com,Proxy
  - DOMAIN-SUFFIX,nflxvideo.net,Proxy
  - DOMAIN-SUFFIX,spotify.com,Proxy
  - DOMAIN-SUFFIX,twitch.tv,Proxy
  
  # AI服务
  - DOMAIN-SUFFIX,openai.com,Proxy
  - DOMAIN-SUFFIX,chatgpt.com,Proxy
  - DOMAIN-SUFFIX,anthropic.com,Proxy
  - DOMAIN-SUFFIX,claude.ai,Proxy
  
  # === 第三层:局域网和私有地址直连 ===
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,224.0.0.0/4,DIRECT
  
  # === 第四层:基于地理位置的IP分流 ===
  - GEOIP,CN,DIRECT
  
  # === 第五层:兜底规则 ===
  - MATCH,Proxy
规则顺序原则

记住这个优先级顺序:广告屏蔽 > 精确域名 > 常见域名后缀 > 局域网 > 地理IP > 兜底规则。越精确的规则越靠前,越宽泛的规则越靠后。

规则集(Rule Provider)使用方法

手动维护数百条规则是一件非常痛苦的事情。Rule Provider(规则集)让你可以引用社区维护的规则文件,自动保持更新。

什么是Rule Provider

Rule Provider是Clash(特别是Meta)提供的一种机制,允许你将规则定义在外部文件中,通过URL或本地文件路径引用。这样你的主配置文件只需要引用规则集,而不需要包含具体的规则条目。

配置示例

# 定义规则集提供者
rule-providers:
  # 广告屏蔽规则集
  reject:
    type: http              # 从HTTP下载
    behavior: domain        # 行为类型:domain/ipclassical
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/reject.yaml"
    path: ./ruleset/reject.yaml
    interval: 86400         # 更新间隔(秒),每天一次

  # 需要代理的域名规则集
  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/proxy.yaml"
    path: ./ruleset/proxy.yaml
    interval: 86400

  # 国内直连域名规则集
  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/direct.yaml"
    path: ./ruleset/direct.yaml
    interval: 86400

  # 国内IP段规则集
  cn-ip:
    type: http
    behavior: ip
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/cn.yaml"
    path: ./ruleset/cn.yaml
    interval: 86400

  # 局域网规则集
  lancidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/lancidr.yaml"
    path: ./ruleset/lancidr.yaml
    interval: 86400

# 在规则中引用规则集
rules:
  # 先应用广告屏蔽规则集
  - RULE-SET,reject,REJECT
  # 再应用需要代理的域名规则集
  - RULE-SET,proxy,Proxy
  # 局域网IP直连
  - RULE-SET,lancidr,DIRECT
  # 国内域名直连
  - RULE-SET,direct,DIRECT
  # 国内IP直连
  - RULE-SET,cn-ip,DIRECT
  # 兜底走代理
  - MATCH,Proxy

behavior类型说明

三种行为类型
  • domain:域名规则集,包含DOMAIN和DOMAIN-SUFFIX规则
  • ipcidr:IP CIDR规则集,包含IP-CIDR和IP-CIDR6规则
  • classical:经典规则集,包含所有类型的规则(DOMAIN、IP-CIDR、DST-PORT等)
Rule Provider最佳实践

使用type: http时,Clash会按照interval设定的间隔自动从URL下载最新规则集。建议设置为86400(24小时)更新一次。规则集会缓存在path指定的本地路径,即使网络暂时不可用也能使用缓存的规则。

常见分流场景配置

场景1:流媒体分流

不同流媒体服务可能需要不同地区的节点才能解锁内容。

proxy-groups:
  - name: Netflix
    type: select
    proxies:
      - US节点
      - JP节点
      - HK节点
      - Proxy
    filter: "US|United States"   # 只选择美国节点

  - name: Disney+
    type: select
    proxies:
      - US节点
      - JP节点
      - Proxy

  - name: Spotify
    type: select
    proxies:
      - US节点
      - Proxy

rules:
  # Netflix分流到专用策略组
  - DOMAIN-SUFFIX,netflix.com,Netflix
  - DOMAIN-SUFFIX,nflxvideo.net,Netflix
  - DOMAIN-SUFFIX,nflximg.net,Netflix
  - DOMAIN-SUFFIX,nflxso.net,Netflix
  - DOMAIN-SUFFIX,nflxext.com,Netflix
  
  # Disney+分流
  - DOMAIN-SUFFIX,disneyplus.com,Disney+
  - DOMAIN-SUFFIX,bamgrid.com,Disney+
  - DOMAIN-SUFFIX,disney-plus.net,Disney+
  
  # Spotify分流
  - DOMAIN-SUFFIX,spotify.com,Spotify
  - DOMAIN-SUFFIX,scdn.co,Spotify
  
  # 其他流媒体走默认代理
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - DOMAIN-SUFFIX,twitch.tv,Proxy
  - DOMAIN-SUFFIX,hbomax.com,Proxy

场景2:游戏分流

游戏对延迟要求极高,通常需要选择物理距离最近的节点。

proxy-groups:
  - name: GameProxy
    type: url-test
    proxies:
      - HK节点
      - JP节点
      - KR节点
    tolerance: 50
    url: https://www.gstatic.com/generate_204
    interval: 60

rules:
  # Steam下载和商店
  - DOMAIN-SUFFIX,steampowered.com,GameProxy
  - DOMAIN-SUFFIX,steamstatic.com,GameProxy
  - DOMAIN-SUFFIX,steamcontent.com,DIRECT  # 下载走CDN直连
  
  # Epic Games
  - DOMAIN-SUFFIX,epicgames.com,GameProxy
  
  # Riot Games(英雄联盟等)
  - DOMAIN-SUFFIX,riotgames.com,GameProxy
  
  # 暴雪
  - DOMAIN-SUFFIX,blizzard.com,GameProxy
  - DOMAIN-SUFFIX,battle.net,GameProxy
  
  # 任天堂
  - DOMAIN-SUFFIX,nintendo.com,GameProxy
  - DOMAIN-SUFFIX,nintendo.net,GameProxy

场景3:工作分流

将工作相关服务(邮箱、协作工具等)单独分流,确保不受代理波动影响。

proxy-groups:
  - name: WorkTools
    type: select
    proxies:
      - DIRECT
      - Proxy
      - JP节点

rules:
  # 企业邮箱和协作工具走直连(国内服务)
  - DOMAIN-SUFFIX,dingtalk.com,DIRECT
  - DOMAIN-SUFFIX,feishu.cn,DIRECT
  - DOMAIN-SUFFIX,work.weixin.qq.com,DIRECT
  - DOMAIN-SUFFIX,yuque.com,DIRECT
  
  # 国外工作工具走代理
  - DOMAIN-SUFFIX,slack.com,WorkTools
  - DOMAIN-SUFFIX,notion.so,WorkTools
  - DOMAIN-SUFFIX,notion.site,WorkTools
  - DOMAIN-SUFFIX,google.com,WorkTools
  - DOMAIN-SUFFIX,googleapis.com,WorkTools
  - DOMAIN-SUFFIX,drive.google.com,WorkTools
  - DOMAIN-SUFFIX,zoom.us,WorkTools

场景4:按进程分流(Meta专属)

Meta内核支持按进程名分流,可以精确控制哪些应用程序走代理:

rules:
  # 浏览器走代理(访问国外网站)
  - PROCESS-NAME,chrome.exe,Proxy
  - PROCESS-NAME,firefox.exe,Proxy
  - PROCESS-NAME,msedge.exe,Proxy
  
  # 聊天应用直连
  - PROCESS-NAME,WeChat.exe,DIRECT
  - PROCESS-NAME,DingTalk.exe,DIRECT
  
  # 下载工具走代理
  - PROCESS-NAME,qbittorrent.exe,Proxy

规则调试技巧

配置分流规则后,如何验证规则是否按预期工作?以下是实用的调试方法:

1. 查看日志

Clash的日志功能是调试分流规则最重要的工具。开启debug级别日志可以看到每条流量的规则匹配过程:

# 在配置文件中设置日志级别
log-level: debug

日志输出示例:

DEBU [Rule] match google.com DOMAIN-SUFFIX google.com -> Proxy
DEBU [Rule] match bilibili.com DOMAIN-SUFFIX bilibili.com -> DIRECT
DEBU [DNS] resolve www.google.com -> 142.250.80.4
DEBU [Rule] match 142.250.80.4 GEOIP US -> Proxy

每条日志显示:

2. 使用API查询匹配结果

Clash的RESTful API提供了实时查询功能:

# 查询当前所有连接和匹配规则
curl -s http://127.0.0.1:9090/connections | jq '.connections[] | {host: .metadata.host, rule: .rule, chains: .chains}'

3. 使用测速网站验证

访问以下网站验证分流是否正常工作:

4. 常见问题排查

常见调试问题
  • 国内网站走了代理:检查规则顺序,确保国内域名规则在GEOIP和MATCH之前
  • 国外网站直连了:检查代理域名是否被正确包含,或GEOIP数据库是否将目标IP误判为CN
  • 规则集没有生效:检查rule-providers的url是否可访问,path路径是否正确
  • 某些应用不走代理:检查应用是否使用了系统代理,可能需要TUN模式才能接管

推荐的规则集项目

以下是社区中维护良好、更新及时的规则集项目,可以直接使用:

推荐规则集项目
  • MetaCubeX/meta-rules-dat:Meta官方维护的规则集,分为lite(精简版)和完整版。质量最高,更新最及时,强烈推荐。
  • Loyalsoldier/clash-rules:经典的Clash规则集,包含广告屏蔽、代理、直连等多个分类。社区认可度高。
  • blackmatrix7/ios_rule_script:虽然名字带有iOS,但规则内容通用。分类非常细致,包括各大流媒体、社交、购物平台的独立规则。
  • ACL4SSR/ACL4SSR:专为SSR/Clash设计的ACL规则集,针对中国大陆网络环境优化。

使用MetaCubeX官方规则集的快速配置

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/reject.yaml"
    path: ./ruleset/reject.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/proxy.yaml"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/direct.yaml"
    path: ./ruleset/direct.yaml
    interval: 86400

  cn-ip:
    type: http
    behavior: ip
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/cn.yaml"
    path: ./ruleset/cn.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/lancidr.yaml"
    path: ./ruleset/lancidr.yaml
    interval: 86400

  gfw:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/gfw.yaml"
    path: ./ruleset/gfw.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/lite/telegramcidr.yaml"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

rules:
  # 广告屏蔽
  - RULE-SET,reject,REJECT
  # Telegram IP直连代理
  - RULE-SET,telegramcidr,Proxy
  # 需要代理的域名
  - RULE-SET,gfw,Proxy
  - RULE-SET,proxy,Proxy
  # 局域网直连
  - RULE-SET,lancidr,DIRECT
  # 国内域名直连
  - RULE-SET,direct,DIRECT
  # 国内IP直连
  - RULE-SET,cn-ip,DIRECT
  # 兜底代理
  - MATCH,Proxy
规则集使用建议

建议优先使用MetaCubeX官方的规则集,因为它是专门为Clash Meta优化的。如果使用原版Clash,选择Loyalsoldier或ACL4SSR的规则集兼容性更好。规则集不是越多越好,选择一套维护良好的规则集,再根据自己的需要添加自定义规则即可。