机场坊 - 机场推荐机场坊机场测评手记 · 2026-10-26 更新

机场教程

Clash 分流规则教程:规则模式、策略组与自定义规则

本文要点
  • 规则决定连接交给谁,策略组决定用哪个节点,二者配合实现分流
  • 规则从上往下匹配、命中即停,自定义规则要放在最前面
  • 用 Clash Verge Rev 的覆写功能保存改动,订阅更新也不会丢

一句话结论:Clash 分流靠两样东西配合工作,规则决定“这条连接交给谁”,策略组决定“交给谁之后用哪个节点”;规则从上往下匹配,命中即停,所以顺序比数量更重要。想改规则又不想被订阅更新覆盖,就用客户端的覆写或扩展配置功能,而不是直接修改订阅文件。

本文以 Clash Verge Rev(mihomo 内核)为例,FlClash、Clash Meta for Android 等同内核客户端的概念完全相同。还没导入订阅的读者,请先看 Clash 教程。

1. 三种运行模式

模式行为适用场景
规则模式按规则列表逐条匹配,决定直连或走代理日常使用,推荐常开
全局模式所有流量走当前选中的节点临时排查某网站是否被规则误判
直连模式所有流量不走代理临时关闭代理但保留客户端运行

本文讲的规则和策略组,只在规则模式下生效。

2. Clash 分流规则的常见类型

每条规则由三部分组成:类型、匹配内容、目标策略,例如 DOMAIN-SUFFIX,google.com,节点选择。常用类型如下:

类型匹配方式示例
DOMAIN完整域名精确匹配DOMAIN,www.example.com,DIRECT
DOMAIN-SUFFIX域名及其所有子域名DOMAIN-SUFFIX,example.com,节点选择
DOMAIN-KEYWORD域名中包含某个关键词DOMAIN-KEYWORD,example,节点选择
GEOSITE按预置的域名分类库匹配GEOSITE,cn,DIRECT
GEOIP按目标 IP 所属国家或地区匹配GEOIP,CN,DIRECT
IP-CIDR按 IP 段匹配IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
PROCESS-NAME按发起连接的程序名匹配PROCESS-NAME,example.exe,DIRECT
MATCH兜底,以上都没命中时使用MATCH,漏网之鱼

DOMAIN-KEYWORD 范围很宽,容易误伤,能用后缀就别用关键词。PROCESS-NAME 只在电脑端和 TUN 模式下比较可靠,手机端很多场景拿不到进程名。IP 类规则后面加 no-resolve,可以避免为了匹配而提前做一次 DNS 解析。

3. Clash 规则顺序:从上到下,命中即停

Clash 拿到一条连接后,会从规则列表第一行开始往下比对,一旦命中就停止,后面的规则不再看。因此有三条经验:

  • 越具体的规则越要放前面。想让某个子域名直连而主域名走代理,DOMAIN 规则必须写在 DOMAIN-SUFFIX 之前。
  • 自定义规则要插在订阅自带规则的前面,否则可能早被一条宽泛规则抢先命中。
  • MATCH 必须是最后一条,它后面的规则永远不会生效。

一份结构合理的规则列表,从上到下大致是这样的顺序:

  1. 你自己的特例规则,例如某个工作网站强制直连、某个服务固定地区。
  2. 局域网与保留地址直连,保证访问路由器后台、打印机、内网服务不受影响。
  3. 广告与追踪域名拒绝(可选),由规则集提供。
  4. 常见海外服务分类走对应策略组,例如流媒体、AI、即时通讯。
  5. 国内域名直连,再加一条国内 IP 直连作为补充。
  6. 最后一条 MATCH,把剩下的连接交给“漏网之鱼”,你可以自己决定它走代理还是直连。

域名规则通常放在 IP 规则之前:匹配域名不需要解析,速度更快,也更不容易出现 DNS 泄露。

4. Clash 策略组的四种类型

规则的目标可以是 DIRECT(直连)、REJECT(拒绝),也可以是一个策略组。机场订阅里常见的“节点选择”“自动选择”“香港节点”等,都是策略组:

类型工作方式适合用途
select手动选择组内的节点主出口,自己决定用哪个
url-test定时测速,自动选延迟最低的节点懒人自动切换
fallback按顺序使用,前一个不可用才换下一个需要稳定出口的服务
load-balance把连接分散到多个节点下载类,不适合需要固定 IP 的网站

