Clash 规则配置详解

教程简介

规则配置是 Clash 的核心功能之一,通过规则可以实现智能分流,让不同的网络请求走不同的代理路径。本教程将深入讲解规则配置的各个方面。

通过本教程,您将学会:

  • 规则的基本概念和工作原理
  • 各种规则类型的详细说明
  • 规则匹配顺序和优先级
  • 如何编写自定义规则
  • 规则集的使用方法

规则基础

Clash 规则由三部分组成:规则类型、匹配条件和动作。基本格式为:

规则类型,匹配条件,动作

例如:

DOMAIN-SUFFIX,google.com,Proxy

这表示:如果域名以 google.com 结尾,则使用 Proxy 代理组。

规则类型详解

DOMAIN(域名精确匹配)

精确匹配完整域名:

DOMAIN,www.google.com,Proxy

DOMAIN-SUFFIX(域名后缀匹配)

匹配域名后缀:

DOMAIN-SUFFIX,google.com,Proxy

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

匹配域名中的关键词:

DOMAIN-KEYWORD,google,Proxy

GEOIP(地理位置匹配)

根据 IP 地理位置匹配:

GEOIP,CN,DIRECT

表示中国大陆 IP 直连。

IP-CIDR(IP 段匹配)

匹配 IP 地址段:

IP-CIDR,192.168.0.0/16,DIRECT

MATCH(兜底规则)

匹配所有其他请求:

MATCH,Proxy

规则匹配顺序

Clash 按照配置文件中的顺序从上到下匹配规则,一旦匹配成功就停止。因此规则的顺序非常重要:

  1. 将最具体的规则放在前面
  2. 将通用规则放在后面
  3. MATCH 规则放在最后作为兜底

示例配置:

rules:
  # 具体规则优先
  - DOMAIN,www.google.com,Proxy
  # 通用规则
  - DOMAIN-SUFFIX,google.com,Proxy
  # 地理位置规则
  - GEOIP,CN,DIRECT
  # 兜底规则
  - MATCH,Proxy

自定义规则编写

编写自定义规则时,建议:

  • 优先使用精确匹配(DOMAIN)
  • 使用后缀匹配(DOMAIN-SUFFIX)处理子域名
  • 避免过度使用关键词匹配(性能较低)
  • 合理使用 GEOIP 规则简化配置
图 1:自定义规则配置示例

规则集使用方法

规则集(Rule Set)是预定义的规则集合,可以简化配置管理。使用规则集:

rule-providers:
  reject:
    type: http
    behavior: domain
    url: https://example.com/reject.yaml
    path: ./ruleset/reject.yaml
    interval: 86400

rules:
  - RULE-SET,reject,REJECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

常见问题 FAQ

Q: 规则不生效怎么办?

A: 检查规则顺序,确认规则格式正确,查看日志排查匹配问题。

Q: 如何提高规则匹配性能?

A: 将常用规则放在前面,避免过多正则表达式,使用规则集减少规则数量。