如何编写自己的Clash分流规则?拦截广告与指定出口
手把手教你编写 Clash 分流规则,实现广告拦截与指定出口。从规则语法到实战案例,打造专属极客配置。
十大机场评测组
前言:为什么需要自定义分流规则?
Clash 作为一款强大的代理客户端,其核心优势在于灵活的分流规则系统。默认规则往往无法满足个性化需求:你希望 Netflix 走香港节点、YouTube 走美国节点,同时拦截烦人的广告。编写自己的规则,才能实现真正的指哪打哪。
极客提示:高质量的分流规则能显著提升代理体验。如果你还没有稳定的节点来源,可以先到本站机场库按线路类型筛选,Clash 配置教程见入门篇。
1. 规则语法基础
Clash 规则文件通常为 .yaml 格式,规则部分位于 rules: 字段下。每条规则由三部分组成:类型、匹配值、策略。
# 示例规则
rules:
- DOMAIN-SUFFIX,google.com,Proxy # 域名后缀匹配
- DOMAIN-KEYWORD,ad,REJECT # 域名关键字匹配,REJECT 即拒绝
- IP-CIDR,192.168.1.0/24,DIRECT # IP 段匹配,DIRECT 直连
- GEOIP,CN,DIRECT # 地理 IP 匹配
- MATCH,Proxy # 兜底规则,匹配所有剩余流量
常用类型:
DOMAIN-SUFFIX:匹配域名后缀,如example.com匹配sub.example.comDOMAIN-KEYWORD:匹配域名中包含的关键字DOMAIN:精确匹配完整域名IP-CIDR:匹配 IP 段GEOIP:匹配国家/地区 IPMATCH:兜底规则
策略可以是:Proxy(走代理)、DIRECT(直连)、REJECT(拒绝,用于广告拦截)或自定义策略组名称。
2. 实战:编写广告拦截规则
广告拦截的核心是将广告域名或 IP 指向 REJECT 策略。推荐结合社区维护的广告列表,并添加自己的规则。
2.1 基础广告规则示例
rules:
# 常见广告联盟域名
- DOMAIN-SUFFIX,doubleclick.net,REJECT
- DOMAIN-SUFFIX,adsrvr.org,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-KEYWORD,analytics,REJECT
- DOMAIN-KEYWORD,tracking,REJECT
注意:Clash 规则只能匹配域名和 IP,无法匹配 URL 路径——所以 YouTube 视频内嵌广告(与正片同域名
googlevideo.com)用 Clash 规则去不掉,硬拦会连正片一起挂。这类广告交给浏览器插件(uBlock Origin 等)处理,Clash 只负责拦域名级的广告联盟与统计上报。
2.2 使用外部规则集(推荐)
Clash 支持 rule-provider 功能,可以引用远程规则文件,自动更新。
rule-providers:
adblock:
type: http
behavior: classical
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list"
path: ./ruleset/adblock.yaml
interval: 86400
然后在 rules 中引用:
rules:
- RULE-SET,adblock,REJECT
- MATCH,Proxy
3. 指定出口:多节点分流
假设你有三个节点:香港(HK)、美国(US)、日本(JP),希望不同流量走不同出口。
3.1 定义策略组
proxy-groups:
- name: Netflix
type: select
proxies:
- HK
- JP
- name: YouTube
type: select
proxies:
- US
- HK
- name: 其他
type: select
proxies:
- HK
3.2 编写分流规则
rules:
# Netflix 走 Netflix 策略组
- DOMAIN-SUFFIX,netflix.com,Netflix
- DOMAIN-SUFFIX,nflxvideo.net,Netflix
- DOMAIN-SUFFIX,nflximg.com,Netflix
# YouTube 走 YouTube 策略组
- DOMAIN-SUFFIX,youtube.com,YouTube
- DOMAIN-SUFFIX,googlevideo.com,YouTube
- DOMAIN-SUFFIX,ytimg.com,YouTube
# 国内网站直连
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
# 其他流量走默认代理
- MATCH,其他
优化建议:将
.cn域名和国内 IP 段设置为DIRECT,避免绕路。同时,MATCH兜底规则务必放在最后。
4. 测试与调试
编写规则后,务必进行测试:
- 使用 Clash 内置的 日志 功能(
log-level: info),查看匹配情况。 - 访问被拦截的网站,检查是否成功
REJECT。 - 使用
curl -x http://127.0.0.1:7890 http://ip-api.com测试出口 IP。
常见问题排查:
- 规则未生效:检查规则顺序,Clash 是从上到下匹配,第一条匹配即停止。
- 代理节点不可用:先按节点超时排查指南定位问题层级,再考虑换节点或换服务商。
总结
编写 Clash 分流规则并不复杂,关键在于理解语法和策略组。通过自定义规则,你不仅能拦截广告,还能实现精细化流量管理。建议从简单规则开始,逐步迭代,配合社区规则集,打造专属于你的高效代理配置。
最后提醒:规则文件请妥善备份,更新时注意合并冲突。好的规则是代理体验的灵魂,值得花时间打磨。
相关阅读
- Clash 机场订阅使用教程:全平台从零配置(2026 版)买了机场不会用?本文用最短路径讲清 Clash 系客户端的完整配置流程:Windows/macOS 用 Clash Verge Rev、安卓用 v2rayNG、iOS 用小火箭,导入订阅、选节点、验证联通与常见问题排查一文全解决。2026年7月19日
- Clash Meta for Android(CMFA)配置教程CMFA 是安卓上的 Clash Meta(mihomo)内核客户端:GitHub 与 F-Droid 官方获取、Clash 订阅导入、TUN/VPN 模式设置、后台被杀与订阅格式等常见坑,一文配好。2026年7月20日
- Stash 使用教程:iOS 上的 Clash 全家桶Stash 是 iOS 上兼容 Clash 配置的付费客户端:购买安装、导入机场订阅、覆写 Override 用法、与小火箭 Shadowrocket 的差异对比,一篇讲清 Stash 怎么用、值不值得买。2026年7月20日
- Clash Verge Rev终极配置指南与分流规则进阶Clash Verge Rev 从安装到分流规则进阶,涵盖性能调优、规则编写与常见问题排查,助你打造高效代理客户端。2026年7月20日