博客 / 产品更新 / Clash 规则怎么写:域名、IP、Ge…
Clash规则分流配置文件教程

Clash 规则怎么写:
域名、IP、GeoIP 分流完全指南

一份 Clash 配置文件里,规则是最核心的部分。这篇文章从零开始讲清楚规则语法,以及怎么组合出一套实用的分流方案。

大多数用户用代理客户端的方式是:导入机场给的订阅链接,然后开始用。这没有任何问题。但如果你想真正理解配置文件在做什么,或者想自己调整分流逻辑,就需要搞清楚规则(rules)这一节。

01 为什么需要规则

代理不是一个开关。你不会希望访问百度时流量绕到海外再回来,也不会希望访问 GitHub 时走国内网络。规则就是告诉客户端:对于某类流量,走代理还是直连,或者走哪个节点。

一份合理的规则配置通常实现这样的效果:

02 规则基本语法

每条规则的格式是三段:

规则类型,匹配值,策略

例如:

rules:
  - DOMAIN,google.com,Proxy
  - DOMAIN-SUFFIX,github.com,Proxy
  - IP-CIDR,192.168.0.0/16,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

规则从上到下匹配,第一条命中的规则生效,后面的规则不再判断。MATCH 是兜底规则,没有匹配值,必须放在最后。

03 域名类规则

DOMAIN:精确匹配完整域名。

- DOMAIN,ads.example.com,REJECT

只匹配 ads.example.com,不匹配 example.comsub.ads.example.com

DOMAIN-SUFFIX:匹配域名及其所有子域名。

- DOMAIN-SUFFIX,google.com,Proxy

匹配 google.comwww.google.commail.google.com 等所有以 .google.com 结尾的域名。这是最常用的域名规则类型。

DOMAIN-KEYWORD:匹配域名中包含关键词的请求。

- DOMAIN-KEYWORD,twitter,Proxy

匹配任何域名中含有 twitter 的请求,包括 twitter.comapi.twitter.comcdn.twitter.com 等。精度比前两种低,但写起来最省事。

优先用 DOMAIN-SUFFIX 而不是 DOMAIN-KEYWORD。关键词匹配可能误伤不相关的域名——比如 DOMAIN-KEYWORD,you 会同时匹配 youtube.com 和任何含有 you 的域名。

DOMAIN-REGEX:正则表达式匹配。性能开销最大,非必要不用。

04 IP 类规则

IP-CIDR:匹配 IPv4 地址段。

- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT

这三条是局域网地址,直连是标准做法。

IP-CIDR6:IPv6 版本,用法相同。

- IP-CIDR6,::1/128,DIRECT
- IP-CIDR6,fc00::/7,DIRECT

IP 规则的触发需要先做 DNS 解析。如果你开启了 TUN 模式,DNS 由 Clash 内核接管,IP 规则能可靠命中。在普通系统代理模式下,部分流量可能绕过 DNS 解析直接走 IP,IP 规则有时会不稳定。

05 GeoIP:一行搞定国内直连

手动维护几千条国内域名和 IP 是不现实的。GEOIP 规则通过离线的 GeoIP 数据库,判断一个 IP 属于哪个国家:

- GEOIP,CN,DIRECT

这一条规则等价于几千条 IP-CIDR 规则,把所有判断为中国 IP 的请求直连。

Clash.Meta / mihomo 内置了 geoip.dat 数据库,并支持自动更新。你不需要手动维护这个文件。

GEOIP 规则使用 MaxMind GeoLite2 数据库或社区维护的 Country.mmdb,准确率在 99% 以上。

— Clash.Meta 文档

类似地,还有 GEOSITE 规则(在部分版本中可用),用于匹配特定地区或类别的域名集合:

- GEOSITE,CN,DIRECT
- GEOSITE,category-ads-all,REJECT

06 策略组与规则的关系

规则里的第三段(策略)可以是:

例如,你在 proxy-groups 里定义了一个叫 Proxy 的自动选择组:

proxy-groups:
  - name: Proxy
    type: url-test
    proxies:
      - 香港01
      - 日本01
      - 新加坡01
    url: http://www.gstatic.com/generate_204
    interval: 300

规则里写 - DOMAIN-SUFFIX,google.com,Proxy,命中时就会自动选这个组里延迟最低的节点。

07 一份可用的最小配置结构

下面是一份精简的规则结构,覆盖了大多数使用场景:

rules:
  # 局域网直连
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT

  # 常用国内服务直连
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,wechat.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT

  # 常见需代理的服务
  - DOMAIN-SUFFIX,google.com,Proxy
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - DOMAIN-SUFFIX,twitter.com,Proxy
  - DOMAIN-SUFFIX,github.com,Proxy
  - DOMAIN-SUFFIX,openai.com,Proxy

  # GeoIP 兜底:国内 IP 直连
  - GEOIP,CN,DIRECT

  # 其余全走代理
  - MATCH,Proxy

这个结构的逻辑是:先处理明确的直连(局域网、国内常用服务),再处理明确需要代理的服务,然后用 GeoIP 兜住剩余的国内 IP,最后所有未匹配的流量走代理。

实际使用中,机场提供的订阅文件通常已经包含了一套完整的规则,你不需要从头写。但理解了这套语法,就能在遇到问题时知道该在哪里调整——比如某个网站访问慢,加一条 DOMAIN-SUFFIX 改成 DIRECT;某个服务需要特定地区的节点,创建一个新的策略组。


Terraka 完整支持上述所有规则类型,包括 GEOIP、GEOSITE 和正则匹配。如果你有一份现有的 Clash 配置,可以直接导入。

下载 Terraka →

JL
江流
FOUNDING ENGINEER · 内核维护

负责 Terraka 内核与协议层。前 Tower 工程师。喜欢把规则引擎写到极致,也喜欢清晨的咖啡。

把 2.7 装上吧。

Hysteria2、新测速、更稳的节点抖动指标——所有平台同步推送,旧版本也会自动提示更新。

下载 Terraka 2.7 v2.7.0 · BUILD 11240 · 18.4 MB