自定义分流规则

深入了解 Clash Party 的配置覆写功能,学习如何编写自定义分流规则,掌握 DOMAIN、IP-CIDR 等常用规则语法。通过实战示例,掌握规则的编写和生效技巧。

Clash Party 的「配置覆写」功能允许你在不修改原始订阅文件的情况下,注入自定义的配置。这在需要对特定网站进行强制代理、直连或拦截时非常有用。

本文将详细介绍规则的编写语法,并提供大量实用的例子。

什么是分流规则?

分流规则(Rules)是 Clash 处理网络请求的核心逻辑。每当一个网络请求发起时,Clash 会从上到下依次匹配规则列表。

  • 一旦匹配成功,就会按照该规则指定的**策略(Strategy)**进行处理(如走代理、直连或拒绝)。
  • 如果所有规则都不匹配,通常会使用默认的兜底策略(通常是 MATCHFINAL)。

如何添加自定义规则

在 Clash Party 中添加自定义规则的步骤如下:

  1. 进入 设置 (Settings) > 配置覆写 (Configuration Override)
  2. 点击 新建 (New) 按钮。
  3. 选择 规则 (Rules) 类型。
  4. 在编辑器中输入你的规则(YAML 格式)。
  5. 保存并启用该覆写配置。

提示

配置覆写中的规则通常会插入到订阅原有规则的最前面(Prepend),这意味着你的自定义规则拥有更高的优先级。

规则语法结构

一条标准的 Clash 规则由三个部分组成,用逗号分隔:

类型,条件,策略
  • 类型 (Type):匹配的方式,如域名后缀、关键字、IP 范围等。
  • 条件 (Value):具体的匹配内容,如 google.com192.168.0.0/16
  • 策略 (Strategy):匹配后的动作,如 Proxy(代理)、Direct(直连)、Reject(拒绝/拦截),或者是你策略组的具体名称(如 US Node)。

常用策略 (Strategy)

  • DIRECT:直连,不经过代理。
  • REJECT:拒绝,拦截请求(常用于去广告)。
  • PROXY / Proxy:使用默认代理节点或策略组(取决于你的主策略组名称,通常订阅中会有一个名为 Proxy 或 节点选择 的组)。
  • 策略组名称:你可以在这里填写订阅中存在的任意策略组名称,例如 StreamingApple 等。

规则类型详解

1. 域名类规则

DOMAIN-SUFFIX (域名后缀匹配)

最常用的规则类型。匹配该域名及其所有子域名。

  • 语法DOMAIN-SUFFIX,域名,策略
  • 示例
    # 匹配 google.com, www.google.com, maps.google.com 等
    - DOMAIN-SUFFIX,google.com,Proxy
    

DOMAIN-KEYWORD (域名关键字匹配)

只要域名中包含该关键字就匹配。速度稍慢,建议仅在无法确定完整域名时使用。

  • 语法DOMAIN-KEYWORD,关键字,策略
  • 示例
    # 匹配 adservice.google.com, my-ad-site.com 等
    - DOMAIN-KEYWORD,ad,REJECT
    

DOMAIN (完整域名匹配)

精确匹配整个域名,子域名不生效。

  • 语法DOMAIN,域名,策略
  • 示例
    # 仅匹配 www.google.com,不匹配 mail.google.com
    - DOMAIN,www.google.com,Proxy
    

2. IP 类规则

IP-CIDR / IP-CIDR6 (IP 段匹配)

匹配目标 IP 地址是否在指定的网段内。no-resolve 是可选参数,表示不进行 DNS 解析(如果请求已经是 IP 形式)。

  • 语法IP-CIDR,IP地址/掩码,策略[,no-resolve]
  • 示例
    # 局域网直连
    - IP-CIDR,192.168.0.0/16,DIRECT
    # 谷歌 DNS 走代理
    - IP-CIDR,8.8.8.8/32,Proxy
    

GEOIP (地理位置匹配)

根据目标 IP 的归属地进行匹配。需要依赖 GeoIP 数据库。

  • 语法GEOIP,国家代码,策略[,no-resolve]
  • 示例
    # 中国大陆 IP 直连
    - GEOIP,CN,DIRECT
    

3. 端口与进程规则

DST-PORT (目标端口匹配)

匹配请求的目标端口。

  • 语法DST-PORT,端口号,策略
  • 示例
    # 拦截 80 端口的 HTTP 流量(仅作示例,慎用)
    - DST-PORT,80,REJECT
    

PROCESS-NAME (进程名匹配)

