跳转至

第8章 分流规则详解

分流规则是科学上网的核心功能,它能智能地决定哪些流量走代理,哪些直连。本章将深入讲解规则的编写和应用。

8.1 规则分流基础

8.1.1 什么是分流

分流定义:

根据预设规则,自动判断网络请求是走代理还是直连。

传统全局代理:
所有流量 ────► 代理服务器 ────► 互联网
           (国内网站也走代理,浪费流量,速度慢)

智能分流:
国内流量 ────► 直接连接 ────► 国内网站(快)

国外流量 ────► 代理服务器 ────► 国外网站(翻墙)

分流的优势:

✓ 节省流量
  国内网站直连,不消耗代理流量

✓ 提高速度
  国内网站直连速度更快

✓ 降低延迟
  避免不必要的绕路

✓ 避免异常
  银行/支付等敏感网站直连更安全

✓ 提升体验
  该快的快,该稳的稳

8.1.2 分流工作原理

请求处理流程:

应用发起请求:访问 www.example.com
进入代理客户端
┌────────────────────┐
│   规则匹配引擎     │
└────────────────────┘
    按顺序匹配规则
┌─────────────────────────────────┐
│ 规则1:DOMAIN,www.example.com,🚀代理  │ ← 匹配成功!
│ 规则2:DOMAIN-SUFFIX,cn,DIRECT        │
│ 规则3:GEOIP,CN,DIRECT                │
│ 规则4:MATCH,🚀代理                   │
└─────────────────────────────────┘
    执行对应策略
    通过代理访问

匹配原则:

1. 从上到下顺序匹配
   第一条匹配的规则生效
   后续规则不再检查

2. 精确匹配优先
   DOMAIN > DOMAIN-SUFFIX > DOMAIN-KEYWORD

3. 特殊规则在前
   具体规则 → 通用规则 → 兜底规则

4. 性能考虑
   常用规则放前面
   复杂规则放后面

8.1.3 规则类型概览

Clash规则类型:

规则类型 说明 示例
DOMAIN 完整域名匹配 DOMAIN,www.google.com,🚀代理
DOMAIN-SUFFIX 域名后缀匹配 DOMAIN-SUFFIX,google.com,🚀代理
DOMAIN-KEYWORD 域名关键词 DOMAIN-KEYWORD,google,🚀代理
IP-CIDR IP地址段 IP-CIDR,192.168.0.0/16,DIRECT
IP-CIDR6 IPv6地址段 IP-CIDR6,2001:db8::/32,DIRECT
GEOIP 地理位置 GEOIP,CN,DIRECT
SRC-IP-CIDR 源IP地址 SRC-IP-CIDR,192.168.1.0/24,DIRECT
SRC-PORT 源端口 SRC-PORT,7777,DIRECT
DST-PORT 目标端口 DST-PORT,80,DIRECT
PROCESS-NAME 进程名称 PROCESS-NAME,chrome.exe,🚀代理
RULE-SET 规则集 RULE-SET,google,🚀代理
MATCH 兜底规则 MATCH,🚀代理

8.1.4 策略类型

常见策略:

DIRECT          # 直接连接(不走代理)
REJECT          # 拒绝连接(用于广告屏蔽)
🚀代理          # 走指定代理组
Proxy           # 走代理
♻️自动选择      # 自动选择最快节点
🇭🇰香港         # 指定地区节点组

8.2 域名规则编写

8.2.1 DOMAIN(完整域名匹配)

语法:

DOMAIN,域名,策略

示例:

rules:
  # 精确匹配
  - DOMAIN,www.google.com,🚀代理
  - DOMAIN,api.openai.com,🚀代理
  - DOMAIN,www.baidu.com,DIRECT

  # 只匹配完全相同的域名
  - DOMAIN,google.com,🚀代理
  # ✓ 匹配:google.com
  # ✗ 不匹配:www.google.com
  # ✗ 不匹配:mail.google.com

适用场景:

✓ 需要精确控制的域名
✓ 避免误匹配
✓ 优先级最高的特殊规则

示例:
某个子域名直连,其他子域名代理:
- DOMAIN,cn.example.com,DIRECT        # 国内版直连
- DOMAIN-SUFFIX,example.com,🚀代理    # 其他都代理

