先分清三件事: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 规则怎么写侧重规则语法与顺序;本篇只管远端提供者三条字段:url、path、interval。
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
behavior 与 format 需与实际文件结构一致(例如 domain、classical、是否使用较新的 mrs 等);填错会导致解析失败或静默跳过某些条目——这类属于素材格式问题,不是 interval 能修的。若你只引用本地静态文件,可以改用 type: file 并省略 url 与 interval,改由你自己在外部定时替换文件。
提示:片段里的 URL 仅为占位;请替换为你信任的托管地址,并尽量避免使用会在浏览器外失效的短期签名链接作为长跑依赖。
2interval 到底管什么、不管什么
在常见 Mihomo 配置语义里,interval 以秒计:3600≈一小时,86400≈一天。它约束的是后台调度「要不要去问远端」的节奏,而不是「规则命中延迟」:命中始终是本地查表。把它调到极小并不会让你的网页更快,只会更容易被视为高频爬虫或撞上 CDN/对象存储的请求配额。
反过来,把 interval 拉到非常大(例如数周)意味着你只能容忍上游清单长时间不增量同步——对个人自建可以接受;若上游每天都在加减域名集合,你就应在可承受的礼节范围内适度缩短,并在变更密集期手动触发 reload配合核验。
3url 与 path 的配合方式
可以把 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 嵌入判定链。写好 url、path、interval 三件外套之后,剩下的大头永远是顺序、DNS 真相域与策略组是否存在——把这些交给姊妹专题即可。
相比之下,自行在各大仓库翻 Fragment、比对字段命名与缓存路径,既费时也容易漏掉客户端对工作目录的隐式假设。Clash 一侧整合了常用Meta/Mihomo系桌面发行入口与文档索引,更适合希望「拿到稳定介质再继续微调 YAML」的读者;若你希望减少手写节拍失误,又不牺牲可视化检视日志的能力,比起散落搜索 Releases,直接从归档挑选匹配的图形客户端通常更省心。
你可以免费下载 Clash,加载现有 Profile 后在本站顺序指引下微调 rule-providers,对齐 interval 与本地缓存路径,再用两轮日志核对自动更新是否符合预期。