訂閱管理 預計閱讀 12 分鐘

Clash 訂閱失效與設定檔解析失敗:常見原因與恢復步驟

區分訂閱網址過期、回應內容異常、設定格式錯誤與客戶端快取問題,提供逐項自我檢查方法。

Clash 更新訂閱失敗時,介面上常見的提示包括要求逾時、狀態碼異常、下載內容為空、設定解析失敗、代理節點數量為零,以及切換設定後立即回復。這些情況看起來都像「訂閱無法使用」,實際上卻對應不同的故障層級。訂閱更新至少會經過網址請求、伺服器回應、內容轉換、YAML 解析、設定儲存與核心載入六個環節。反覆點擊更新,通常只會不斷觸發同一個錯誤。

排查時應先確認失敗發生在哪個層級,再決定要更換網址、重新產生訂閱、修正設定,還是清除客戶端快取。尚未儲存舊設定前,不要刪除所有資料;訂閱網址可能包含存取憑證,也不應直接複製到公開日誌、截圖或論壇內容中。

先辨識訂閱更新失敗的環節

第一步不是修改 YAML,而是讀取客戶端日誌中的第一個錯誤。後續錯誤經常只是連鎖結果,例如下載失敗後出現「找不到設定檔」,或 YAML 解析失敗後出現「核心啟動失敗」。應記錄錯誤發生時間、訂閱名稱、HTTP 狀態、錯誤行號與目前使用的核心類型,再依照以下特徵分類。

REQUEST

請求階段

表現為逾時、無法解析網域名稱、連線遭拒、TLS 連線失敗或 HTTP 狀態異常。此時設定內容尚未進入解析器。

CONTENT

回應階段

請求成功,但回傳登入頁面、錯誤提示、空白內容,或與客戶端不相容的訂閱格式。

PARSER

解析階段

日誌提供 YAML 行號、欄位類型錯誤、名稱重複或不支援的設定項目,表示檔案已下載,但無法建立設定。

STORAGE

載入階段

檔案可以解析,但客戶端仍載入舊版本,或寫入設定目錄失敗。這類問題通常與快取、目錄權限或設定索引有關。

如果手動選擇舊設定後仍能正常連線,通常表示核心與本機網路仍可運作,問題更可能集中在訂閱請求或新設定內容。若所有設定同時失效,還需要檢查系統時間、網路入口、DNS、系統代理回環與防火牆狀態,避免把環境故障誤判為訂閱過期。

檢查訂閱網址、有效期限與請求條件

訂閱網址通常不是一般公開網頁連結。網址中的路徑或查詢參數可能負責使用者識別、方案狀態與存取授權。伺服器停用舊憑證、使用者重新產生網址、方案到期或訂閱入口遷移後,舊網址即使仍能開啟,也可能只回傳錯誤說明。

確認網址沒有遭到截斷

從聊天軟體、電子郵件或 QR Code 複製長網址時,常見問題是只複製了可見部分,遺漏結尾參數;也可能混入換行、全形符號或前後空格。應在客戶端的訂閱編輯頁面重新貼上完整網址,並確認通訊協定標頭、網域、路徑與查詢字串連續存在。不要手動刪除看似多餘的參數,它們可能參與伺服器驗證或客戶端類型識別。

依 HTTP 狀態判斷方向

瀏覽器能開啟網址,不代表客戶端一定能更新。瀏覽器可能儲存登入狀態、自動執行跳轉,或顯示伺服器產生的說明頁;Clash 客戶端通常只會發出網路請求並讀取回應正文。反過來,瀏覽器顯示一段難以閱讀的編碼文字,也不代表內容損壞;部分訂閱本來就是經過 Base64 編碼的節點連結集合。

檢查系統時間與網路入口

裝置日期、時間或時區偏差較大時,HTTPS 憑證驗證可能失敗。先啟用系統自動校時,再重新請求訂閱。若目前網路封鎖訂閱網域,可暫時切換到其他可信任的網路進行一次更新。使用系統代理更新訂閱時,也要確認客戶端是否形成回環:客戶端請求訂閱,流量又被導向尚未啟動或已失效的本機代理埠,最後表現為連線遭拒或逾時。

辨識請求成功但內容異常的方法

HTTP 200 只表示伺服器回傳了內容,不能證明內容是有效設定。許多解析失敗來自伺服器回傳的 HTML 頁面、JSON 錯誤物件、空回應或錯誤的訂閱格式。此時日誌可能出現「找不到 proxies 欄位」、「無法解析映射」、「非法字元」或第一行附近的語法錯誤。

區分常見訂閱內容

