Clash 规则配置进阶:规则集、前置规则、去广告与分应用分流
机场的 Clash 订阅自带一套规则,能满足「国内直连、国外代理」的基本需求。进阶需求(某个网站强制走某个节点、去广告、公司内网直连、ChatGPT 固定走美国节点)就需要自己加规则。Clash Verge Rev 提供「订阅前置规则」和「扩展脚本」,可以在不修改机场原配置的情况下叠加规则,订阅更新也不会被覆盖。本文的三段片段可以直接复制使用。
规则语法
每条规则格式是 类型,匹配值,策略,策略可以是节点名、策略组名、DIRECT 或 REJECT。
| 类型 | 含义 | 例子 |
|---|---|---|
| DOMAIN | 完全匹配域名 | DOMAIN,chat.openai.com,美国节点 |
| DOMAIN-SUFFIX | 匹配域名后缀 | DOMAIN-SUFFIX,openai.com,美国节点 |
| DOMAIN-KEYWORD | 域名含关键字 | DOMAIN-KEYWORD,google,代理 |
| IP-CIDR | 目标 IP 段 | IP-CIDR,192.168.0.0/16,DIRECT,no-resolve |
| GEOIP | 按 IP 归属国家 | GEOIP,CN,DIRECT |
| GEOSITE | 按域名分类库 | GEOSITE,cn,DIRECT |
| PROCESS-NAME | 按进程名(桌面端) | PROCESS-NAME,Telegram.exe,代理 |
| RULE-SET | 引用规则集 | RULE-SET,reject,REJECT |
| MATCH | 兜底 | MATCH,代理 |
匹配顺序是从上到下,命中即停。 所以具体规则放前面,GEOIP 和 MATCH 放最后。no-resolve 让 IP 规则不触发 DNS 解析,避免泄漏和多余查询。
在 Clash Verge Rev 里加前置规则
订阅页右键机场订阅 → 「编辑规则」(或「订阅前置规则」)。这里写的规则会插在机场规则之前,订阅更新不丢。策略名必须和订阅里的策略组或节点名完全一致,包括空格和 emoji。不确定就打开「代理」页抄名字。Clash Meta for Android 和 Clash Mi 没有这个入口,需要用「覆写」或自建配置。
规则集来源对比
规则集是别人维护好的域名列表,省去自己逐条写。常用来源:
| 来源 | 内容 | 格式 | 更新频率 | 适合 |
|---|---|---|---|---|
| Loyalsoldier/clash-rules | 国内直连、代理、广告、Apple、iCloud 等十几个列表 | domain / ipcidr | 每日自动 | 通用,最常用 |
| blackmatrix7/ios_rule_script | 按服务分类(Netflix、OpenAI、Telegram 等几百个) | classical | 频繁 | 精细分流 |
| MetaCubeX/meta-rules-dat | GEOSITE / GEOIP 数据的 mihomo 版 | mrs / dat | 每日 | 直接用 GEOSITE 规则 |
| ACL4SSR | 整套分流配置 | classical | 较慢 | 一键整套 |
| 机场自带 | 订阅内置 | 随订阅 | 看机场 | 开箱即用 |
behavior 要和列表格式匹配:domain 对应纯域名列表,ipcidr 对应 IP 段,classical 对应完整规则。GitHub 下载规则集需要先有代理,见 GitHub 无法访问。
片段一:去广告
rule-providers:
reject:
type: http
behavior: domain
url: https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt
path: ./ruleset/reject.yaml
interval: 86400
prepend:
- DOMAIN-SUFFIX,example-analytics.com,DIRECT
- RULE-SET,reject,REJECT
逐行解释:rule-providers 段定义一个名为 reject 的规则集;type: http 表示从网络下载;behavior: domain 表示列表是纯域名;url 是列表地址;path 是本地缓存位置;interval: 86400 每 24 小时更新一次。prepend 段第一条给某个被误拦的统计域名放行,必须放在 REJECT 之前;第二条把规则集里的域名全部拒绝。副作用是部分网站功能异常(登录、统计脚本被拦),遇到就按第一条的写法加放行。
片段二:AI 服务固定节点
prepend:
- DOMAIN-SUFFIX,openai.com,🇺🇸 美国 03
- DOMAIN-SUFFIX,chatgpt.com,🇺🇸 美国 03
- DOMAIN-SUFFIX,oaistatic.com,🇺🇸 美国 03
- DOMAIN-SUFFIX,claude.ai,🇺🇸 美国 03
- DOMAIN-SUFFIX,anthropic.com,🇺🇸 美国 03
- DOMAIN-SUFFIX,gemini.google.com,🇺🇸 美国 03
逐行解释:前三条覆盖 ChatGPT 的主域名、新域名和静态资源域名,少一条就可能出现页面加载一半;第四、五条是 Claude 的网页和 API;最后一条是 Gemini。策略写的是一个具体节点名,必须和「代理」页里的名字一字不差。固定节点的目的是避免策略组自动切换导致 AI 平台频繁要求验证。节点怎么挑见 ChatGPT 用什么机场,IP 类型的影响见 原生 IP 与家宽 IP。
片段三:国内直连与内网
prepend:
- DOMAIN-SUFFIX,corp.example.com,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-KEYWORD,alipay,DIRECT
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
逐行解释:第一条公司内网域名直连;第二、三条内网 IP 段直连,no-resolve 避免对域名流量做 DNS 解析后再匹配;第四条所有含 alipay 的域名直连;第五条用 GEOSITE 域名库把中国域名直连,在 DNS 解析前就命中,比 GEOIP 更快;最后一条兜住解析后落在中国 IP 的流量。多数机场订阅已经包含后两条,重复写不会出错,只是多余。
分应用分流
- 桌面端:
PROCESS-NAME规则,如PROCESS-NAME,steam.exe,DIRECT。macOS 写进程名不带.exe。 - Android:Clash Meta 的「访问控制」直接勾选 App,不用写规则。见 Clash Meta 教程。
- iOS:系统不暴露进程名,只能按域名分流。
规则不生效排查表
| 症状 | 原因 | 处理 |
|---|---|---|
| 规则没任何效果 | 当前是全局或直连模式 | 改规则模式 |
| 某域名走错策略 | 被前面的 GEOSITE 或 KEYWORD 提前命中 | 「连接」页看命中规则,把自己的规则放更前 |
| 提示策略不存在 | 策略名拼错或 emoji 不同 | 从「代理」页复制名字 |
| IP 规则无效 | Fake-IP 模式下域名流量不走 IP 规则 | 改用域名规则 |
| 浏览器不按规则走 | 浏览器开了 DoH 绕过客户端 DNS | 关闭浏览器安全 DNS |
| 规则集下载失败 | 连不上 GitHub | 先开代理再更新,或改国内镜像地址 |
| 订阅更新后规则丢了 | 直接改了订阅文件 | 用前置规则或扩展脚本 |
| 去广告后网站登录失败 | 统计域名被 REJECT | 加 DIRECT 放行并放在 REJECT 前 |
排查入口是 Clash Verge「连接」页,每条连接都标注了命中的规则和策略。
常见问题
GEOIP,CN 和 GEOSITE,cn 有什么区别?
GEOIP 按解析出来的 IP 判断,GEOSITE 按域名列表判断。域名规则在前、IP 规则在后,两者配合。
规则太多会慢吗?
几千条域名规则对现代设备影响可忽略;软路由内存小时精简规则集,见 软路由教程。
小火箭的规则怎么写?
语法类似但配置入口不同,见 小火箭规则配置。
全局模式还需要规则吗?
全局不看规则,所有流量走当前节点。日常不要用全局。
机场订阅没有策略组只有节点?
通用订阅转来的配置没有策略组。换用机场的 Clash 订阅,或自己加 proxy-groups,见 订阅转换。
扩展脚本和前置规则选哪个?
只加几条规则用前置规则;要改策略组、DNS、批量处理用扩展脚本(JavaScript)。
规则能让流媒体解锁吗?
不能。规则只决定走哪个节点,能否解锁取决于节点 IP,见 Netflix 机场怎么选。
规则配好之后,节点质量才是上限,参考 机场推荐排行榜 和 2026-08 测速批次。