宴清 YANQING

分流规则:哪些走代理,哪些直连

讲清规则、全局、直连三种模式的区别,读懂订阅自带的规则表,在 Clash Verge Rev 里加不会被订阅更新冲掉的自定义规则,以及规则不生效时从哪查起。

进阶 发布 2026.10.01 校准于 2026.10.02 6 分钟读完

本文适用于 Windows / macOS / Linux 上的 Clash Verge Rev,以及 FlClash、Clash Meta for Android 等使用 mihomo 内核的客户端。iOS 上的 Shadowrocket 思路相同,写法略有差别。

前提:你已经有一个机场的订阅链接,导入客户端后能正常连上。还没到这一步,先看第一次值机和 Clash Verge Rev 值机指南。

注意

Clash for Windows 已停止维护,不建议继续使用。本文以仍在维护的 Clash Verge Rev 为例,界面名称按 v2.5.6 核对。

分流规则在做什么

分流规则是一张从上往下读的清单。每条连接发出时,内核拿它的域名、IP、发起程序等信息逐条比对,命中第一条就按那一条处理,后面的不再看。

每条规则一般分三段,用英文逗号隔开:类型、内容、去向;兜底的 MATCH 没有内容,只有两段。常见的去向有三种:某个代理组(走节点)、DIRECT(不走代理)、REJECT(拒绝连接)。

rules:
  - DOMAIN-SUFFIX,chatgpt.com,节点选择
  - DOMAIN-SUFFIX,openai.com,节点选择
  - DOMAIN-SUFFIX,oaistatic.com,节点选择
  - DOMAIN-SUFFIX,oaiusercontent.com,节点选择
  - DOMAIN-SUFFIX,claude.ai,节点选择
  - DOMAIN-SUFFIX,anthropic.com,节点选择
  - GEOSITE,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,节点选择

这几行的意思:前六行把 ChatGPT 和 Claude 用到的域名及其所有子域名送进同一个代理组;国内常见网站的域名列表直连;解析后 IP 在中国大陆的直连;前面都没命中的,全部走代理。代理组名称各家订阅不同,以你订阅里的为准。

AI 服务的域名要写全。ChatGPT 网页的主域名是 chatgpt.com,openai.com 主要是官网和接口,页面资源和上传的文件分别在 oaistatic.com、oaiusercontent.com;Claude 用 claude.ai 和 anthropic.com。只写 openai.com,其余域名会落到别的规则,同一个服务的流量可能从不同出口出去。

第一步:确认客户端处在规则模式

mihomo 有三种模式,只有规则模式下规则表才生效。

模式行为什么时候用
规则(rule)按规则表逐条匹配日常默认
全局(global)全部走 GLOBAL 组里选中的节点临时排查某个网站是不是被规则漏掉
直连(direct)全部不走代理判断问题出在机场还是本地网络

Clash Verge Rev 在「代理」页顶部选「规则」。Shadowrocket 对应首页「全局路由」里的「配置」,日常保持这一项。

第二步:读懂订阅自带的规则

Clash 格式的机场订阅通常自带一套代理组和规则,不改也能用。在 Clash Verge Rev 的「订阅」页右键订阅,选「编辑文件」,rules: 段就是这张清单。这里只看不改,原因见第三步。

类型匹配什么例子
DOMAIN完整域名DOMAIN,www.example.com
DOMAIN-SUFFIX域名及其所有子域名DOMAIN-SUFFIX,google.com 匹配 mail.google.com,不匹配 content-google.com
DOMAIN-KEYWORD域名里含某个词DOMAIN-KEYWORD,google
GEOSITE一组按服务或类别归类的域名GEOSITE,youtube
IP-CIDR一段 IP 地址IP-CIDR,192.168.0.0/16
GEOIPIP 所属国家或地区GEOIP,CN
PROCESS-NAME发起连接的程序名,Windows 上带 .exe,Android 上填包名PROCESS-NAME,curl
RULE-SET引用外部规则集,需配 rule-providersRULE-SET,名称
MATCH兜底,匹配所有连接MATCH

表中例子都省略了末尾的去向,实际要写成 MATCH,节点选择 这样。

两条排序原则:具体的写前面,宽泛的写后面;MATCH 永远在最后,它后面的规则不会被执行。

IP 类规则(IP-CIDR、GEOIP)遇到域名请求时,会先做一次 DNS 解析再比对。规则末尾加 no-resolve,遇到域名请求就不解析,直接跳过这条规则。

第三步:加不会被冲掉的自定义规则

