CClash 中文社区选择客户端 ↗
首页/博客
操作教程

Clash 配置代理集合时怎样整理缓存文件路径

Clash 配置代理集合时怎样整理缓存文件路径。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

在 mihomo 里配置 proxy-providers 时,本地缓存落到哪个文件、文件名如何生成,由 path、启动目录和集合类型共同决定。下面只说明怎样整理这些缓存路径:先看官方限制,再按步骤落盘,最后在失败时按依据回退。不涉及健康检查、节点过滤或名称覆写。

适用条件

先确认每条集合的 type。文档规定 type 必须填写,可选 http、file、inline。需要整理磁盘路径的是前两类:http 会把远程内容写到本地文件,file 直接读取本地文件。inline 以 payload 内嵌节点,通常没有独立缓存文件,不必纳入路径清单。

同时核对三项硬条件。name 必须填写且不能重复,建议不要和策略组名称重复。path 可选,但一旦填写就不可与其他集合重复。启动参数 -d 指定的目录即 HomeDir。出于安全,路径只允许落在 HomeDir 内;若要存到其他位置,必须设置环境变量 SAFE_PATHS。该变量语法与操作系统 PATH 相同:Windows 以分号分割,其他系统以冒号分割。不满足上述条件时,先改配置再谈“整理目录”。

按文档整理 path

第一步,列出全部 proxy-providers 的 name、type、url(仅 http)和 path。把未写 path 的 http 条目单独标出。文档写明:不填写时会使用 url 的 MD5 作为此文件的文件名。这些隐式文件名必须和手写路径放在同一张清单里去重,否则补写 path 或新增集合时容易覆盖旧缓存。

第二步,为需要落盘的集合统一使用相对路径,并固定到 HomeDir 下的同一子目录。文档示例为 path: ./proxy_providers/provider1.yaml。相对路径相对 HomeDir 解析,因此 -d 指向的目录就是缓存根。一条集合对应一个文件,不要让多个订阅写入同一路径。文件名建议与 name 对应,便于日后对照,但对应关系不能代替“路径不可重复”这条规则。

第三步,只有在确实需要离开 HomeDir 时,才设置 SAFE_PATHS,再写目标路径。未设置该变量却指向目录外,不符合文档给出的安全限制,整理结果不能视为有效。

第四步,做唯一性复核:name 不重复、显式 path 不重复、隐式 MD5 文件名不与任何显式 path 冲突。判断依据是:每条 http 或 file 集合都能对应到 HomeDir(或 SAFE_PATHS 允许的目录)里互不重叠的一个文件,而不是目录看起来整齐。

失败时下一步

加载或更新出现路径相关错误时,按顺序核对:当前进程的 -d 是否就是你放置缓存的根目录;path 是否越出 HomeDir 且未加入 SAFE_PATHS;是否两条集合共用一个 path;相对路径的层级是否写错。路径本身合法但仍没有文件或文件不完整,再查 http 的 url、更新间隔 interval(单位为秒)、下载是否走了指定的 proxy,以及 size-limit(默认 0 表示不限制,单位为字节)。解析失败时,文档允许使用 payload 作为备用代理,这只能维持节点可用,不能代替把缓存路径改正确。

https://wiki.metacubex.one/config/proxy-providers/