Clash 规则优化实战:提升速度减少延迟

为什么要优化规则?

规则配置是 Clash 的核心。合理的规则设置可以显著提升网络速度、减少延迟、节省流量。本文分享实战经验,帮你打造高效的规则配置。

规则配置基础

规则的作用

Clash 规则决定了每个网络请求的处理方式:

  • PROXY - 走代理节点
  • DIRECT - 直连(不走代理)
  • REJECT - 拒绝连接(广告拦截)

规则类型

规则类型 匹配方式 示例
DOMAIN 完整域名 google.com
DOMAIN-SUFFIX 域名后缀 .google.com(匹配所有子域名)
DOMAIN-KEYWORD 域名包含关键词 google(匹配包含google的域名)
IP-CIDR IP 地址段 192.168.0.0/16
GEOIP IP 归属地 CN(中国 IP)
RULE-SET 规则集(批量规则) 引用外部规则文件
MATCH 兜底规则 前面都不匹配时的默认处理

优化原则

1. 规则顺序很重要

Clash 从上往下匹配规则,一旦匹配就停止。因此:

  • 常用规则放前面(减少匹配次数)
  • 精确规则放前面,模糊规则放后面
  • DIRECT 规则尽量靠前(国内网站优先直连)
❌ 错误示例:
rules:
  - DOMAIN-KEYWORD,google,PROXY    # 模糊匹配
  - DOMAIN,google.com,PROXY        # 精确匹配(但永远不会生效)

第二条规则永远不会生效,因为第一条已经匹配了。

✅ 正确示例:
rules:
  - DOMAIN,google.com,PROXY        # 精确匹配放前面
  - DOMAIN-KEYWORD,google,PROXY    # 模糊匹配放后面

2. 减少规则数量

规则越多,匹配越慢。优化策略:

  • 使用规则集(RULE-SET)批量管理
  • 避免重复规则
  • 删除无用规则

3. 合理使用 GEOIP

GEOIP,CN,DIRECT 是常用规则,但它有个问题:需要先查询 IP,增加延迟。

优化方案:把明确的国内域名规则放在 GEOIP 前面。

推荐的规则配置结构

最佳实践

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

  # 2. 广告拦截(可选)
  - RULE-SET,reject,REJECT

  # 3. 国内网站直连
  - RULE-SET,cncidr,DIRECT
  - RULE-SET,direct,DIRECT
  - GEOIP,CN,DIRECT

  # 4. 国外网站代理
  - RULE-SET,proxy,PROXY
  - RULE-SET,google,PROXY
  - RULE-SET,youtube,PROXY
  - RULE-SET,telegram,PROXY

  # 5. 兜底规则
  - MATCH,PROXY                    # 或 DIRECT,根据需求选择

结构说明

  1. 局域网规则 - 第一优先级,避免代理本地流量
  2. 广告拦截 - 提前拦截,节省流量
  3. 国内直连 - 国内网站优先,速度快
  4. 国外代理 - 需要代理的网站
  5. 兜底规则 - 决定其他请求的处理方式
💡 兜底规则选择:
  • MATCH,PROXY - 默认走代理(更安全,适合大部分用户)
  • MATCH,DIRECT - 默认直连(适合只代理少数网站)

常用规则集推荐

1. ACL4SSR 规则集(推荐)

最流行的规则集,维护活跃,分类清晰。

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/BanAD.list"
    path: ./ruleset/reject.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/ChinaDomain.list"
    path: ./ruleset/direct.yaml
    interval: 86400

  cncidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/ChinaIp.list"
    path: ./ruleset/cncidr.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/Clash/ProxyLite.list"
    path: ./ruleset/proxy.yaml
    interval: 86400

2. 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

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.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

DNS 分流优化

DNS 配置对速度影响巨大,合理配置可以显著提升体验。

推荐配置

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip           # 使用 Fake-IP 模式,性能最佳
  fake-ip-range: 198.18.0.1/16

  # 国内 DNS
  nameserver:
    - 223.5.5.5                    # 阿里 DNS
    - 119.29.29.29                 # 腾讯 DNS
    - 114.114.114.114

  # 国外 DNS(走代理)
  fallback:
    - https://1.1.1.1/dns-query    # Cloudflare DNS over HTTPS
    - https://8.8.8.8/dns-query    # Google DNS over HTTPS
    - tls://8.8.8.8:853            # Google DNS over TLS

  # 域名分流
  nameserver-policy:
    "geosite:cn":
      - 223.5.5.5
      - 119.29.29.29
    "geosite:geolocation-!cn":
      - https://1.1.1.1/dns-query

  # 禁用 fallback 的情况
  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4