直接改订阅里的配置文件,下次更新订阅就被覆盖。Clash Verge Rev 提供了单独入口:在「订阅」页右键订阅,选「编辑规则」。

依次选「规则类型」、填「规则内容」、选「代理策略」,点「添加前置规则」或「添加后置规则」,最后保存。官方文档说明这里加的规则不会随订阅更新失效,并建议放前置,确保先于订阅规则生效。

后置规则排在订阅规则之后。订阅的最后一条通常是 MATCH,排在它后面的规则不会被执行,所以自定义规则一律加前置。

需求规则去向
公司内网域名直连DOMAIN-SUFFIX,corp.example.comDIRECT
局域网设备(NAS、路由器后台)IP-CIDR,192.168.0.0/16,no-resolveDIRECT
某个国内网站被误代理DOMAIN-SUFFIX,该网站域名DIRECT
ChatGPT 固定走一个节点GEOSITE,openai(含 chatgpt.com、openai.com)手动选择的代理组
Claude 固定走一个节点DOMAIN-SUFFIX,claude.ai、DOMAIN-SUFFIX,anthropic.com 两条手动选择的代理组,两条选同一个
下载工具不走代理PROCESS-NAME,程序名DIRECT

表里的规则按「类型,内容」写,填进编辑器时分开选、分开填。带 no-resolve 的,打开编辑器里的「跳过 DNS 解析」开关。example.com 是占位,换成你自己的域名。

提示

想让 ChatGPT、Netflix 固定从一个出口出去,把对应域名指向一个手动选择的代理组,在组里选定测通的节点,不要指向自动选择组。自动组按延迟换节点,出口 IP 跟着变,可能触发 IP 风控。

「代理策略」只能选代理组和 DIRECT、REJECT 等内置策略,不能直接选单个节点。订阅里没有合适的组,可以在同一个右键菜单的「编辑代理组」里新建。用途细节见用 ChatGPT 与 Claude和看 Netflix 与流媒体。

规则多、想在几个订阅间共用时,可以用扩展配置(右键菜单里叫「扩展覆写配置」,写 YAML)或扩展脚本(写 JavaScript),分全局和单个订阅两级。官方给的执行顺序是:全局扩展配置、全局扩展脚本、订阅扩展配置、订阅扩展脚本,后面的步骤可以改写前面的结果。

注意

在扩展配置里写 rules:,会把订阅原有的规则整段替换掉,不是追加。只想加几条,用「编辑规则」。

FlClash 和 Clash Meta for Android 用的是同一套 mihomo 规则语法,入口不同。FlClash 在订阅的「覆写」设置里可以逐条加规则。Clash Meta for Android 官方版的覆写设置里没有规则一项,要改规则只能自己写一份完整的配置文件导入。

Shadowrocket 的规则写在本地配置文件里(默认 default.conf)。在底部「配置」页进入当前配置文件的编辑页,在「规则」里添加。它的兜底规则叫 FINAL,作用和 MATCH 相同,新加的规则要排在它前面。

第四步:确认规则命中

改完规则,先在「连接」页关掉旧连接,或重启浏览器:已经建立的连接不会按新规则重新匹配。再访问目标网站,在「连接」页找到对应域名,看「规则」列命中哪一条,「链路」列走的是哪个代理组和节点,还是 DIRECT。

查出口地区时注意,IP 查询网站走的是它自己命中的规则,不一定和目标网站同一个出口。ChatGPT 可以直接看 chatgpt.com/cdn-cgi/trace 的 loc=。流媒体、AI 服务能否正常使用,按自己验证解锁与 IP 归属的步骤逐项核对。

排查

加了规则不生效

按顺序查:客户端是否处在规则模式;规则是不是加成了后置,排到了 MATCH 后面;前面是否有更宽泛的规则先命中(例如 DOMAIN-KEYWORD 或 GEOIP,CN);浏览器是否还在用改规则前建立的旧连接。

再看程序本身是否走了系统代理。部分程序不读系统代理,需要开 TUN 模式,规则才管得到它。

国内网站变慢,或被识别成海外访问

多半是没命中任何直连规则,被 MATCH 兜底送进了代理。在「连接」页找到它的域名,加一条去向为 DIRECT 的前置规则。

订阅更新后,自己加的规则没了

说明规则是直接写进订阅配置文件的。改用「编辑规则」入口重新添加。

分流会不会带来 DNS 泄漏

有可能。IP 类规则不加 no-resolve 时,内核会先在本地为域名做一次解析,这次查询发给哪台 DNS 服务器,取决于客户端的 DNS 设置。原理和检查方法见 DNS 泄漏。

更多客户端问题见候机问答。