VPN07

Clash Provider外部规则集进阶配置:GeoIP数据库订阅与自定义分流规则完全指南2026

2026-03-03 阅读约22分钟 进阶教程 Clash/Mihomo 规则分流

文章说明:本文面向已掌握 Clash 基本使用的用户,深入讲解 rule-provider(外部规则集)的订阅与配置方法、GeoIP / GeoSite 数据库的手动更新与自动刷新、以及如何编写个性化自定义分流规则。适用于 Clash Verge Rev、Mihomo Party、ClashX Meta、CMFA 等所有基于 Mihomo 内核的工具。

规则体系基础:内联规则 vs 外部规则集

Clash/Mihomo 中有两种方式定义分流规则:

📄 内联规则(rules)

直接写在配置文件的 rules: 段,优点是简单直接,缺点是规则集庞大时配置文件臃肿,且无法自动更新。

rules:
  - DOMAIN,google.com,Proxy
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - GEOIP,CN,DIRECT

📦 外部规则集(rule-provider)

引用远程或本地的规则文件,支持定时自动更新,可以订阅社区维护的高质量规则集(如 Loyalsoldier),配置文件干净整洁。

rule-providers:
  google:
    url: "https://example.com/google.yaml"
    interval: 86400

rule-provider 完整配置语法

rule-providers:
  # 规则集名称(自定义,后续 rules 中引用)
  reject:
    type: http            # http(远程URL)或 file(本地文件)
    behavior: domain      # domain | ipcidr | classical
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml  # 本地缓存路径
    interval: 86400       # 更新间隔(秒):86400 = 24小时

  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

  cncidr:
    type: http
    behavior: ipcidr      # IP 段规则用 ipcidr 类型
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

rules:
  # 引用规则集(格式:RULE-SET,规则集名称,策略)
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,Proxy
  - RULE-SET,direct,DIRECT
  - RULE-SET,cncidr,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

📌 behavior 类型说明

domain
仅包含域名,内部自动匹配子域名,效率最高,体积最小
ipcidr
仅包含 IP 段(CIDR 格式),用于国内外 IP 分流
classical
经典格式,支持所有规则类型但效率最低,体积最大

GeoIP / GeoSite 数据库管理

Mihomo 内核默认使用 GeoIP.datGeoSite.dat(来自 v2fly 项目),也支持更精准的 mmdb 格式(MaxMind GeoLite2)以及新的 .mrs 格式(Mihomo Rule Set Binary)。

手动更新 GeoIP 数据库

# Mihomo 配置文件中指定数据库路径
geodata-mode: true   # true=.dat格式 | false=mmdb格式(更精准)
geo-auto-update: true
geo-update-interval: 24   # 24小时自动更新

# 自定义数据源(推荐使用 MetaCubeX 维护的版本)
geox-url:
  geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
  geosite: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat"
  mmdb: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country.mmdb"
  asn: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/GeoLite2-ASN.mmdb"

GeoSite 常用分类

@cn
国内网站域名集合
@ads
广告域名合集
@google
谷歌服务域名
@category-games
游戏平台域名
rules:
  # 使用 GeoSite 规则
  - GEOSITE,ads,REJECT              # 广告域名直接拒绝
  - GEOSITE,google,Proxy            # 谷歌相关走代理
  - GEOSITE,cn,DIRECT               # 国内网站直连
  - GEOIP,CN,DIRECT                 # 国内 IP 直连
  - GEOIP,private,DIRECT            # 私有 IP 直连
  - MATCH,Proxy                     # 兜底规则

自定义规则集文件编写

当现有规则集无法满足需求时,可以创建本地规则文件并通过 type: file 引用。

domain 类型规则文件(YAML)

# 文件:./ruleset/my-proxy.yaml
payload:
  - '+.openai.com'        # 匹配 openai.com 及所有子域名
  - '+.anthropic.com'
  - '+.claude.ai'
  - 'perplexity.ai'       # 精确匹配(不含子域名)
  - '+.github.com'
  - '+.notion.so'

classical 类型规则文件(支持所有规则语法)

# 文件:./ruleset/my-rules.yaml
payload:
  - DOMAIN-SUFFIX,openai.com       # 域名后缀匹配
  - DOMAIN-KEYWORD,google          # 域名关键词匹配
  - IP-CIDR,8.8.8.8/32             # 精确 IP 匹配
  - IP-CIDR,1.1.1.0/24             # IP 段匹配
  - PROCESS-NAME,Teams.exe         # 进程名匹配(Mihomo 支持)

在配置文件中引用本地规则集

