安全與隱私 · Clash 技術部落格

Clash 訂閱連結洩露怎麼辦?Token 重置、日誌脫敏與轉換網站風險

訂閱 URL 一旦被公開,改用戶端中的顯示名稱沒有作用。應先讓舊 token 失效,再清理截圖、日誌和轉換網站中留下的副本。

  • 訂閱安全
  • Token
  • 隱私
  • 日誌脫敏
本文目錄

先確認洩露的是訂閱連結、設定正文,還是控制器金鑰

訂閱連結不是普通下載網址。URL 中的 token 往往足以反覆取得整份節點設定,所以把它貼進公開群聊、截圖、工單或線上轉換站,應按認證資訊洩露處理,而不是等到流量異常才行動。

還要看暴露範圍。只有訂閱 URL 時,重置連結通常能切斷後續下載;如果完整 YAML 也被公開,其中可能已經包含伺服器位址、UUID、密碼或私鑰,單純換訂閱 token 不會讓這份舊設定失效。Dashboard 的 secret、服務網站帳號密碼則屬於另外的認證資訊,需要分別輪換。

暴露內容與處置範圍

暴露內容別人可能獲得什麼必須處理
完整訂閱 URL持續下載或更新你的設定重置/吊銷訂閱連結,更新所有用戶端
原始 YAML 或QR Code檔案內現有節點認證資訊聯絡提供方判斷是否需要輪換節點認證資訊
服務網站帳號方案、裝置、支付或訂閱管理權限改密碼、退出會話、開啟可用的二次驗證
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 的內容不能只改最新檔案,還要按儲存庫流程清理歷史並輪換認證資訊;任何歷史重寫都不能替代吊銷。

常被遺漏的位置

  • 聊天群、論壇和客服工單附件
  • 截圖中的位址欄、QR Code和終端命令
  • 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 和內部網路位址。脫敏後重新通讀一次,不要只遮住瀏覽器位址欄;QR Code和終端歷史也可能把同一連結再次暴露。

適合公開工單的寫法
客户端: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 使用獨立認證資訊與最小權限,確認共享範圍。
截圖
先裁掉位址欄、QR Code和設定詳情,再上傳到工單。
日誌
啟用 URL 脫敏;公開前搜尋 token=、Authorization、password、uuid 等欄位。
離職或換機
移除舊裝置授權,清理本機設定,並在無法確認副本去向時重置訂閱。

事故真正結束的標誌是:舊訂閱無法使用、必要的節點認證資訊已經輪換、所有合法裝置改用新連結,而且公開位置與自動任務裡不再出現舊值。僅僅「帖子刪掉了」還不算完成。