策略组之间可以嵌套,例如“节点选择”组里包含“自动选择”“香港节点”和单个节点。url-test 的选择依据只是延迟,延迟低不等于带宽大,原因见 延迟、丢包与带宽。

5. 规则集 rule-providers

一条条手写规则既累又难维护,所以 mihomo 支持规则集:把一类域名或 IP 放在一个远程文件里,配置中只引用集合名,客户端会按设定间隔自动更新。引用写法类似 RULE-SET,ai-list,AI 服务。规则集分为域名型、IP 型和经典型几种行为,声明时要与文件内容一致,否则会解析失败。

现在新内核也越来越多地使用 GEOSITE 和二进制规则集,加载更快、占用更少内存。如果你的订阅已经自带完善的规则集,一般无需再加。需要注意,规则集文件来自第三方仓库,只引用长期维护、来源清楚的项目,不要随手复制来历不明的地址;手机端则可在 Shadowrocket 等客户端里用类似的规则集功能。

6. 用覆写保存自定义规则

直接编辑订阅生成的配置文件,下次自动更新时改动就会被覆盖。Clash Verge Rev 提供了覆写类功能(常见名称为扩展配置或扩展脚本,入口在订阅卡片的右键菜单或全局设置中),它在每次加载订阅后再把你的改动合并进去,订阅怎么更新都不会丢。

以“让 AI 类服务固定走美国节点”为例,思路分三步:

  1. 新建一个 select 类型的策略组,比如叫“AI 服务”,组内只放美国或其他目标地区的节点,可用节点名称过滤一次性筛出。
  2. 在规则列表最前面插入对应规则,例如 DOMAIN-SUFFIX,openai.com,AI 服务、DOMAIN-SUFFIX,anthropic.com,AI 服务、DOMAIN-SUFFIX,claude.ai,AI 服务。
  3. 保存后刷新配置,在代理页面的“AI 服务”组里选一个节点。

在扩展配置里,常见写法是用 prepend-rules 往规则前面插入、用 prepend-proxy-groups 或 append-proxy-groups 增加策略组。具体字段以你所用版本的说明为准,写完后先检查配置能否正常加载。如果机场提供的订阅格式不方便改,也可以借助 订阅转换 生成带自定义规则的配置。

7. 怎么确认规则已经生效

  • 打开客户端的“连接”页面,访问目标网站,找到对应连接,查看“规则”和“链路”两栏:应显示命中了你写的规则,出口是你指定的策略组和节点。
  • 如果显示命中的是 MATCH 或其他规则,说明你的规则顺序靠后或写法不对。
  • 在“日志”页面把级别调到信息,也能看到每条连接的匹配结果。

更多排查思路见 机场常见错误排查;规则写好了,也别忘了在 macOS 或 Windows 客户端里保持规则模式开启。

Clash 分流规则教程常见问题

Clash 分流规则怎么写?

每条规则由类型、匹配内容和目标策略三部分组成,用逗号分隔,例如 DOMAIN-SUFFIX,google.com,节点选择。常用类型有 DOMAIN、DOMAIN-SUFFIX、GEOSITE、GEOIP、IP-CIDR,最后用 MATCH 兜底。

Clash 规则写了但不生效?

先确认客户端处于规则模式,全局和直连模式都不读规则;再检查规则是否放在订阅自带规则之前,是否已刷新配置。最后到连接页看这条连接实际命中了哪条规则。

Clash 订阅更新后自定义规则丢失怎么办?

说明你直接修改了订阅生成的配置文件,每次更新都会被覆盖。改用 Clash Verge Rev 的扩展配置或扩展脚本,用 prepend-rules 插入规则,订阅怎么更新都不会丢。

Clash 改完规则后配置加载失败?

多半是 YAML 缩进或逗号写错,或者规则引用了一个不存在的策略组名称。对照报错信息逐行检查,规则里的策略组名称要与 proxy-groups 中定义的完全一致。

Clash 规则模式下国内网站也走了代理?

检查是否误开了全局模式,或者某条 DOMAIN-KEYWORD 规则匹配范围过宽抢先命中。到连接页找到对应连接,看命中的规则,再调整顺序或改用 DOMAIN-SUFFIX。

Clash 规则集一直下载失败?

规则集地址多托管在海外,直连可能无法访问。可以为它指定通过代理下载,或者先连上节点再刷新;同时确认规则集声明的行为类型与文件内容一致。

#分流规则#Clash