8.2.2 DOMAIN-SUFFIX(域名后缀匹配)

语法:

DOMAIN-SUFFIX,后缀,策略

示例:

rules:
  # 匹配域名及所有子域名
  - DOMAIN-SUFFIX,google.com,🚀代理
  # ✓ 匹配:google.com
  # ✓ 匹配:www.google.com
  # ✓ 匹配:mail.google.com
  # ✓ 匹配:drive.google.com
  # ✗ 不匹配:google.co.uk

  # 国内网站直连
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT

  # 国外服务代理
  - DOMAIN-SUFFIX,youtube.com,🚀代理
  - DOMAIN-SUFFIX,facebook.com,🚀代理
  - DOMAIN-SUFFIX,twitter.com,🚀代理
  - DOMAIN-SUFFIX,instagram.com,🚀代理

通配符技巧:

# 顶级域名规则
- DOMAIN-SUFFIX,cn,DIRECT              # 所有.cn域名直连
- DOMAIN-SUFFIX,gov.cn,DIRECT          # 政府网站直连

# 常见场景
- DOMAIN-SUFFIX,apple.com,DIRECT       # Apple服务
- DOMAIN-SUFFIX,icloud.com,DIRECT      # iCloud
- DOMAIN-SUFFIX,microsoft.com,DIRECT   # 微软(可选)

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

语法:

DOMAIN-KEYWORD,关键词,策略

示例:

rules:
  # 包含关键词即匹配
  - DOMAIN-KEYWORD,google,🚀代理
  # ✓ 匹配:google.com
  # ✓ 匹配:www.google.com
  # ✓ 匹配:google.co.uk
  # ✓ 匹配:google.com.hk
  # ✓ 匹配:mygooglesite.com (注意:也会匹配)

  # 广告屏蔽
  - DOMAIN-KEYWORD,ad,REJECT
  - DOMAIN-KEYWORD,ads,REJECT
  - DOMAIN-KEYWORD,analytics,REJECT
  - DOMAIN-KEYWORD,tracker,REJECT

  # 特定服务
  - DOMAIN-KEYWORD,spotify,🎵音乐
  - DOMAIN-KEYWORD,netflix,🎬影视
  - DOMAIN-KEYWORD,github,💻开发

注意事项:

⚠️ 容易误匹配
DOMAIN-KEYWORD,china,DIRECT
可能误匹配:
- chinasupplier.com(想代理)
- porcelain-china.com(瓷器网站)

建议:
✓ 使用更具体的关键词
✓ 关键词规则放在后面
✓ 优先使用DOMAIN-SUFFIX

8.2.4 域名规则实战

Google全家桶:

rules:
  # Google搜索
  - DOMAIN-SUFFIX,google.com,🚀代理
  - DOMAIN-SUFFIX,google.com.hk,🚀代理
  - DOMAIN-SUFFIX,google.co.jp,🚀代理
  - DOMAIN-SUFFIX,googleapis.com,🚀代理
  - DOMAIN-SUFFIX,googleusercontent.com,🚀代理

  # Google服务
  - DOMAIN-SUFFIX,gmail.com,🚀代理
  - DOMAIN-SUFFIX,gstatic.com,🚀代理
  - DOMAIN-SUFFIX,youtube.com,🚀代理
  - DOMAIN-SUFFIX,ytimg.com,🚀代理
  - DOMAIN-SUFFIX,googlevideo.com,🚀代理

  # 或使用关键词(简化但可能误匹配)
  - DOMAIN-KEYWORD,google,🚀代理

社交媒体:

rules:
  # Facebook
  - DOMAIN-SUFFIX,facebook.com,🚀代理
  - DOMAIN-SUFFIX,fb.com,🚀代理
  - DOMAIN-SUFFIX,fbcdn.net,🚀代理

  # Twitter/X
  - DOMAIN-SUFFIX,twitter.com,🚀代理
  - DOMAIN-SUFFIX,x.com,🚀代理
  - DOMAIN-SUFFIX,twimg.com,🚀代理
  - DOMAIN-SUFFIX,t.co,🚀代理

  # Instagram
  - DOMAIN-SUFFIX,instagram.com,🚀代理
  - DOMAIN-SUFFIX,cdninstagram.com,🚀代理

  # Telegram
  - DOMAIN-SUFFIX,telegram.org,🚀代理
  - DOMAIN-SUFFIX,t.me,🚀代理