Clash 設定通常採用 YAML,常見頂層欄位包括 proxiesproxy-groupsrulesproxy-providersrule-providers。mihomo 相容並擴充了部分欄位,但具體可用項目仍取決於核心版本。另一類通用訂閱是由多條協定連結組成的文字,可能經過 Base64 編碼;這類內容需要客戶端或訂閱轉換服務先轉換為 Clash 設定,不能直接假定它就是完整 YAML。

如果回應正文以 HTML 文件標記開頭,或內容明顯是登入提示、方案到期說明、驗證碼頁面,問題就在伺服器回應,不應繼續修改本機 YAML。若回傳 JSON,應先查看其中是否包含錯誤代碼與說明。回應只有少量字元或完全空白時,應重新取得訂閱網址並檢查服務狀態。

核對客戶端與核心相容性

同一份設定在不同客戶端中的結果可能不同。傳統 Clash 核心、Clash Meta(目前通常以 mihomo 名稱維護)以及不同版本的圖形客戶端,對協定、DNS 欄位、規則集行為與設定擴充的支援範圍並不完全相同。伺服器產生了只有較新 mihomo 支援的欄位,而客戶端仍使用舊核心時,可能出現未知欄位、不支援代理類型或啟動檢查失敗。

先在客戶端的關於頁面確認圖形介面版本與實際核心版本,再查看訂閱提供者要求的格式。客戶端允許切換核心時,應在儲存舊設定後依照其文件完成切換;不支援目標欄位時,應選擇相容的訂閱格式,而不是任意刪除未知欄位。某些欄位之間存在相依關係,刪除其中一處可能使策略組或規則引用失效。

定位 YAML 設定解析失敗

YAML 對縮排與資料類型敏感。日誌提供行號時,應同時檢查該行及前幾行,因為真正的錯誤可能是上一段缺少引號、縮排層級中斷或清單標記位置錯誤。編輯設定前先複製原始檔案,使用純文字編輯器,並維持 UTF-8 編碼。

縮排、定位字元與冒號

層級縮排應使用空格,不要混入定位字元。同一層級的清單項目需要保持相同縮排。包含特殊字元的節點名稱、策略組名稱或字串值可以用引號包裹,尤其是值中包含冒號後接空格、井字號或其他可能被 YAML 解讀的符號時。

proxies:
  - name: "Tokyo: Primary"
    type: socks5
    server: 192.0.2.10
    port: 1080

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "Tokyo: Primary"
      - DIRECT

rules:
  - MATCH,PROXY

上例僅用於展示結構:proxiesproxy-groupsrules 位於頂層;每個清單項目使用連字號;策略組引用的節點名稱必須與節點定義完全一致。實際代理協定還需要相應的驗證、傳輸與加密參數,不能只複製範例欄位作為可用節點。

檢查欄位類型

連接埠通常應為數字,布林值應使用核心可識別的布林類型,清單欄位不能寫成一般字串。常見錯誤包括把 proxies 寫成單行文字、把規則清單寫成物件、在應為數字的位置加入單位,以及因缺少引號使數字或特殊值遭到錯誤解讀。解析器提示「expected sequence」時,通常表示它需要清單;提示「expected mapping」時,通常表示對應位置應為鍵值結構。

檢查名稱引用與兜底規則

設定透過名稱連結節點、策略組與規則。策略組引用已刪除或改名的節點,規則引用不存在的策略組,都會導致檢查失敗或執行結果異常。名稱比對通常要求文字完全一致,包括大小寫、空格與符號。規則應從具體匹配逐步進入兜底,MATCH 一般放在規則清單末尾;過早出現的兜底規則會使後續規則無法命中。

避免把局部訂閱當成完整設定

proxy-providers 回傳的內容可能只是代理集合,由主設定中的 provider 項目負責載入。它不一定包含連接埠、DNS、策略組與完整規則,因此不能總是作為獨立主設定直接匯入。同樣地,遠端規則集只提供網域、IP 或規則行為資料,也不是可啟動的 Clash 設定。應確認複製的是主訂閱入口,而不是某個 provider 或規則集網址。

處理客戶端快取、舊設定與寫入失敗

訂閱回應正確、設定也能通過獨立檢查,但客戶端仍顯示舊節點時,應轉向檢查快取與儲存層。圖形客戶端通常會維護訂閱索引、下載後的設定副本、目前啟用的設定以及核心執行檔。介面中的訂閱名稱與磁碟上的檔案名稱也可能不同。

  1. 停止自動更新:暫時關閉高頻率定時重新整理,避免診斷時檔案持續被覆寫。
  2. 匯出目前設定:儲存可用節點、策略組選擇與本機覆寫內容,記錄目前設定名稱。
  3. 建立新的訂閱項目:不要立即覆蓋舊項目,使用重新取得的網址建立新項目並執行更新。
  4. 核對更新時間:確認客戶端顯示的更新時間、節點數量與日誌時間都與本次操作一致。
  5. 執行設定檢查:切換前使用客戶端提供的檢查功能,確認新設定能由目前的核心載入。
  6. 切換並重新啟動核心:只需重新啟動代理核心或客戶端,不必先重新啟動整個系統。觀察新設定是否真正成為啟用中的設定。
  7. 確認穩定後刪除舊項目:保留回復版本,直到規則、DNS 與代理連線都完成驗證。