匹配发起请求的应用程序名称。这在 Windows/macOS 上非常有用。

  • 语法PROCESS-NAME,进程名,策略
  • 示例
    # 让 Telegram 强制走代理
    - PROCESS-NAME,Telegram.exe,Proxy
    # 让网易云音乐强制直连
    - PROCESS-NAME,NeteaseMusic.exe,DIRECT
    

实战示例库

以下是一些常见的配置场景,你可以直接复制到配置覆写中。

场景一:强制特定网站走代理

有时候自动分流规则可能不准确,或者你想强制某个国内网站走代理(例如为了测试)。

- DOMAIN-SUFFIX,bilibili.com,Proxy
- DOMAIN-SUFFIX,weibo.com,Proxy

场景二:自定义去广告/拦截

拦截特定的跟踪器或广告域名。

- DOMAIN-SUFFIX,doubleclick.net,REJECT
- DOMAIN-KEYWORD,analytics,REJECT

场景三:解决银行应用无法访问的问题

有些银行 App 或网站对代理非常敏感,必须强制直连。

- DOMAIN-SUFFIX,cmbchina.com,DIRECT  # 招商银行
- DOMAIN-SUFFIX,95559.com.cn,DIRECT # 交通银行
- DOMAIN-KEYWORD,bank,DIRECT

场景四:特定软件分流

让 Zoom 会议软件强制直连以保证稳定性,让 Discord 强制走代理。

# Windows 示例
- PROCESS-NAME,Zoom.exe,DIRECT
- PROCESS-NAME,Discord.exe,Proxy

# macOS 示例 (通常不需要 .app 后缀,取决于进程实际名称)
- PROCESS-NAME,Zoom,DIRECT
- PROCESS-NAME,Discord,Proxy

场景五:开发环境分流

如果你是开发者,可能需要连接公司内网或特定测试服务器。

# 公司内网 IP 段直连
- IP-CIDR,10.0.0.0/8,DIRECT
# 特定测试域名走代理
- DOMAIN-SUFFIX,test-env.company.com,Proxy

常见问题与注意事项

  1. 优先级问题: 自定义规则通常添加在列表顶部,因此优先级最高。如果你写了 DOMAIN-SUFFIX,google.com,DIRECT,那么即使订阅中有 google.com,Proxy,也会优先执行你的直连规则。

  2. 策略组名称必须存在: 如果你在策略部分填写的不是 DIRECTREJECT,而是一个具体的策略组名称(如 Netflix),请确保你的订阅中确实存在这个名称的策略组,否则会导致配置错误。

  3. YAML 格式敏感

    • 冒号后面通常需要空格。
    • 缩进必须使用空格,不能用 Tab。
    • 列表项使用 - 开头。
  4. no-resolve 的作用: 在 IP 规则中使用 no-resolve 可以避免 Clash 为了匹配 IP 规则而发起不必要的 DNS 解析请求。如果流量本身就是基于域名的,Clash 会先解析域名得到 IP 再匹配 IP 规则。加上 no-resolve 后,如果请求是域名,则直接跳过这条 IP 规则(除非 DNS 解析已经在之前的步骤中完成)。通常建议在 GEOIPIP-CIDR 规则末尾加上 ,no-resolve

推荐的开源规则集

如果你需要大量、分类完善的规则(如“所有苹果服务”、“所有广告域名”等),直接手写可能太繁琐。以下是一些社区维护的知名规则集项目,你可以参考它们的列表内容,或通过 rule-providers 方式引用(进阶用法):

  1. Loyalsoldier/clash-rules

    • 特点:非常知名,专注于 GeoIP 和域名分类,适合作为基础规则库。
    • 包含Google, Apple, Telegram, GFW, Greatfire 等分类。
    • 链接GitHub 仓库
  2. ACL4SSR/ACL4SSR

    • 特点:历史悠久,分类极其细致,很多订阅转换服务默认使用其规则。
    • 包含Netflix, Disney+, Spotify, Steam, OneDrive 等各类流媒体与应用分流。
    • 链接GitHub 仓库
  3. blackmatrix7/ios_rule_script

    • 特点:更新频率极高,覆盖了海量的应用和服务,几乎能找到所有你听过的 APP 的规则。
    • 包含:按 APP 名称分类(如 TikTok, Twitter, OpenAI 等),非常适合查找特定应用的域名列表。
    • 链接GitHub 仓库

通过掌握这些规则写法,你可以完全掌控 Clash Party 的分流行为,打造最适合自己的网络环境。