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

Clash 設定檔能直接分享嗎?訂閱、節點密碼與 secret 脫敏指南

完整設定通常不能直接傳送給別人,因為訂閱 token、節點密碼和控制器 secret 可能都在裡面。疑難排解時應另外製作一份最小、可讀、已經脫敏的副本。

  • 設定脫敏
  • YAML
  • secret
  • 隱私
本文目錄

設定出現錯誤時,直接傳出整份檔案看似最快,卻可能把訂閱和節點密碼一起交給別人。用來還原的原始備份和用來求助的副本應分開保存:前者保持完整並加密,後者只保留能重現錯誤的結構和佔位值,截圖、QR 碼與日誌也要一起檢查。

求助檔案中,哪些資訊必須隱藏?

依下表檢查設定、日誌和截圖,隱去訂閱 token、節點密碼、控制器 secret 與內部網路資訊。另存用來求助的副本,並在本機確認仍能重現原問題;不要直接改寫原始備份,保存方法見下一節。

分享前逐項找

位置或欄位可能暴露什麼處理方式
訂閱 URL 查詢參數可直接拉取整份設定的 token刪除完整 URL,只保留網域與狀態碼
proxies 節點server、UUID、password、PSK、private-key用 example.com 與 REDACTED 佔位
external-controller / secret本機控制位址與 API 金鑰保留欄位結構,替換實際值
日誌與截圖Authorization、Cookie、使用者名稱、QR Code裁掉無關介面並再次通讀
LAN 與公司網域內部網路位址、主機名和拓撲只保留問題必須出現的最小範圍

加密儲存原始備份,另建最小疑難排解副本

原始備份必須保留真實訂閱、節點與本機覆寫,只存放在自己控制的加密儲存空間中。製作排錯副本時從新檔案開始,只加入能重現問題的欄位;不要一路刪減原檔,長 URL、Provider header 與指令碼參數很容易漏掉。

備份檔案名可以帶用戶端、核心與日期,例如 verge-macos-2026-07-16-private.zip。壓縮檔不是加密;若存入雲盤,應使用平台的端到端加密或加密封存,並限制共享權限。

用佔位值做一份仍能看懂結構的最小設定

可公開的結構示例
mixed-port: 7890
external-controller: 127.0.0.1:9090
secret: REDACTED

proxies:
  - name: test-node
    type: socks5
    server: example.com
    port: 1080
    username: REDACTED
    password: REDACTED

proxy-groups:
  - name: Test
    type: select
    proxies: [test-node, DIRECT]

rules:
  - DOMAIN,example.org,Test
  - MATCH,DIRECT

問題若發生在 DNS,只保留 DNS、一個測試策略群組和相關規則;問題若是 YAML 解析,保留發生錯誤行前後的層級。佔位後先在本機驗證仍能觸發同一錯誤,否則別人看到的已經不是原問題。

發出前用文字搜尋補一次人工檢查

先進入準備分享的副本目錄,第一條 rg 命令只搜尋這裡的檔案。後兩條 Git 命令只在實際 Git 儲存庫中執行:進入對應儲存庫的根目錄,把 path/to/config.yaml 換成設定檔相對於儲存庫根目錄的實際路徑。

git diff --staged 查看待提交內容,git log --all 查看各參照中的相關歷史。命令出錯、路徑寫錯或查不到提交,都不能證明認證資訊從未進入儲存庫;不是 Git 儲存庫的副本只做文字檢查,不假裝完成歷史清理。

在副本目錄中搜尋常見敏感欄位
rg -n -i 'token|secret|password|passwd|uuid|private-key|authorization|cookie' .
git diff --staged
git log --all -- path/to/config.yaml

搜尋只能提醒常見欄位,不能識別自訂 header、QR Code和被改名的認證資訊。確認搜尋結果後仍要逐行閱讀準備分享的檔案,並檢查終端提示符、瀏覽器標籤和截圖通知。

實際設定已經發出去,要更換認證資訊而不是繼續打碼

如果原始檔案已經傳到群組聊天、支援單或公開儲存庫,補上一份隱去敏感資訊的版本只能減少後續誤用,無法讓舊認證資訊失效。應更換已經暴露的認證資訊,讓舊值失效。

洩露後的動作

洩露內容立即處理
完整訂閱 URL在服務面板重置 token/訂閱位址,並更新每台裝置
external-controller secret產生新 secret,確認控制連接埠沒有對不可信網路開放
節點認證資訊由伺服器端管理員更換密碼、UUID、PSK 或私鑰
Git 歷史先撤銷或更換所有已暴露的認證資訊,再依需要清理歷史;只刪除最新檔案不夠。
公開日誌或截圖撤回以減少傳播,同時更換其中暴露的每項真實認證資訊

更換後從未登入視窗存取舊訂閱位址,或使用舊 secret 請求控制介面,確認它確實失效。用戶端顯示名稱改了、公開帖子刪了,都不能替代這個驗證。

設定、日誌與截圖可以傳送的條件

可以傳送的條件

  • 最小副本在本機仍能重現相同錯誤
  • 所有 URL 查詢參數、節點認證和 secret 已替換
  • 日誌沒有 Authorization、Cookie、本機使用者名稱和絕對路徑
  • 截圖沒有QR Code、帳號、通知和無關標籤頁
  • 原始完整備份從未進入公開儲存庫或共享連結

參考資料