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

Clash 怎样区分代理集合下载与健康检查

Clash 怎样区分代理集合下载与健康检查。了解适用条件、操作步骤与常见问题的排查方法。

编辑部 · 更新 2026-10-04

代理集合的下载更新和健康检查在文档中是两块并列配置,不是同一次请求的两个别名。下载解决如何把集合内容取到本地并按周期刷新;健康检查解决对已经得到的节点做延迟测试。适用条件要按类型区分:type 为 http 时必须配置用于拉取集合的 url,并可用 interval、proxy、header、path、size-limit 等字段约束更新过程;type 为 file 或 inline 时没有“经超文本请求拉取订阅”这一步,但仍可单独写 health-check。判断是否区分清楚,只要看你改的是哪一组键:改更新周期并不能让延迟测试开始,打开检查开关也不能代替把集合文件下载下来。

下载与更新对应的字段

name 必须填写且不能重复,建议不要和策略组名称重复。type 必须填写,可选 http、file、inline。类型为 http 时需要 url。path 可选,不可重复;不填写时会使用 url 的 MD5 作为文件名。出于安全,路径只允许落在 HomeDir(由启动参数 -d 配置)中,若要存到其他位置,需设置 SAFE_PATHS,语法与系统 PATH 相同。interval 是更新该集合的时间,单位为秒。proxy 表示经过指定代理进行下载或更新。size-limit 限制下载文件最大大小,默认 0 表示不限制,单位为字节。header 用于自定义请求头。若设置 age-secret-key,会尝试解密文档所限定格式的加密内容。判断依据是:集合是否按更新间隔刷新、下载是否走指定代理、是否触达大小限制、解密或路径限制是否导致根本没有文件。这些结果只说明“集合有没有取到”,不说明节点延迟测试有没有做完。

健康检查使用另一套地址与间隔

health-check.enable 决定是否启用延迟测试。health-check.url 是检查地址,必须写在 health-check 下面,不能和集合 url 混用。health-check.interval 是检查间隔,单位同样是秒,但只服务测试周期。health-check.timeout 单位是毫秒。lazy 默认为 true,不使用该集合节点时不进行测试。expected-status 对照期望状态。判断依据是:只有启用且未被懒惰状态跳过时,才会按检查地址和超时去做延迟测试。因此会出现“下载日志显示集合已更新,但没有任何延迟数据”的情况,这在 lazy 为真且集合未被使用时是文档定义的行为,不是更新失败。反过来,检查失败也不能倒推 path 写错或 size-limit 过小,除非集合里其实没有节点可供测试。

对照着改配置以及失败后的下一步

记忆方法可以写成:两个地址、两个间隔、一个仅用于下载的 proxy。操作时先写 type,http 再写集合 url,再写更新间隔,必要时补 proxy、header、size-limit 与 path;然后另起 health-check,逐项写 enable、检查地址、检查间隔、超时、lazy 和期望状态。下载失败时,下一步应查:类型是否为 http 却漏了 url、请求头是否需要鉴权、下载代理是否指向可用于更新的出站、文件是否超过大小限制、加密集合是否满足文档对密钥与格式的说明;路径是否落在允许目录之外。http 或 file 解析失败时,可用 payload 作为备用代理。下载已成功但没有检查结果时,应查 enable 与 lazy,而不是把更新间隔改得更短就当作已经测过。始终先分清当前失败的是取集合还是延迟测试,再改对应字段。

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