教程 阅读约 14 分钟

Clash Meta 规则集自动更新怎么设?rule-providers 间隔与 URL 分步(2026)

当你已经在规则里用到 GEOIPGEOSITE 或第三方整理的 RULE-SET,却仍搞不懂「多久向后端拉一次」「urlpath 谁决定落地文件名」「为什么改了 YAML 看起来像没更新」——多半是 rule-providers(规则提供者)这一条链路还没对齐。本文只做自动更新节拍与远端/本地路径,不写冗长的规则对战;语法细节可与站内 GEO/域名分流姊妹篇互补。

Clash 编辑组 Clash Meta · Mihomo · rule-providers · interval · GEOIP · GEOSITE

先分清三件事:geodata、rule-providers、rules 里的 RULE-SET

Clash Meta(俗称 Mihomo 内核系)里,「按国家/地区走代理」常常写成 GEOIP,CN,DIRECT,「按站点类别」写成 GEOSITE,category,Proxy:这类匹配默认依赖内置地理与站点数据库文件(发行版或客户端自带的更新通道)。它与你在顶层写的 rule-providers: 并不是同一个菜单——后者用于声明一块可由 HTTP 定时同步或用本地文件挂载的规则素材,再在 rules: 里通过 RULE-SET 指名消费。

若你把 GEO/SITE 与 RULE-SET 混为一谈,就会在面板里疯狂找「给 GEOIP 填 interval」——多数情况下并不存在这条捷径;要做的是:认清谁负责数据库版本、谁负责远端规则 YAML/二进制规则集。本站姊妹篇 Clash Meta GEOIP 与 GEOSITE 规则怎么写侧重规则语法与顺序;本篇只管远端提供者三条字段:urlpathinterval

1最小可读骨架:rule-providers 里写什么

下面是一段演示性质的 YAML:名字可以自定;关键是 type: http 时同时具备可下载地址本地缓存路径interval 控制在尝试周期性刷新时的节拍——内核不会在每一次匹配请求时都下载整文件,而是维护本地副本并在计时到期后向后端询问是否有新版本。

rule-providers:
  remote-geosite-sample:
    type: http
    behavior: domain
    format: yaml
    url: "https://example.com/rules/geosite-sample.yaml"
    path: ./ruleset/geosite-sample.yaml
    interval: 86400

rules:
  - RULE-SET,remote-geosite-sample,Proxy
  - MATCH,DIRECT

behaviorformat 需与实际文件结构一致(例如 domainclassical、是否使用较新的 mrs 等);填错会导致解析失败或静默跳过某些条目——这类属于素材格式问题,不是 interval 能修的。若你只引用本地静态文件,可以改用 type: file 并省略 urlinterval,改由你自己在外部定时替换文件。

提示:片段里的 URL 仅为占位;请替换为你信任的托管地址,并尽量避免使用会在浏览器外失效的短期签名链接作为长跑依赖。

2interval 到底管什么、不管什么

在常见 Mihomo 配置语义里,interval计:3600≈一小时,86400≈一天。它约束的是后台调度「要不要去问远端」的节奏,而不是「规则命中延迟」:命中始终是本地查表。把它调到极小并不会让你的网页更快,只会更容易被视为高频爬虫或撞上 CDN/对象存储的请求配额

反过来,把 interval 拉到非常大(例如数周)意味着你只能容忍上游清单长时间不增量同步——对个人自建可以接受;若上游每天都在加减域名集合,你就应在可承受的礼节范围内适度缩短,并在变更密集期手动触发 reload配合核验。

3urlpath 的配合方式

可以把 path 理解为磁盘上的缓存落点首次成功下载后会写入该路径(目录需存在或可创建);后续周期更新会在同名路径上覆盖或原子替换。url 则是素材真相来源:请选择直链稳定、MIME 与内容一致的 HTTPS;镜像站轮换时要注意哈希是否与上游同步。

相对路径解析依赖于当前工作目录:在不同 GUI 客户端、Docker 卷挂载或服务单元里,这一基准目录未必相同。遇到「日志提示写入拒绝」或「看似从未生成缓存」,第一时间改成绝对路径并对照宿主用户对目录的写权限。CLI/容器场景还要确认持久化卷是否挂载到了声明的 path 前缀。

4把提供者接到 rules::顺序仍然说了算

