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

Clash 訂閱連結怎麼匯入?格式識別、更新失敗與洩露處理

Profiles 出現訂閱名不代表設定已載入。核對格式與 HTTP 錯誤,更新並選為目前設定,在 Proxies 和 Connections 檢查節點與請求;洩露連結需重置並替換裝置中的副本。

  • 訂閱匯入
  • 設定更新
  • 連結安全
本文目錄

取得或儲存訂閱位址後,用戶端還需要下載並啟用對應設定,才能使用其中的節點與規則。既有設定還能上網時,請保留可用副本,再核對新位址回傳的內容與載入結果,避免排查更新錯誤時連原本可用的設定也一起刪除。

在 Profiles 中儲存、更新並啟用訂閱

一次完整的遠端匯入

  1. 複製服務方標示的 Clash 或 Mihomo 連結

    從開頭的 https 到最後一個參數完整複製,不帶多餘空格。

  2. 在 Profiles 或設定頁新增遠端訂閱

    名稱寫成自己能認出的來源,不要把 token 放在名稱裡。

  3. 立即按一下更新

    留意狀態碼、解析提示和新的更新時間。

  4. 把這份設定設為目前使用

    到 Proxies 頁確認策略群組和節點已經出現。

如果用戶端提供直接連結、設定連結或 URL Scheme 等多種入口,先用普通遠端連結。某一種方式報 client error(Connect) 時,可以換用戶端文件列出的另一種匯入入口,但不要把「允許無效憑證」長期開啟。

訂閱格式由返回內容決定

Clash 能直接匯入的不是任意網址,而是服務方提供的 Clash 或 Mihomo 相容訂閱。用戶端存取連結後,伺服器端可能回傳帶 proxies、proxy-groups、rules 的 YAML,也可能回傳編碼文字、登入頁或錯誤頁面;回傳內容決定了能不能解析。

HTTP 狀態碼與回應內容怎麼讀

更新結果怎麼讀

看到的結果含義與處理
401 / 403token 失效、帳號狀態異常或伺服器拒絕存取
404位址路徑已變或連結複製不完整
200,但內容以 <html 開頭回傳了登入頁、驗證頁或錯誤網頁,不是設定
200,包含 proxies / proxy-groups / rules看起來是 Clash/Mihomo YAML,可繼續解析
download failed / timeout用戶端沒有在時限內拿到回應,檢查網路和伺服器端

有些訂閱服務會根據 User-Agent 回傳不同格式。瀏覽器直接開啟得到一串內容,不代表 Clash 請求時一定相同;反過來,瀏覽器看到網頁也不一定說明連結失效。把用戶端版本、更新時間和狀態碼交給提供方,比反覆刪除設定更有用。

parse error:格式與核心相容問題

出現 parse、yaml: unmarshal、field not found 一類錯誤,說明網路請求大多已經完成,用戶端卡在讀取內容。常見原因是伺服器端回傳了其他用戶端格式、YAML 縮進損壞,或設定使用了目前核心不支援的欄位。

此時換節點通常沒有幫助。保留第一行具體發生錯誤和行號,核對用戶端的 Mihomo 版本,再讓訂閱提供方產生相容格式。不要手動修遠端設定中的幾十處內容,因為下一次更新會全部覆蓋。

unexpected character '<'

回應很可能是 HTML 頁面,檢查登入、驗證或伺服器端錯誤。

mapping values are not allowed

YAML 縮進或符號被破壞,請提供方重新產生。

unsupported proxy type / field not found

核心版本與設定欄位不匹配,升級受支援版本或換相容訂閱。

更新成功但 Proxies 為空

遠端更新顯示成功,但 Proxies 頁面沒有節點,可能是返回內容只有規則,可能所有節點被篩選掉,也可能目前選中的仍是舊設定。

回到 Profiles 看選中標記,再檢查設定是否包含 proxies 或 proxy-providers,以及 proxy-groups 是否引用了它們。也要檢查覆寫指令碼是否過濾了全部節點。

節點存在卻全部顯示在一個未被使用的組裡,也會讓主策略停在 DIRECT。選擇一個實際包含節點的策略群組並固定節點,隨後用 Connections 觀察一條請求;這比只看延遲按鈕更能說明設定是否接通。

舊設定為什麼還能聯網?

Clash 通常會繼續使用上一次下載成功的本機副本。因此訂閱已經過期或伺服器端正在發生錯誤時,現有節點仍可能暫時可用。判斷更新狀態要看「最後更新時間」和本次錯誤,而不是只看網頁能不能開啟。

舊設定能用時不要急著刪除。先匯出錯誤資訊、確認帳號和連結狀態,等新位址更新成功後再移除舊記錄。直接刪掉唯一可用副本,會讓原本可檢查的問題變成立即斷網。

舊節點正常,新更新 401
伺服器端拒絕了目前認證資訊;登入服務面板檢查訂閱位址。
家庭網路更新超時,手機熱點成功
問題更靠近目前網路路徑,而不是 YAML 格式。
多個用戶端同一時間失敗
優先查看服務公告和訂閱狀態,不要逐台重裝。

匯入後,核對節點與 Connections

選中新的 Profile,到 Proxies 固定一個節點,保持 Rule 模式。Windows/macOS 桌面用戶端開啟系統代理;Android 用戶端依自己的連線入口建立 VPN 並完成授權。存取熟悉的網頁,在 Connections 核對目標網域、規則與出口;延遲測試不能代替實際請求。

請求進入 Clash 後 timeout,換另一個節點;完全沒有紀錄,檢查桌面系統代理或 Android VPN 是否生效;顯示 DIRECT,查看規則。網頁正常且紀錄符合選擇,才說明訂閱完成下載、解析、啟用與轉發。

訂閱位址中的 token 通常等同於讀取認證資訊。排查只需要錯誤狀態、回應類型和時間,不需要公開完整 URL。分享聊天截圖、螢幕錄影和記錄前,遮住路徑或參數中的認證資訊;不確定哪些部分敏感時,遮住整個訂閱位址。

只修改 Profile 的顯示名稱不會讓舊認證資訊失效。完整訂閱已經公開時,應透過服務面板重置位址,再按下面的步驟替換裝置中的舊連結。

  1. 產生新的訂閱位址

    使用服務方提供的重置或重新整理 token 功能。

  2. 更新受控裝置

    逐台替換舊 URL,並確認新的更新時間和節點清單。

  3. 驗證舊位址失效

    不要繼續在聊天中傳送舊連結,只檢查服務面板給出的狀態。

  4. 檢查異常用量

    發現陌生裝置或流量變化時,按服務方帳號安全流程處理。