国内网站直连:

rules:
  # 电商
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,tmall.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT
  - DOMAIN-SUFFIX,pinduoduo.com,DIRECT

  # 视频
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - DOMAIN-SUFFIX,iqiyi.com,DIRECT
  - DOMAIN-SUFFIX,youku.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT

  # 社交
  - DOMAIN-SUFFIX,weixin.qq.com,DIRECT
  - DOMAIN-SUFFIX,wechat.com,DIRECT
  - DOMAIN-SUFFIX,weibo.com,DIRECT

  # 搜索
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,so.com,DIRECT
  - DOMAIN-SUFFIX,sogou.com,DIRECT

8.3 IP-CIDR规则

8.3.1 IP-CIDR基础

CIDR表示法:

IP地址/前缀长度

示例:
192.168.1.0/24
  ↓       ↓
 基地址  前24位是网络部分

表示范围:
192.168.1.0 - 192.168.1.255
共256个IP地址

常用CIDR:

CIDR 掩码 地址数 说明
/32 255.255.255.255 1 单个IP
/24 255.255.255.0 256 C类网络
/16 255.255.0.0 65536 B类网络
/8 255.0.0.0 16777216 A类网络

8.3.2 IP-CIDR规则编写

语法:

IP-CIDR,IP地址/前缀,策略,no-resolve

基础示例:

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

  # 本地回环
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve

  # 特定服务IP
  - IP-CIDR,1.1.1.1/32,🚀代理,no-resolve     # Cloudflare DNS
  - IP-CIDR,8.8.8.8/32,🚀代理,no-resolve     # Google DNS

no-resolve参数:

作用:跳过DNS解析,直接匹配IP

不加no-resolve:
域名请求 → 先DNS解析 → 获取IP → 匹配规则
          (可能泄露DNS查询)

加no-resolve:
域名请求 → 跳过此规则(只匹配已知IP的请求)
IP请求 → 直接匹配

建议:
✓ IP-CIDR规则都加no-resolve
✓ 避免不必要的DNS解析
✓ 防止DNS泄露

8.3.3 IPv6规则

IP-CIDR6语法:

rules:
  # IPv6局域网
  - IP-CIDR6,fe80::/10,DIRECT,no-resolve
  - IP-CIDR6,fd00::/8,DIRECT,no-resolve

  # IPv6环回
  - IP-CIDR6,::1/128,DIRECT,no-resolve

  # Cloudflare IPv6
  - IP-CIDR6,2606:4700::/32,🚀代理,no-resolve

  # Google IPv6
  - IP-CIDR6,2001:4860::/32,🚀代理,no-resolve

IPv6常用段:

fe80::/10    - 本地链路地址
fc00::/7     - 唯一本地地址
2000::/3     - 全球单播地址
ff00::/8     - 组播地址
::1/128      - 环回地址
::/128       - 未指定地址

8.3.4 实用IP规则

Telegram IP段:

rules:
  # Telegram IPv4
  - IP-CIDR,91.108.4.0/22,📲Telegram,no-resolve
  - IP-CIDR,91.108.8.0/22,📲Telegram,no-resolve
  - IP-CIDR,91.108.12.0/22,📲Telegram,no-resolve
  - IP-CIDR,91.108.16.0/22,📲Telegram,no-resolve
  - IP-CIDR,91.108.56.0/22,📲Telegram,no-resolve
  - IP-CIDR,149.154.160.0/20,📲Telegram,no-resolve

  # Telegram IPv6
  - IP-CIDR6,2001:b28:f23d::/48,📲Telegram,no-resolve
  - IP-CIDR6,2001:b28:f23f::/48,📲Telegram,no-resolve
  - IP-CIDR6,2001:67c:4e8::/48,📲Telegram,no-resolve

保留地址直连:

rules:
  # IPv4保留地址
  - IP-CIDR,0.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,169.254.0.0/16,DIRECT,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  - IP-CIDR,192.0.0.0/24,DIRECT,no-resolve
  - IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,198.18.0.0/15,DIRECT,no-resolve
  - IP-CIDR,198.51.100.0/24,DIRECT,no-resolve
  - IP-CIDR,203.0.113.0/24,DIRECT,no-resolve
  - IP-CIDR,224.0.0.0/4,DIRECT,no-resolve
  - IP-CIDR,240.0.0.0/4,DIRECT,no-resolve

8.4 GeoIP数据库使用

8.4.1 GeoIP原理

什么是GeoIP?

GeoIP数据库记录了IP地址与地理位置的对应关系。

IP地址:123.56.78.90
  ↓ 查询GeoIP数据库
国家:CN(中国)
  ↓ 应用规则
策略:DIRECT(直连)

8.4.2 GEOIP规则

语法:

GEOIP,国家代码,策略,no-resolve

示例:

rules:
  # 中国IP直连
  - GEOIP,CN,DIRECT,no-resolve

  # 特定国家代理
  - GEOIP,US,🇺🇸美国节点,no-resolve
  - GEOIP,JP,🇯🇵日本节点,no-resolve
  - GEOIP,HK,🇭🇰香港节点,no-resolve

  # 局域网直连
  - GEOIP,LAN,DIRECT,no-resolve

  # 私有地址
  - GEOIP,PRIVATE,DIRECT,no-resolve

国家代码(ISO 3166-1 alpha-2):

CN - 中国大陆
HK - 香港
TW - 台湾
US - 美国
JP - 日本
KR - 韩国
SG - 新加坡
GB - 英国
DE - 德国
FR - 法国

8.4.3 GeoIP数据库来源

Clash使用的GeoIP数据库:

# Country.mmdb文件位置
Windows: %USERPROFILE%\.config\clash\Country.mmdb
macOS: ~/.config/clash/Country.mmdb
Linux: ~/.config/clash/Country.mmdb

# 数据库来源
1. MaxMind GeoLite2(官方)
   https://github.com/Dreamacro/maxmind-geoip

2. Loyalsoldier版(推荐)
   https://github.com/Loyalsoldier/geoip

   特点:
   ✓ 包含中国IP段
   ✓ 定期更新
   ✓ 针对中国大陆优化

手动更新GeoIP数据库:

# 下载Loyalsoldier版本
# Windows PowerShell
Invoke-WebRequest -Uri "https://github.com/Loyalsoldier/geoip/releases/latest/download/Country.mmdb" -OutFile "$env:USERPROFILE\.config\clash\Country.mmdb"

# Linux/macOS
wget -O ~/.config/clash/Country.mmdb https://github.com/Loyalsoldier/geoip/releases/latest/download/Country.mmdb

# 或使用curl
curl -L -o ~/.config/clash/Country.mmdb https://github.com/Loyalsoldier/geoip/releases/latest/download/Country.mmdb

Clash配置自动更新:

# config.yaml中配置(Clash.Meta支持)
geodata-mode: true
geox-url:
  geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb"
  geosite: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"

8.4.4 GeoIP vs IP-CIDR

对比:

维度 GEOIP IP-CIDR
便利性 简单(一条规则) 复杂(需列举所有IP段)
准确性 依赖数据库 完全精确
维护 需定期更新数据库 规则相对固定
性能 需查询数据库 直接匹配
覆盖范围 全国所有IP 指定IP段

使用建议:

推荐GEOIP:
✓ 国内IP直连(GEOIP,CN,DIRECT)
✓ 按国家分流(流媒体)
✓ 简化配置

推荐IP-CIDR:
✓ 特定服务(Telegram、iCloud等)
✓ 局域网地址
✓ 精确控制

8.5 自定义规则集

8.5.1 规则集(Rule Providers)

什么是规则集?

将大量相关规则组织成单独的文件,通过引用方式使用。

优势:
✓ 模块化管理
✓ 便于维护
✓ 可在线更新
✓ 多配置复用

Clash规则集配置:

rule-providers:
  # Google规则集
  google:
    type: http
    behavior: domain        # domain/ipcidr/classical
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400        # 更新间隔(秒)

  # Apple规则集
  apple:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  # 中国IP规则集
  cnip:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cnip.yaml
    interval: 86400

  # 广告屏蔽规则集
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