rule-providers:
  my-proxy:
    type: file            # 本地文件类型
    behavior: domain
    path: ./ruleset/my-proxy.yaml   # 相对路径

  my-rules:
    type: file
    behavior: classical
    path: ./ruleset/my-rules.yaml

rules:
  - RULE-SET,my-rules,Proxy        # 自定义规则优先匹配
  - RULE-SET,my-proxy,Proxy
  - RULE-SET,reject,REJECT
  - RULE-SET,direct,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

推荐优质规则集资源

🥇

Loyalsoldier/clash-rules

社区最流行的 Clash 规则集,涵盖广告拦截、代理域名、直连域名、国内 IP 段,持续维护更新,也是大多数订阅转换工具的默认规则集来源。

🥈

MetaCubeX/meta-rules-dat

Mihomo 官方维护的 GeoIP/GeoSite 数据库,支持 .dat / .mmdb / .mrs 三种格式,数据比 v2fly 版本更新更及时。

🥉

blackmatrix7/ios_rule_script

覆盖各平台细分应用的规则集(流媒体、社交媒体、游戏等),支持 Clash / Surge / Quantumult X 多格式输出,适合针对特定 App 做精细化分流。

常见问题与解决方案

Q1:rule-provider 下载失败,显示 "failed to download provider" 怎么办?

