如何编写高效的自定义代理规则

掌握匹配逻辑,让每一字节流量都走对路线

📅 2026-07-07 🕒 阅读时间约 7 分钟 🏷️ 进阶配置
📑 本文目录

🧩 规则基础:匹配流程

Clash 的规则引擎按顺序从上到下匹配,一旦命中即停止,不再继续检查后续规则。因此,规则的顺序至关重要。一个请求会依次经过每条规则的检查,直到找到第一个符合条件的规则,然后使用该规则指定的策略组(如 PROXY、DIRECT、REJECT 等)。

💡 核心原则: 精确规则靠前,模糊规则靠后;特定域名优先于泛域名,IP 范围优先于 GEOIP。

如果没有命中任何规则,Clash 会使用最后的 MATCH 规则(通常设置为默认策略组)。因此务必保证规则末尾有一条 MATCH

📋 常用规则类型速查

规则类型语法示例说明
DOMAIN DOMAIN,google.com,PROXY 精确匹配域名,不含子域名
DOMAIN-SUFFIX DOMAIN-SUFFIX,youtube.com,PROXY 匹配域名后缀,含所有子域名
DOMAIN-KEYWORD DOMAIN-KEYWORD,facebook,PROXY 匹配域名包含关键字
GEOIP GEOIP,CN,DIRECT 根据 IP 地理位置数据库匹配
IP-CIDR IP-CIDR,10.0.0.0/8,DIRECT 匹配 IP 地址段
MATCH MATCH,PROXY 匹配所有请求,必须放在最后

此外,Clash Meta 等内核还支持 DOMAIN-REGEX(正则匹配)、AND/OR 逻辑组合等高级规则,可进一步精细控制。

⚡ 实战案例:打造智能分流

场景一:国内直连、国外代理

这是最常见的“白名单”模式,默认代理,仅国内站点直连:

rules:
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-KEYWORD,alipay,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

注意:GEOIP,CN,DIRECT 会将所有服务器位于中国的 IP 直连,省去大量域名规则。

场景二:屏蔽广告和跟踪器

利用 REJECT 策略组直接丢弃广告请求,提升体验:

rules:
  - DOMAIN-KEYWORD,ad,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT
  - DOMAIN-SUFFIX,googlesyndication.com,REJECT
  - MATCH,PROXY

场景三:多节点负载均衡

将视频流量指向 url-test 策略组,自动选择最快的节点:

proxy-groups:
  - name: Video
    type: url-test
    proxies: [Node1, Node2, Node3]
    url: 'http://www.gstatic.com/generate_204'
    interval: 300

rules:
  - DOMAIN-SUFFIX,youtube.com,Video
  - DOMAIN-SUFFIX,netflix.com,Video
  - MATCH,PROXY

更多策略组玩法,请参阅 《Clash 策略组完全解析》

📊 规则顺序与优先级

规则匹配遵循“先到先得”的原则。请记住以下优先级口诀:

  • REJECT 类规则最前: 尽早丢弃广告、跟踪流量,避免浪费资源。
  • 精确域名与 IP 规则居中: 特别重要的内部服务、需要固定代理的站点放在前面。
  • GEOIP 规则靠后: 通常用于大面积直连,但如有特殊需要可以提前。
  • MATCH 永远最后: 作为兜底规则。
⚠️ 常见错误:MATCH 放在规则中间会导致后续规则完全不生效。请使用客户端的规则排序检查功能。

🔍 调试与验证技巧

1. 开启日志查看命中情况

在客户端设置中将日志级别调整为 debug,可以看到每条请求匹配了哪条规则。这对于排查“为什么这个网站走了代理/直连”非常有效。

2. 使用外部工具验证

浏览器访问 ipinfo.io 可查看当前出口 IP;使用 nslookup 或在线 DNS 泄漏测试工具确认 DNS 是否泄漏。

3. 临时切换模式

怀疑规则问题时,可将客户端模式临时切换为“全局”,若网络恢复正常,说明规则未正确命中该站点。此时再去调优规则。

若问题依旧存在,可能是代理节点本身不稳定,可参考 订阅排查手册常见问题

🏆 最佳实践总结

  • 优先使用社区维护的规则集(如 Loyalsoldier/clash-rules),它们每日更新,省去大量手动维护工作。
  • 自定义规则应尽量精简,过多规则会影响匹配性能。
  • 利用 DOMAIN-SUFFIX 替代多个 DOMAIN,减少冗余。
  • 定期查看客户端日志,清理无效规则。
  • 将策略组命名规范化,方便在规则中引用。

掌握了这些技巧后,你的 Clash 分流将会既高效又稳定。如果想进一步提升网络性能,强烈建议阅读 《TUN 模式原理与优化指南》,将规则与 TUN 模式结合,实现真正的全局无死角代理。

📚 继续探索