如果更新後檔案時間沒有變化,請檢查設定目錄是否可寫入、磁碟空間是否充足,以及安全軟體是否阻止客戶端寫入。將客戶端安裝在系統受保護目錄時,普通權限可能無法更新旁邊的設定檔;規範的客戶端通常會把使用者資料放在使用者設定目錄,應從客戶端日誌確認實際路徑。

不建議在未備份的情況下直接刪除整個使用者資料目錄。該目錄可能同時包含訂閱網址、覆寫規則、策略組選擇、DNS 設定與介面偏好。更穩妥的方法是先匯出設定,再依照客戶端文件定位單一訂閱快取或索引。若客戶端提供「重設設定」功能,也應先了解影響範圍再使用。

訂閱可以匯入,但節點或規則集為空

成功匯入不代表所有遠端資源都已載入。主設定可以繼續引用 proxy-providersrule-providers,核心啟動後還會分別請求這些資源。主訂閱回傳正常,但 provider 網址過期時,介面可能出現策略組為空、規則集下載失敗或部分節點遺失。

檢查代理集合更新

查看日誌中的 provider 名稱、請求網址狀態與更新時間。策略組使用 use 引用 provider 時,provider 名稱必須與定義一致。遠端內容需要符合核心要求的 provider 格式;一般網頁、完整主設定或不相容的節點清單都可能載入失敗。若策略組同時使用靜態 proxies 與 provider,靜態項目仍可能顯示,從而掩蓋遠端集合載入失敗。

檢查遠端規則集

規則集的 behavior、內容格式與規則類型需要相互匹配。例如 domain、ipcidr 與 classical 行為對應不同的資料結構。主設定引用的規則集名稱、規則中的策略名稱與遠端檔案格式只要有一項不一致,都可能使規則集無法使用。更新後應檢查日誌是否顯示規則數量,並確認最後存在 MATCH 等兜底行為。

考慮直連與代理下載路徑

遠端資源可以設定為直接取得,也可能經由目前的代理下載。若 provider 只能透過代理存取,而核心在載入 provider 前還沒有可用節點,就可能形成啟動相依。相反地,若伺服器只允許特定網路直接連線,強制經由代理請求也會失敗。應依照客戶端與核心支援的設定方式明確下載路徑,並保留至少一個可用的啟動方案。

恢復後的驗證清單

訂閱更新按鈕顯示成功後,還應驗證設定是否真正投入運作。只檢查節點清單並不足夠,因為 DNS、規則與系統代理仍可能沿用舊狀態。建議依固定順序完成以下測試。

TUN 模式會接管更廣泛的系統流量,但無法修復無效訂閱或錯誤 YAML。設定尚未通過檢查時,不應把啟用 TUN 當作恢復手段。反之,設定已正常而只有部分應用程式不經代理時,再檢查 TUN 權限、系統路由、排除項目與應用程式本身的代理設定會更有效。

依症狀選擇恢復動作

症狀 優先檢查 恢復動作
401、403 或方案提示 訂閱憑證與服務狀態 在伺服器端重新取得網址,替換舊訂閱項目
請求逾時或網域解析失敗 本機網路、DNS、系統時間與代理回環 校正時間、切換網路、檢查更新流量路徑
HTTP 200 但第一行解析失敗 回應是否為 HTML、JSON 或空內容 修復伺服器端入口或選擇正確的訂閱格式
日誌提供 YAML 行號 上一行的縮排、引號、清單與欄位類型 備份後逐項修正,並重複執行設定檢查
匯入成功但節點數量為零 provider 網址、格式與策略組引用 單獨更新 provider,核對名稱與內容類型
更新後仍顯示舊節點 啟用中的設定、快取索引與目錄權限 建立新的訂閱項目,檢查寫入時間並重新啟動核心

完整恢復順序可簡化為:先讀取第一個錯誤,再確認請求狀態;請求成功後辨識回應內容;內容正確後檢查 YAML 與核心相容性;設定通過後處理快取與寫入;最後驗證 provider、規則、DNS、系統代理或 TUN。依層級處理可以保留有效設定,也能避免在訂閱服務異常時誤刪本機可用版本。

下載Clash