这是外部规则集 URL 无法访问的问题。解决方案:
① 先手动确认代理是否正常工作(排除网络问题)
② 将规则集 URL 替换为 jsDelivr CDN 加速版本(cdn.jsdelivr.net/gh/...
③ 规则集下载本身也需要走代理,确认客户端在拉取规则时有有效的出口节点
④ 临时将规则集下载到本地,改用 type: file

Q2:规则集更新了但效果没变,如何强制刷新?

在 Clash Verge Rev / Mihomo Party 中,进入"代理 → 规则集"面板,找到对应规则集,点击刷新按钮;或在 Mihomo Dashboard(Web UI)的 "Rule Providers" 页点击"更新"。如果界面没有此功能,删除 path 指向的本地缓存文件后重启客户端即可强制重新下载。

Q3:behavior 写错会怎样?比如把 domain 类型的文件写成 ipcidr?

Mihomo 会报解析错误并忽略该规则集,导致相关规则完全失效。domain 类型规则文件里只能有域名条目,ipcidr 类型只能有 IP 段,classical 类型才能混合使用。规则集加载失败通常会在日志中显示 "invalid payload"。

Q4:订阅转换工具(sub-converter)生成的配置和手写的有什么区别?

订阅转换工具(如 sub-web、ACL4SSR)会自动生成包含 rule-provider 的完整配置,使用 Loyalsoldier 或 ACL4SSR 规则集,对大多数用户来说"开箱即用"。区别在于:手写配置可以精细控制哪些应用/域名走哪个节点组,而订阅转换只能做粗粒度分类。两者可以结合使用:用订阅转换生成基础框架,再手动追加个性化规则。

Q5:GeoIP 数据库显示的国家/地区信息不准,如何换用更精准的数据库?

默认的 GeoIP.dat 来自 v2fly,精度一般。推荐换用 MaxMind GeoLite2 mmdb 格式,在配置中设置 geodata-mode: false 并指定 mmdb 路径。MetaCubeX 提供每日更新的免费版本,国内 IP 识别准确率明显更高。

完整进阶配置模板

以下是一个整合了外部规则集、自定义规则、GeoSite/GeoIP 的完整进阶配置示例框架:

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false

# GeoIP 数据库配置
geodata-mode: false  # 使用 mmdb 格式
geo-auto-update: true
geo-update-interval: 24

geox-url:
  geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat"
  mmdb: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country.mmdb"

proxy-providers:
  # 节点订阅(VPN07 订阅链接)
  vpn07:
    type: http
    url: "你的VPN07订阅链接"
    interval: 3600
    health-check:
      enable: true
      url: https://www.gstatic.com/generate_204
      interval: 300

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

proxy-groups:
  - name: "🚀 自动选速"
    type: url-test
    use: [vpn07]
    url: "https://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🔀 手动选择"
    type: select
    use: [vpn07]
    proxies: [DIRECT]

rules:
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,🚀 自动选速
  - RULE-SET,direct,DIRECT
  - RULE-SET,cncidr,DIRECT
  - GEOIP,LAN,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,🚀 自动选速

订阅转换工具与 rule-provider 的配合使用

大多数 VPN 机场提供的原始订阅链接是 Base64 格式(v2ray/ss),需要通过订阅转换工具(sub-converter)转换为带有 rule-provider 配置的完整 Clash YAML。了解这一过程有助于更好地定制你的分流策略。

📦 订阅转换工具选择

  • sub-web(subconverter 前端)— 最流行
  • ACL4SSR Online — 集成 ACL4SSR 规则集
  • Clash Verge Rev 内置转换 — 直接导入处理
  • 自建 subconverter — 完全自定义

⚙️ 转换时的关键选项

  • 规则集来源:Loyalsoldier vs ACL4SSR
  • 策略组类型:url-test / select 混合
  • 附加规则:可选添加广告过滤规则集
  • UDP 支持:确保 udp: true(影响游戏)

规则优先级与匹配顺序详解

Clash/Mihomo 的规则按从上到下的顺序匹配,第一条匹配的规则生效,后续规则被忽略。这一特性决定了规则集的排列顺序至关重要:

rules:
  # ✅ 正确顺序:从最具体到最宽泛
  - RULE-SET,reject,REJECT         # 1. 最高优先:广告/恶意域名拦截
  - RULE-SET,my-custom,Proxy       # 2. 个人自定义规则(覆盖后续通用规则)
  - RULE-SET,proxy,Proxy           # 3. 通用代理域名
  - RULE-SET,direct,DIRECT         # 4. 通用直连域名
  - RULE-SET,cncidr,DIRECT         # 5. 国内 IP 段
  - GEOIP,LAN,DIRECT               # 6. 局域网地址
  - GEOIP,CN,DIRECT                # 7. 国内 IP(最终兜底)
  - MATCH,Proxy                    # 8. 兜底规则(所有未匹配流量)

# ❌ 错误:把 MATCH 放在中间会导致后续规则永远不生效

移动端(iOS/Android)rule-provider 使用注意

📱 iOS(Stash/Surge)

Stash(iOS Clash Premium 最佳实现)完全支持 rule-provider 语法。Surge iOS 同样支持外部规则集,但语法略有不同(使用 RULE-SET 指令引用本地或 URL 规则文件)。规则集文件缓存在 App 沙盒目录中,跨设备同步需借助 iCloud 或 HTTP 远程链接。

🤖 Android(CMFA/FlClash)

Clash Meta for Android(CMFA)完整支持 rule-provider,规则集文件保存在 /data/user/0/com.github.metacubex.clash.meta/files/ 目录下。FlClash 基于 Clash Meta 引擎,同样完整支持,但 UI 中规则集面板的可视化程度不如桌面版。建议在桌面端配置好后,通过订阅同步方式同步到手机端。

rule-provider 性能优化

规则集的数量和大小直接影响客户端的启动速度和内存占用。以下是优化建议:

⚡ 性能优化技巧

  • 优先使用 domain 类型:内存占用最小,匹配速度最快
  • 避免 classical 类型过多:每条规则都需要逐一解析
  • 合并小规则集:减少 HTTP 请求次数
  • 使用 .mrs 格式(Mihomo 1.18+):二进制格式,加载速度提升数倍

📊 不同格式性能对比

domain YAML解析快 | 体积小
ipcidr YAML解析快 | 体积中
classical YAML解析慢 | 体积大
.mrs 二进制加载最快 | 体积最小
# 使用 .mrs 格式(Mihomo 1.18+ 支持,性能最优)
rule-providers:
  geosite-cn:
    type: http
    behavior: domain
    format: mrs    # 指定使用 mrs 二进制格式
    url: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite-cn.mrs"
    path: ./ruleset/geosite-cn.mrs
    interval: 86400

  geoip-cn:
    type: http
    behavior: ipcidr
    format: mrs
    url: "https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-cn.mrs"
    path: ./ruleset/geoip-cn.mrs
    interval: 86400

rules:
  - RULE-SET,geosite-cn,DIRECT
  - RULE-SET,geoip-cn,DIRECT
  - MATCH,Proxy

注意:format: mrs 参数仅在 Mihomo 1.18.0 及以上版本支持。较旧版本的 Clash Verge Rev 或 Mihomo Party 可能不兼容此格式,建议在升级内核后再切换使用。兼容性最好的格式仍然是标准 YAML 格式。

86400s
推荐更新间隔
domain
推荐behavior类型
3类
规则behavior类型
.mrs
最优性能格式

VPN07 — 进阶配置的最佳节点来源

标准订阅格式 · 70+国家节点 · 千兆带宽

无论多精妙的 rule-provider 配置,都需要优质节点来支撑。VPN07 提供标准 Clash YAML 订阅链接,支持 proxy-provider 格式直接导入,可与 rule-provider 完美配合。覆盖 70+ 国家节点,单节点带宽高达 1000Mbps,稳定运营十年,让你的精细分流配置真正发挥价值。

¥9/月
超低月费
1000Mbps
千兆带宽
70+国家
全球节点
30天退款
无忧保障

相关文章推荐

月费¥9 · 运营十年
免费试用 VPN07