Clash 文档中心中文使用手册

Clash 如何记录跳转次数而不公开完整订阅地址

Clash 如何记录跳转次数而不公开完整订阅地址。了解适用条件、操作步骤与常见问题的排查方法。

更新于 2026/10/4

排查订阅跳转时需要知道“跳了几次、每一跳是什么性质”,但不应当把完整订阅 URL 写进对外记录。完整地址常带一次性路径或查询串,公开后等于交出取配置的能力。HTTP 状态码本身已经足够用来计数:300–399 表示发生了重定向消息,200–299 表示某次请求成功完成。对外只保留状态码序列、是否改主机、是否改方法,即可说明跳转次数,而无需复制原 URI。

适用条件与最小记录集

适用于需要向他人说明“发生了几次跳转”或自己留档对比,但必须避免泄露完整订阅地址的场景。依据是 MDN 对五类状态码的划分及 RFC 9110 定义;未列出的码可能是服务器自定义响应,计数时可标为非标准,不要当成某一种标准 3xx。本页不涉及客户端菜单,也不要求公开 Location 全文。

最小记录建议只含:跳序号、三位状态码、该类是 3xx 还是最终 2xx/4xx/5xx、主机是否相对上一跳发生变化(是/否)、方法是否被规范要求保持或改为 GET。路径、查询串、完整 Location 留在不外传的本地侧。

哪些码算一次跳转,哪些不算

计入“跳转次数”的,应是重定向类:

  • 301、308:永久改址,新 URL 在响应或 Location 中给出;各计一次跳转,并另标“永久”。
  • 302、307:临时改址,今后仍应使用原来的 URI;各计一次,并标“临时”。二者差别是 307 不得改变方法。
  • 303:要求用 GET 取另一 URI,计一次,并标“改方法为 GET”。
  • 300:多种可能响应且无标准化自动选择,若客户端仍跟随了某一选项,计一次并标明“无标准自动选择”。

下列不算跳转次数,但应作为链的终止或旁注:200(GET 表示资源已在消息体中传输)、204(无内容)、304(未修改,继续用缓存,不提供新 URI)、401/403 等客户端错误、5xx 服务器错误。305 已弃用,306 不再使用,若出现可记为异常码,不要当作正规跳转策略。

主机是否变化只记布尔值即可证明“最终来源是否离开原主机”,不必写出完整域名列表以外的路径。414 表示 URI 长于服务器愿意解释的长度,说明记录或拼接 Location 时可能把查询串扩得过大,应停止继续拼接完整地址对外粘贴。431 表示请求头过大,同样应缩小外发字段,而不是把订阅 URL 整段放进说明。

次数异常与循环怎样记

次数本身只是 3xx 的条数,但要防止把循环写成“很多次成功跳转”。508 表示处理请求时检测到无限循环,一旦出现,跳转次数记录应作废并改标“循环检测”,不要再累加。即使没有 508,若状态码序列在有限几个主机之间重复,也应停止跟随,并在对外记录中写“序列重复”,仍不要贴完整 URL。

429 表示单位时间内请求过多。为核对跳转而反复请求同一订阅地址,可能触发限速,此时应记下 429 并暂停,而不是继续增加跳转计数。503 为暂时不可用,可能带 Retry-After,属于终止条件,不是新的一跳。502/504 是网关失败,同样终止计数。

记录失败或不得不对外说明时的下一步

若只能看到最终页面、看不到状态码,先补齐每一跳的三位码再计数;缺码的环节标为未知,不要用页面标题代替 3xx。若工具默认打印完整 Location,对外转发前删除路径与查询,只留“主机是否变化 + 状态码”。需要证明永久迁址时,写清出现过 301 或 308 即可,不必贴新地址全文;需要证明仍应使用原订阅 URI 时,写清 302 或 307。最终不是 2xx、或 200 但结合上下文是登录资源时,次数记录只能说明“走过几跳”,不能说明已取到配置。未列出的状态码单独列为非标准,不并入 3xx 计数。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status

返回文章索引使用教程