本文目录
先确认泄露的是订阅链接、配置正文,还是控制器密钥
订阅链接不是普通下载地址。URL 里的 token 往往足以反复取得整份节点配置,所以把它贴进公开群聊、截图、工单或在线转换站,应按凭据泄露处理,而不是等到流量异常才行动。
还要看暴露范围。只有订阅 URL 时,重置链接通常能切断后续下载;如果完整 YAML 也被公开,其中可能已经包含服务器地址、UUID、密码或私钥,单纯换订阅 token 不会让这份旧配置失效。Dashboard 的 secret、服务网站账号密码则属于另外的凭据,需要分别轮换。
暴露内容与处置范围
| 暴露内容 | 别人可能获得什么 | 必须处理 |
|---|---|---|
| 完整订阅 URL | 持续下载或更新你的配置 | 重置/吊销订阅链接,更新所有客户端 |
| 原始 YAML 或二维码 | 文件内现有节点凭据 | 联系提供方判断是否需要轮换节点凭据 |
| 服务网站账号 | 套餐、设备、支付或订阅管理权限 | 改密码、退出会话、开启可用的二次验证 |
| external-controller secret | 在端口可达时控制 Mihomo | 轮换 secret,并收紧监听与防火墙 |
先让旧凭据失效,再删除帖子和截图
发现泄露后的第一步是进入订阅服务自己的面板,寻找“重置订阅”“更新订阅地址”“吊销链接”或类似操作。若面板没有入口,立即联系服务方,说明需要让旧 URL 失效。只删除公开消息不够:链接可能已经被机器人、浏览器缓存或其他人保存。
完成重置后,把新链接先存入密码管理器,不要立刻发给所有设备。用一个客户端确认新地址能更新,再通过服务面板或受控本地环境检查旧地址;旧地址应返回 401、403、404、失效提示,或不再返回原配置。若它仍能下载完整内容,吊销尚未完成。不要在终端命令、截图或浏览器地址栏里留下第二份完整 token。
应急顺序
保存最少证据
记录泄露时间、位置和暴露类型,不再转发完整链接。
吊销旧 URL
在服务面板重置;没有自助入口就联系服务方。
验证旧 URL 失效
只看状态和是否仍返回配置,不把响应内容写入公开日志。
更新一台设备
确认新链接正常后,再替换其他客户端。
删除公开副本
撤回帖子、工单附件、截图和代码片段,降低继续传播。
沿着复制路径找一遍,原链接往往不只出现在一个地方
回想你是怎样排障的:是否把 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 等字段。
- 离职或换机
- 移除旧设备授权,清理本地配置,并在无法确认副本去向时重置订阅。
事故真正结束的标志是:旧订阅无法使用、必要的节点凭据已经轮换、所有合法设备改用新链接,而且公开位置与自动任务里不再出现旧值。仅仅“帖子删掉了”还不算完成。