DNS 模式对比

模式 优点 缺点
fake-ip 速度最快,无需等待 DNS 少数应用可能不兼容
redir-host 兼容性好 需要等待 DNS 解析,略慢
💡 建议:优先使用 fake-ip 模式,只有在遇到兼容性问题时才切换到 redir-host。

性能优化技巧

1. 使用 no-resolve 参数

对于 IP-CIDR 规则,添加 no-resolve 可以跳过 DNS 查询,加快匹配速度。

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve

2. 优化 GEOIP 数据库

使用更精确的 GeoIP 数据库:

geodata-mode: true
geox-url:
  geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
  geosite: "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"

3. 缓存设置

合理设置缓存可以减少重复查询:

profile:
  store-selected: true             # 保存节点选择
  store-fake-ip: true              # 保存 Fake-IP 缓存

常见场景配置

场景1:看 Netflix/Disney+

rules:
  - RULE-SET,netflix,🎬 Netflix节点组
  - RULE-SET,disney,🎬 Disney节点组

需要配置对应的规则集和节点组。

场景2:游戏加速

游戏通常需要 UDP 支持和低延迟节点:

rules:
  - DOMAIN-SUFFIX,steampowered.com,🎮 游戏
  - DOMAIN-KEYWORD,epic,🎮 游戏
  - DOMAIN-SUFFIX,battle.net,🎮 游戏

节点组选择低延迟节点,并确保启用 TUN 模式,因为游戏通常不支持系统代理。

场景3:广告拦截

rules:
  # 广告域名
  - DOMAIN-SUFFIX,googlesyndication.com,REJECT
  - DOMAIN-SUFFIX,googleadservices.com,REJECT
  - DOMAIN-KEYWORD,adservice,REJECT

  # 或使用规则集
  - RULE-SET,reject,REJECT

调试和验证

查看规则匹配

大多数 Clash 客户端都有"连接"或"日志"页面,可以看到每个请求匹配了哪条规则。

客户端推荐:

常用测试方法

  1. 测试域名解析: nslookup google.com
  2. 测试 IP 归属:访问 ip.sb 或 ip.gs
  3. 测试连接速度:Speedtest 或 Fast.com

常见错误避免

❌ 错误 1:规则重复或冲突
rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  - DOMAIN,www.google.com,DIRECT   # 冲突!第一条已经匹配了
❌ 错误 2:GEOIP 位置不当
rules:
  - GEOIP,CN,DIRECT                # 太靠前!
  - DOMAIN-SUFFIX,baidu.com,DIRECT # 永远不会生效

应该把明确的域名规则放在 GEOIP 前面。

❌ 错误 3:忘记兜底规则
rules:
  - DOMAIN-SUFFIX,google.com,PROXY
  # 缺少 MATCH 规则!其他请求会怎么处理?

必须有 MATCH 兜底规则。

高级技巧

1. 进程规则(Windows/macOS)

根据应用程序指定规则:

rules:
  - PROCESS-NAME,Telegram.exe,PROXY
  - PROCESS-NAME,WeChat.exe,DIRECT

2. 端口规则

rules:
  - DST-PORT,80,DIRECT             # HTTP 端口
  - DST-PORT,443,PROXY             # HTTPS 端口

3. 脚本规则(Clash Premium)

使用 JavaScript 编写复杂逻辑:

script:
  code: |
    def main(ctx, metadata):
      if metadata["dst_port"] == 443:
        return "PROXY"
      return "DIRECT"

总结

规则配置是 Clash 的核心,直接影响使用体验。一套好的规则配置应该做到:

  1. 结构清晰 - 按优先级分层,易于维护
  2. 性能优先 - 常用规则放前面,减少匹配次数
  3. 合理分流 - 国内直连,国外代理,广告拦截
  4. DNS 优化 - 使用 fake-ip 模式,配置 DNS 分流
  5. 持续更新 - 使用规则集,保持规则时效性

记住,没有完美的配置,只有最适合你的配置。根据自己的使用场景,不断调整和优化,才能获得最佳体验。

🔗 推荐规则集:
• ACL4SSR: github.com/ACL4SSR/ACL4SSR
• Loyalsoldier: github.com/Loyalsoldier/clash-rules