rules:
  # 使用规则集
  - RULE-SET,google,🚀代理
  - RULE-SET,apple,🍎Apple
  - RULE-SET,reject,REJECT
  - RULE-SET,cnip,DIRECT
  - MATCH,🚀代理

8.5.2 规则集类型

behavior类型:

1. domain(域名规则)

# 规则文件内容(google.txt)
payload:
  - 'google.com'
  - 'googleapis.com'
  - 'googleusercontent.com'
  - '+.youtube.com'        # +. 表示包含子域名
  - 'gmail.com'

# 等效于
- DOMAIN-SUFFIX,google.com,🚀代理
- DOMAIN-SUFFIX,googleapis.com,🚀代理

2. ipcidr(IP规则)

# 规则文件内容(cnip.txt)
payload:
  - '1.0.1.0/24'
  - '1.0.2.0/23'
  - '1.0.8.0/21'
  - '1.0.32.0/19'

# 等效于
- IP-CIDR,1.0.1.0/24,DIRECT,no-resolve
- IP-CIDR,1.0.2.0/23,DIRECT,no-resolve

3. classical(经典规则)

# 规则文件内容(custom.txt)
payload:
  - DOMAIN-SUFFIX,google.com
  - DOMAIN,www.apple.com
  - DOMAIN-KEYWORD,facebook
  - IP-CIDR,192.168.0.0/16,no-resolve
  - GEOIP,CN

# 支持混合多种规则类型

8.5.3 常用规则集推荐

Loyalsoldier规则集(推荐):

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

  icloud:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400

  apple:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  google:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

  private:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
    path: ./ruleset/private.yaml
    interval: 86400

  gfw:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
    path: ./ruleset/gfw.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
    path: ./ruleset/lancidr.yaml
    interval: 86400

8.5.4 自建规则集

创建本地规则集:

# 1. 创建规则文件:./ruleset/custom.yaml
payload:
  # AI服务
  - 'openai.com'
  - 'anthropic.com'
  - 'claude.ai'
  - 'bard.google.com'

  # 开发工具
  - 'github.com'
  - 'gitlab.com'
  - 'stackoverflow.com'
  - 'npmjs.com'

  # 设计资源
  - 'figma.com'
  - 'dribbble.com'
  - 'behance.net'

# 2. 在config.yaml中引用
rule-providers:
  custom:
    type: file
    behavior: domain
    path: ./ruleset/custom.yaml

rules:
  - RULE-SET,custom,🚀代理

创建在线规则集:

# 1. 将规则文件上传到GitHub/Gitee
# 2. 获取Raw链接
# 3. 配置使用

rule-providers:
  my-rules:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/username/repo/main/rules.txt"
    path: ./ruleset/my-rules.yaml
    interval: 86400

8.6 常用规则推荐

8.6.1 完整规则配置示例

# Clash完整规则配置

proxy-groups:
  - name: "🚀 节点选择"
    type: select
    proxies:
      - "♻️ 自动选择"
      - "🇭🇰 香港节点"
      - "🇺🇸 美国节点"
      - "DIRECT"

  - name: "📲 Telegram"
    type: select
    proxies:
      - "🚀 节点选择"
      - "🇭🇰 香港节点"
      - "🇸🇬 新加坡节点"

  - name: "🎬 流媒体"
    type: select
    proxies:
      - "🇺🇸 美国节点"
      - "🇯🇵 日本节点"
      - "🇭🇰 香港节点"

  - name: "🍎 Apple"
    type: select
    proxies:
      - "DIRECT"
      - "🚀 节点选择"

  - name: "🎯 全球直连"
    type: select
    proxies:
      - "DIRECT"
      - "🚀 节点选择"

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

  icloud:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
    path: ./ruleset/icloud.yaml
    interval: 86400

  apple:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  google:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
    path: ./ruleset/google.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

  telegramcidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
    path: ./ruleset/telegramcidr.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  lancidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
    path: ./ruleset/lancidr.yaml
    interval: 86400