RULE-SET,name,policy 一行只是把先前声明的素材挂进判定链表写在前面的优先,一旦被更靠前的域名/进程/IPCIDR 规则命中,后面的集合条目根本不会被执行。频繁误以为「我更新了规则集却仍直连」,实际是MATCH 或更宽泛的规则更早吃掉流量——请先对照 Clash Meta 规则顺序与 MATCH做一次自上而下巡视。

策略名(上例中的 Proxy)必须在你的 proxy-groups 或等价段落里真实存在;拼写大小写不一致会在载入阶段直接报错或退回到意外默认路径。

5生效核查:首轮下载与周期性日志

保存配置并Reload/Restart后,建议按顺序做四步:① 外部控制器或日志里确认无 YAML 语法报错;② 文件系统检查 path 对应文件时间戳是否刷新;③ 随机抽取集合中的域名做一次期望路径 traceroute/连接日志对照(排除 DNS 伪域名);④ 等待略长于一个 interval 的窗口,看第二轮调度是否稳定。

若首轮即失败,常见信号是 TLS 握手异常、HTTP 403/302 到登录页、或被透明代理劫持替换 Body——这些都属于传输层/权限故事,缩小 interval 只会更快耗尽配额。此时应先修正 URL、证书信任链或出站路径,再继续谈自动更新。

礼节:开源规则集合的作者同样在为带宽买单;默认优先小时/天级节拍,遇到发布会或清单暴增时再手动刷新配合观测即可。

与 GEOIP/GEOSITE「数据库更新」如何并行思考

实务里经常是双层拼图:内核自带的 GEOIP/GEOSITE 负责大范围 sane defaults;而 rule-providers 拉的细分站点清单补充长尾站点或托管方自定义条目。两者可以同时存在,但别让 RULE-SET 与同主题的 GEOSITE 规则在顺序上互相打架——选定一条为主线,另一条降级为补丁层。

若你只使用订阅模板生成的 Profile,有时提供者已经把 RULE-SET 写好而你未见源码:可以在可视化编辑器或外部 YAML diff 中搜索关键字 rule-providers,核对interval 是否与机场公告/托管 SLA 对齐,再把无谓的「每分钟刷新」改回合理值。

仍未解决?按现象分流

缓存从不落地:优先权限与工作目录;其次核对 HTTPS 是否必须经由特定出口。文件在变但策略不降:几乎都是 rules 顺序或 DNS/嗅探域名不一致。间歇 429:拉长 interval、错峰多台设备同时使用同一托管镜像。想用 mixin 覆写 interval:可参考 Mihomo mixin 合并订阅与规则把补丁层与上游基准分离,降低手工改订阅主体的频率。

结语

rule-providers 的本质是把「远程清单」变成「可控节奏的本地素材」,再用 RULE-SET 嵌入判定链。写好 urlpathinterval 三件外套之后,剩下的大头永远是顺序、DNS 真相域与策略组是否存在——把这些交给姊妹专题即可。

相比之下,自行在各大仓库翻 Fragment、比对字段命名与缓存路径,既费时也容易漏掉客户端对工作目录的隐式假设。Clash 一侧整合了常用Meta/Mihomo系桌面发行入口与文档索引,更适合希望「拿到稳定介质再继续微调 YAML」的读者;若你希望减少手写节拍失误,又不牺牲可视化检视日志的能力,比起散落搜索 Releases,直接从归档挑选匹配的图形客户端通常更省心。

你可以免费下载 Clash,加载现有 Profile 后在本站顺序指引下微调 rule-providers,对齐 interval 与本地缓存路径,再用两轮日志核对自动更新是否符合预期。

Clash Meta · rule-providers 一条龙 远程规则集

可视化载入 Profile、检视 YAML diff,并把远端 RULE-SET 缓存与健康日志放在一起读;少猜路径、少改冷门字段。

定时同步

interval 与缓存路径对齐托管节拍

YAML 透明

rule-providers 与 RULE-SET 一目了然

日志对齐

首轮下载失败一眼定位

教程串联

GEO/顺序/mixin 分工清晰

上下篇导航

相关阅读

rule-providers 节拍

对齐 interval、path 与 RULE-SET 顺序后,再用日志与文件时间戳核对两轮刷新。

免费下载客户端