Mihomo 代理集合与规则集合教程(proxy-providers / rule-providers 完整详解)
Clash 中文网编辑部 · 更新于 2026/10/22 · 对照版本 Mihomo(Clash.Meta 内核) v1.19.33
代理集合(proxy-providers)让你把订阅或节点文件“挂”到配置里,在代理组中用 use: 引用;规则集合(rule-providers)让你引用远程规则列表,在规则中用 RULE-SET 引用。 两者都能定时自动更新,是自己维护配置的核心工具。
代理集合(proxy-providers)
基本写法
proxy-providers:
airport-a:
type: http
url: "https://example.com/sub-a"
path: ./providers/airport-a.yaml
interval: 86400
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
| 字段 | 说明 |
|---|---|
名称(airport-a) |
集合名,代理组中通过 use 引用 |
type |
http(远程下载)、file(本地文件)、inline(直接写在配置里) |
url |
订阅地址(http 类型) |
path |
本地缓存路径,下载失败时使用缓存 |
interval |
自动更新间隔(秒),86400 为一天 |
proxy |
下载该订阅时使用的代理(可选,如 DIRECT) |
header |
自定义请求头,如 User-Agent(可选) |
health-check |
定时测试集合中节点的可用性 |
订阅内容可以是 Clash 配置(取其中的 proxies),也可以是节点链接列表或 Base64 订阅,内核会自动解析。
在代理组中引用
proxy-groups:
- name: 节点选择
type: select
use: [airport-a, airport-b] # 引入两个集合的全部节点
proxies: [DIRECT] # 还可以同时列出普通节点或组
过滤节点
proxy-providers:
airport-a:
type: http
url: "https://example.com/sub-a"
path: ./providers/airport-a.yaml
interval: 86400
filter: "(?i)港|hk|日本|jp" # 只保留名称匹配的节点
exclude-filter: "剩余|到期|官网" # 排除名称匹配的节点
exclude-type: "ss|ssr" # 按协议类型排除
代理组本身也支持 filter、exclude-filter,可以在引用同一个集合时得到不同的子集(例如“香港组”“日本组”)。
批量修改节点:override
override 可以对集合中的所有节点统一修改参数:
proxy-providers:
airport-a:
type: http
url: "https://example.com/sub-a"
path: ./providers/airport-a.yaml
interval: 86400
override:
additional-prefix: "[A] " # 名称前缀,区分不同机场
additional-suffix: "" # 名称后缀
udp: true # 统一开启 UDP
skip-cert-verify: false
dialer-proxy: 前置代理 # 统一走前置代理(链式代理)
常用于:多个机场合并时避免重名、统一添加链式代理入口。
三种类型示例
file:读取本地节点文件
my-nodes:
type: file
path: ./my-nodes.yaml
inline:直接写节点
my-inline:
type: inline
payload:
- name: 自建节点
type: ss
server: my.example.com
port: 443
cipher: 2022-blake3-aes-128-gcm
password: "xxxx"
规则集合(rule-providers)
基本写法
rule-providers:
reject:
type: http
behavior: domain
format: yaml
url: "https://example.com/rules/reject.yaml"
path: ./ruleset/reject.yaml
interval: 86400
cn-ip:
type: http
behavior: ipcidr
format: mrs
url: "https://example.com/rules/cnip.mrs"
path: ./ruleset/cnip.mrs
interval: 86400
rules:
- RULE-SET,reject,REJECT
- RULE-SET,cn-ip,DIRECT,no-resolve
- MATCH,节点选择
behavior:规则集的内容类型
| behavior | 内容 | 文件示例 |
|---|---|---|
| domain | 只有域名 | +.google.com、www.example.com |
| ipcidr | 只有 IP 段 | 1.0.1.0/24、2001:db8::/32 |
| classical | 完整规则(不含策略) | DOMAIN-SUFFIX,google.com、IP-CIDR,1.0.0.0/8、PROCESS-NAME,app.exe |
选择原则:能用 domain / ipcidr 就不用 classical,前两者匹配效率高得多。
format:文件格式
| format | 写法 | 说明 |
|---|---|---|
| yaml | payload: 下的列表 |
默认格式 |
| text | 每行一条 | 更简洁 |
| mrs | 二进制 | 体积小、加载快,仅支持 domain / ipcidr |
yaml 格式示例:
payload:
- "+.google.com"
- "+.youtube.com"
text 格式示例:
+.google.com
+.youtube.com
域名通配符
| 写法 | 匹配 |
|---|---|
example.com |
仅 example.com |
*.example.com |
一级子域名,如 a.example.com |
+.example.com |
example.com 及所有子域名 |
.example.com |
所有子域名(不含 example.com 本身) |
常用规则集来源
| 来源 | 说明 |
|---|---|
| MetaCubeX/meta-rules-dat | Mihomo 官方维护,提供 geosite / geoip 各分类的 mrs、yaml、list 格式 |
| Loyalsoldier/clash-rules | 经典的 Clash 规则集(直连、代理、广告等) |
| blackmatrix7/ios_rule_script | 覆盖大量服务的规则集合 |
引用前务必确认文件内容与 behavior 一致。
在图形客户端中查看与更新
| 客户端 | 位置 |
|---|---|
| Clash Verge Rev | 代理页「代理集合」、规则页「规则集合」 |
| FlClash | 「资源」页 |
| Clash Party | 「外部资源」 |
| Clash Meta for Android | 「外部资源」 |
| Web 面板 | Providers 页面 |
更新失败排查
| 现象 | 原因与解决 |
|---|---|
| 下载超时 | 地址在当前网络无法访问;设置 proxy: 节点选择 让下载走代理,或换 CDN 地址 |
| 规则集为空 / 无法匹配 | behavior 与内容不一致 |
| mrs 无法读取 | mrs 文件与 behavior 不匹配,或文件损坏 |
| 节点名冲突 | 多个集合有同名节点,用 override.additional-prefix 区分 |
相关教程
常见问题
behavior 写错了会怎样?
规则集内容和 behavior 不匹配时会加载失败或无法匹配。只有域名用 domain,只有 IP 段用 ipcidr,混合各种规则类型用 classical。
mrs 格式是什么?
mrs 是 Mihomo 的二进制规则集格式,体积小、加载快、内存占用低,只支持 domain 和 ipcidr 两种 behavior。
代理集合更新失败会怎样?
内核会继续使用 path 指定的本地缓存文件,所以 path 很重要。只要曾经成功下载过一次,即使订阅暂时无法访问也不影响使用。
proxy-providers 和直接把订阅当配置用有什么区别?
直接用订阅时节点、分组、规则都由机场决定;用 proxy-providers 时只从订阅中取节点,分组和规则由你自己掌控,还能合并多个订阅。
还没安装 Mihomo(Clash.Meta 内核)?
最新版 v1.19.33,直链 GitHub 官方安装包。