rules:
  # 本地网络直连
  - DOMAIN-SUFFIX,local,DIRECT
  - DOMAIN,clash.razord.top,DIRECT
  - DOMAIN,yacd.haishan.me,DIRECT

  # 广告屏蔽
  - RULE-SET,reject,REJECT

  # Telegram
  - RULE-SET,telegramcidr,📲 Telegram
  - DOMAIN-SUFFIX,t.me,📲 Telegram
  - DOMAIN-SUFFIX,telegram.org,📲 Telegram

  # Apple服务
  - RULE-SET,icloud,🍎 Apple
  - RULE-SET,apple,🍎 Apple

  # Google服务
  - RULE-SET,google,🚀 节点选择

  # 代理列表
  - RULE-SET,proxy,🚀 节点选择

  # 国内网站直连
  - RULE-SET,direct,🎯 全球直连

  # 局域网
  - RULE-SET,lancidr,DIRECT,no-resolve

  # 中国IP直连
  - RULE-SET,cncidr,🎯 全球直连,no-resolve
  - GEOIP,CN,🎯 全球直连,no-resolve

  # 兜底规则
  - MATCH,🚀 节点选择

8.6.2 简化版规则

适合新手:

rules:
  # 局域网直连
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve

  # 常用国外网站代理
  - DOMAIN-SUFFIX,google.com,🚀代理
  - DOMAIN-SUFFIX,youtube.com,🚀代理
  - DOMAIN-SUFFIX,facebook.com,🚀代理
  - DOMAIN-SUFFIX,twitter.com,🚀代理
  - DOMAIN-SUFFIX,instagram.com,🚀代理
  - DOMAIN-SUFFIX,github.com,🚀代理

  # 常用国内网站直连
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT

  # 中国IP直连
  - GEOIP,CN,DIRECT,no-resolve

  # 其他走代理
  - MATCH,🚀代理

8.6.3 规则调试技巧

查看规则匹配日志:

# Clash配置
log-level: info    # 或debug(更详细)

# 查看日志文件
Windows: %USERPROFILE%\.config\clash\logs\
macOS/Linux: ~/.config/clash/logs/

# 日志内容示例
[INFO] [DNS] www.google.com --> 142.250.185.46
[INFO] [Rule] DOMAIN-SUFFIX,google.com -> 🚀代理

测试规则匹配:

Clash Dashboard (YACD):
1. 打开 http://clash.razord.top
2. 连接到Clash API
3. 查看Connections(连接)
4. 观察每个连接匹配的规则

常见问题排查:

问题1:规则不生效
检查:
✓ 规则顺序(是否被前面的规则拦截)
✓ 语法正确性
✓ 代理组名称是否匹配
✓ 重启Clash

问题2:规则集无法下载
检查:
✓ URL是否正确
✓ 网络连接(可能需要代理下载)
✓ 使用CDN加速链接

问题3:部分网站仍然直连/代理错误
检查:
✓ DNS设置
✓ 是否有缓存
✓ 规则优先级
✓ 使用DOMAIN精确匹配特殊处理

本章小结

本章详细讲解了分流规则的编写和应用:

核心要点:

  1. 规则基础

    • 分流原理和优势
    • 规则匹配机制
    • 规则类型概览
  2. 域名规则

    • DOMAIN(精确匹配)
    • DOMAIN-SUFFIX(后缀匹配)
    • DOMAIN-KEYWORD(关键词匹配)
  3. IP规则

    • IP-CIDR语法和应用
    • CIDR表示法
    • IPv6规则
  4. GeoIP

    • 地理位置匹配
    • GeoIP数据库更新
    • 与IP-CIDR对比
  5. 规则集

    • Rule Providers使用
    • 在线/本地规则集
    • 自建规则集
  6. 实战配置

    • 完整规则示例
    • 简化版配置
    • 调试技巧

规则编写原则:

1. 精确优先
   DOMAIN > DOMAIN-SUFFIX > DOMAIN-KEYWORD

2. 特殊在前
   具体规则 → 通用规则 → 兜底规则

3. 性能考虑
   常用规则前置
   使用规则集减少规则数量

4. 维护方便
   模块化管理
   使用在线规则集自动更新

下一章我们将学习进阶优化技巧,进一步提升代理性能。


实践任务:

  1. 编写自己的分流规则
  2. 配置规则集并测试
  3. 观察规则匹配日志
  4. 优化规则顺序和性能
  5. 创建自定义规则集