安全与隐私 · Clash 技术博客

Clash 订阅链接泄露怎么办?Token 重置、日志脱敏与转换网站风险

订阅 URL 一旦被公开,改客户端里的显示名称没有作用。应先让旧 token 失效,再清理截图、日志和转换网站中留下的副本。

  • 订阅安全
  • Token
  • 隐私
  • 日志脱敏
本文目录

先确认泄露的是订阅链接、配置正文,还是控制器密钥

订阅链接不是普通下载地址。URL 里的 token 往往足以反复取得整份节点配置,所以把它贴进公开群聊、截图、工单或在线转换站,应按凭据泄露处理,而不是等到流量异常才行动。

还要看暴露范围。只有订阅 URL 时,重置链接通常能切断后续下载;如果完整 YAML 也被公开,其中可能已经包含服务器地址、UUID、密码或私钥,单纯换订阅 token 不会让这份旧配置失效。Dashboard 的 secret、服务网站账号密码则属于另外的凭据,需要分别轮换。

暴露内容与处置范围

暴露内容别人可能获得什么必须处理
完整订阅 URL持续下载或更新你的配置重置/吊销订阅链接,更新所有客户端
原始 YAML 或二维码文件内现有节点凭据联系提供方判断是否需要轮换节点凭据
服务网站账号套餐、设备、支付或订阅管理权限改密码、退出会话、开启可用的二次验证
external-controller secret在端口可达时控制 Mihomo轮换 secret,并收紧监听与防火墙

先让旧凭据失效,再删除帖子和截图

发现泄露后的第一步是进入订阅服务自己的面板,寻找“重置订阅”“更新订阅地址”“吊销链接”或类似操作。若面板没有入口,立即联系服务方,说明需要让旧 URL 失效。只删除公开消息不够:链接可能已经被机器人、浏览器缓存或其他人保存。

完成重置后,把新链接先存入密码管理器,不要立刻发给所有设备。用一个客户端确认新地址能更新,再通过服务面板或受控本地环境检查旧地址;旧地址应返回 401、403、404、失效提示,或不再返回原配置。若它仍能下载完整内容,吊销尚未完成。不要在终端命令、截图或浏览器地址栏里留下第二份完整 token。

应急顺序

  1. 保存最少证据

    记录泄露时间、位置和暴露类型,不再转发完整链接。

  2. 吊销旧 URL

    在服务面板重置;没有自助入口就联系服务方。

  3. 验证旧 URL 失效

    只看状态和是否仍返回配置,不把响应内容写入公开日志。

  4. 更新一台设备

    确认新链接正常后,再替换其他客户端。

  5. 删除公开副本

    撤回帖子、工单附件、截图和代码片段,降低继续传播。

沿着复制路径找一遍,原链接往往不只出现在一个地方

回想你是怎样排障的:是否把 curl 命令贴进终端截图,是否把 URL 放进 Git 仓库、聊天记录、云笔记、浏览器书签、CI 变量或在线 YAML 检查器。含 token 的查询参数也可能进入 Web 服务器访问日志和 Shell 历史。

清理这些副本的目的不是让旧 token 重新安全,而是避免新成员继续误用,也避免搜索引擎或协作工具长期展示敏感信息。已经提交到 Git 的内容不能只改最新文件,还要按仓库流程清理历史并轮换凭据;任何历史重写都不能替代吊销。

常被遗漏的位置

  • 聊天群、论坛和客服工单附件
  • 截图中的地址栏、二维码和终端命令
  • Git commit、Issue、CI 日志与环境变量
  • Shell 历史、剪贴板同步和云笔记
  • 在线订阅转换、YAML 校验或测速网页
  • 旧手机、旧电脑和已卸载客户端的备份

完整配置已经外泄时,要继续判断节点凭据能否单独使用

订阅 token 控制的是“能否取得配置”,节点里的 UUID、密码、私钥或其他认证字段控制的是“能否连接服务器”。如果公开内容包含后者,攻击者即使拿不到新订阅,也可能继续使用旧节点,直到服务方更换节点凭据或让它们失效。

用户通常无法自行轮换服务端节点凭据,应把泄露时间和配置类型告诉服务方,请对方确认旧节点是否会被替换、是否能查看异常设备或流量。不要把原 YAML 再发一遍证明问题;只提供打码后的节点名称、协议类型和必要时间。

旧链接确认失效后,再处理设备。先在主设备中删除旧订阅记录,添加新地址并主动更新。看到新的更新时间、策略组和节点列表后,把它设为当前配置。其他电脑、手机、路由器和 WebDAV 同步副本也要逐台替换;只在一台设备更新,会让另一台定时任务继续访问旧 token。

路由器上的 OpenClash、服务器 cron 或容器环境常被遗漏。查看订阅定时更新日志,确认没有持续出现旧 URL 的 401/403。若旧链接虽然失效,却每小时被设备请求,说明还有一份配置尚未清理。

  • 所有正在使用的设备都能以新链接更新
  • 旧链接不再返回原配置
  • 服务面板没有无法识别的设备或异常流量
  • 定时任务日志不再请求旧 token
  • 同步与备份中没有把旧地址重新覆盖回来

不要把原始订阅链接交给陌生转换网站

转换网站必须先读取你的订阅 URL,通常还会下载完整配置,才能输出另一种格式。也就是说,网站运营方有机会看到 token、节点地址和节点凭据。页面使用 HTTPS 只能保护传输过程,不能保证网站不记录、不缓存或不再次使用这些内容。

客户端能直接导入时,不需要先转换。确实存在格式差异时,优先使用订阅服务方自己提供的转换入口,或在自己控制的设备上运行可审查的本地工具。即便如此,也要确认输出链接是否公开可猜、服务是否保存历史以及旧 token 能否随时重置。

遇到转换需求时怎么选

方式风险判断建议
客户端直接导入原始 URL 只交给自己使用的客户端优先选择
服务方官方转换服务方本来就掌握订阅,但仍要看输出链接和保存规则确认说明后使用
自己部署的转换工具数据留在自己控制的环境,但要负责更新和访问控制适合能维护服务的用户
搜索到的免费转换网页运营方、日志和保存期限都不清楚不要提交原始链接

公开日志和截图前,只留下排障真正需要的信息

订阅更新失败时,通常只需要提供客户端与内核版本、HTTP 状态码、Content-Type、报错原文和发生时间。URL 可以保留域名与路径类型,但 token、query 参数、用户名、密码和节点地址应遮蔽。YAML 报错可截取相邻结构,用 example.com 和 REDACTED 替代真实值。

日志里还可能出现 Authorization、UUID、Dashboard secret 和内网地址。脱敏后重新通读一次,不要只遮住浏览器地址栏;二维码和终端历史也可能把同一链接再次暴露。

适合公开工单的写法
客户端:Clash Verge Rev x.y.z
内核:Mihomo x.y.z
订阅域名:example.com
token:REDACTED
HTTP 状态:403
错误:subscription update failed at 10:32

把订阅当密码保管,下一次就不需要靠记忆补救

保存
用密码管理器保存原始链接,配置备份加密,不把 token 写进文件名。
同步
WebDAV、云盘和 CI 使用独立凭据与最小权限,确认共享范围。
截图
先裁掉地址栏、二维码和配置详情,再上传到工单。
日志
启用 URL 脱敏;公开前搜索 token=、Authorization、password、uuid 等字段。
离职或换机
移除旧设备授权,清理本地配置,并在无法确认副本去向时重置订阅。

事故真正结束的标志是:旧订阅无法使用、必要的节点凭据已经轮换、所有合法设备改用新链接,而且公开位置与自动任务里不再出现旧值。仅仅“帖子删掉了”还不算完成。