先找出失敗環節:下載、解析還是載入
Clash 訂閱更新並非單一步驟。用戶端會先向訂閱 URL 發出請求並取得回應內容,再解析設定檔,最後儲存檔案並交由核心載入。下載成功不代表格式正確,設定檔儲存成功也不表示目前的核心能執行所有欄位。先確認錯誤發生在哪個環節,比反覆點選「更新」更有效。
訂閱管理主要由圖形化用戶端負責;Clash、Clash Meta 與 mihomo 的核心功能,不能直接等同於用戶端的下載行為。不同用戶端的更新代理、排程器與錯誤提示可能各異。下文說明參數意義與檢查順序,選單名稱請以目前使用的版本為準。
- 在用戶端的「訂閱」或「設定檔」頁面,記下失敗項目的名稱、最後更新時間與完整錯誤訊息。
- 保留目前仍可用的設定檔,不要先刪除訂閱或清空節點。重新匯入前,先確認原連結仍能取得內容。
- 開啟用戶端記錄,只手動更新一次,並依照相同時間點檢查下載錯誤與核心載入錯誤。
- 分清楚「更新失敗」與「更新後節點無法使用」:後者還需檢查節點狀態、策略組與規則,不應直接歸因於訂閱下載。
| 畫面提示 | 通常發生階段 | 優先檢查項目 |
|---|---|---|
timeout、context deadline exceeded | 連線或讀取 | 網路路徑、更新代理、回應時間 |
x509、certificate | TLS 交握 | 系統時間、憑證鏈、網域名稱 |
401、403、429 | HTTP 回應 | 連結權限、存取限制、請求頻率 |
yaml、unmarshal | 內容解析 | 回應本文、訂閱格式、欄位型別 |
| 不支援的代理類型、策略不存在 | 核心驗證或載入 | 核心支援範圍、策略參照 |
逾時排查:先比較直連與更新代理
分辨 DNS 解析失敗與連線逾時
no such host 通常表示網域解析有問題;connection refused 代表連線遭拒;i/o timeout 則須搭配記錄判斷是發生在連線、交握還是讀取階段。別看到網路錯誤就更換 DNS,也別把瀏覽器能開啟服務商首頁當成訂閱介面正常的證明。
在 Windows 的 PowerShell 中執行以下兩個指令,先檢查本機 HTTPS 連線與本機連接埠是否有程式監聽。第一個指令只檢查本站的 443 連接埠,無法取代對實際訂閱網域的檢查;第二個指令中的 7890 僅為常見混合連接埠範例,請與用戶端顯示的數值核對。
Test-NetConnection clash-winpc.com -Port 443
Test-NetConnection 127.0.0.1 -Port 7890
若訂閱記錄明確指出某個網域連線失敗,可在本機將第一個指令中的主機名稱改為該訂閱網域進行測試。只使用主機名稱,請勿將含有存取權杖的完整 URL 貼到公開截圖或工單標題。連接埠可連線,不代表 TLS、驗證與本文下載都正常。
瀏覽器連得上,用戶端仍逾時
瀏覽器可能使用系統代理,但用戶端的訂閱下載器可能直接連線;反過來,下載器也可能設定為經由已失效的代理。TUN 模式也會影響實際路由,因此介面上的「更新時直連」選項,不一定代表封包最終未受接管。
- 開啟失敗訂閱的編輯選單,尋找「更新代理」、「透過代理更新」或類似選項,並記下原本的設定。
- 先測試一次直連,再測試一次透過已確認可用的出口更新。每次只變更一個項目,並保留相應時間的記錄。
- 若需手動輸入代理位址,請確認下載器支援 HTTP 代理還是 SOCKS 代理。混合連接埠範例可填入
http://127.0.0.1:7890,實際協定與連接埠請以用戶端設定為準。 - 代理監聽正常但請求仍逾時時,請檢查所選出口能否存取訂閱網域,以及是否有失效策略、驗證問題或網路限制。
如果請求總是在固定時間後失敗,例如每次約 30 秒,請檢查用戶端是否提供下載逾時設定,不要假設所有用戶端的預設逾時都是 30 秒。適度延長讀取時間只對回應較慢的情況有幫助,無法解決無效網域、連線遭拒或權限錯誤。
憑證錯誤:檢查系統時間、網域與信任鏈
HTTPS 憑證驗證用來確認伺服器身分。出現憑證錯誤時,請先修正系統時間或信任鏈,不要把停用憑證驗證當成一般解法。訂閱 URL 通常包含存取憑證,錯誤放寬驗證會增加憑證與設定內容外洩的風險。
- 尚未生效或已過期:在 Windows 11 中前往「設定」→「時間與語言」→「日期與時間」,開啟「自動設定時間」並點選「立即同步」。確認系統日期正確後再試一次。
- 網域不符:確認訂閱 URL 使用的仍是服務商提供的網域。不要自行將 HTTPS 網域換成 IP 位址,也不要繼續使用已停用的舊入口。
- 未知簽發機構:可能是伺服器憑證鏈不完整、本機信任儲存區異常,或企業網路進行了 HTTPS 檢查。請先完成系統更新,再向服務商或網路管理員確認。
- 瀏覽器正常、用戶端報錯:瀏覽器與下載器可能使用不同的信任儲存區或網路路徑。請記下確切的用戶端版本與錯誤訊息,不能只因瀏覽器頁面正常就排除憑證問題。
節點設定中的 skip-cert-verify 控制相應代理連線的憑證驗證,不是圖形化用戶端訂閱下載器的通用開關。修改節點中的這個欄位,通常無法修復下載訂閱時的 x509 錯誤,也不應為了排查問題而批次啟用。
HTTP 狀態碼與格式錯誤:確認取得的是設定檔
先處理權限與流量限制,再檢查 YAML
伺服器有回應,不代表回應內容就是訂閱檔案。登入頁面、帳戶到期提醒或存取驗證頁,也可能被用戶端下載,接著就顯示 YAML 解析失敗。即使 HTTP 狀態碼是 200,本文仍可能是 HTML。
| 狀態碼或本文特徵 | 可能原因 | 處理方式 |
|---|---|---|
401 / 403 | 憑證失效、權限不足或存取政策限制 | 登入服務商帳戶確認訂閱狀態,並重新複製專用訂閱連結 |
404 / 410 | 入口不存在或已移除 | 從帳戶頁面取得目前使用的入口,不要自行猜測路徑 |
429 | 觸發請求頻率限制 | 停止連續重試;若有 Retry-After,請依指示等待 |
502 / 503 / 504 | 伺服器或上游服務暫時異常 | 稍後再試,並記下狀態碼與發生時間 |
<!DOCTYPE html>、登入表單 | 取得的是網頁,而非設定檔 | 確認 URL 類型、重新導向目標與伺服器存取驗證 |
檢查回應內容時,建議使用本機文字編輯器,只查看結構,不要公開完整檔案。訂閱可能含有節點密碼、權杖、內部網域及其他敏感資訊;第三方線上檢測或轉換服務也可能接觸這些內容。
完整設定檔、節點清單與 provider 檔案不可混用
完整的 Clash YAML 通常包含 proxies、proxy-groups、rules 等設定區段,但並非每份有效設定都必須同時包含這三個欄位。Base64 編碼的節點清單,或以 ss:// 等協定開頭的 URI 清單,不會因為副檔名改成 .yaml 就自動變成 Clash 設定檔。
供 proxy-providers 使用的節點檔案通常以 proxies: 組織節點;規則提供器則使用相應的規則載荷結構。這些檔案不應直接當成完整桌面設定檔匯入。建議選擇服務商標示支援 Clash 或 mihomo 的輸出格式,再確認用戶端是否支援相應的匯入方式。
- 縮排錯誤:YAML 階層使用空格,避免使用 Tab。依錯誤行號一併檢查前一行,漏寫冒號也可能導致下一行出錯。
- 型別錯誤:原本應為清單的欄位被寫成字串,或參數型別不符合核心預期。不要只刪除報錯欄位,卻忽略設定內容的用途。
- 核心不相容:針對 mihomo 的新協定或擴充欄位,不一定能由原版 Clash 核心處理。請記下實際使用的核心及版本,再選擇相容的輸出格式。
- 參照失效:策略組或規則參照的名稱不存在時,檔案可能通過解析,但仍會在載入時失敗。請核對名稱、大小寫,以及訂閱更新後的節點變化。
自動更新間隔:分清用戶端訂閱與核心 provider
用戶端訂閱排程器
桌面用戶端通常會在「訂閱/設定檔」→「目標訂閱選單」→「編輯」中提供自動更新設定;部分版本則將入口放在全域設定。找到「自動更新」、「更新間隔」與「更新代理」後,先確認欄位旁標示的單位,再儲存設定。各專案沒有統一的預設值,不能把某個用戶端的介面參數當成 Clash 核心標準。
一般使用情境可先試著每 6 小時更新一次:介面單位為分鐘時填入 360,單位為秒時填入 21600。這是建議值,並非通用的出廠預設值。若服務商明確規定最短間隔,請遵守該限制;節點變動不頻繁時,每 12 或 24 小時更新一次也可以。不要設定成每分鐘請求,以掩蓋故障。
- 先確認訂閱可手動更新成功,再啟用自動更新。
- 儲存間隔後,返回訂閱清單確認設定有保留,並記下最後一次成功更新的時間。
- 等到下一個預定更新時間後檢查記錄。電腦進入睡眠或用戶端關閉期間,通常無法期待桌面排程器持續執行。
- 若啟用了「啟動時更新」,請另外測試啟動時的行為;這與按固定間隔更新是不同的觸發條件。
mihomo 的 HTTP provider 更新參數
若設定檔使用 proxy-providers,遠端節點提供器也可由核心獨立更新。HTTP provider 的 interval 單位為秒;支援的 proxy 欄位則用來指定下載該資源時使用的出口名稱。以下僅為既有 HTTP provider 內部的欄位片段,不能單獨匯入為完整設定檔:
# 放在現有 HTTP proxy-provider 定義內
interval: 21600
proxy: DIRECT
DIRECT 代表選擇直連出口,但不保證目前的網路一定能存取該資源。若改用代理或策略組名稱,該名稱必須存在於設定檔中,並應避免透過尚未下載的同一個 provider 取得出口。不同核心版本的支援範圍,請以實際設定檔驗證結果為準。
恢復後的驗證順序與問題回報
錯誤提示消失後,還要確認新內容確實載入目前使用的設定檔。只看到檔案修改時間變更還不夠;下載可能成功,但覆寫、合併或核心驗證仍可能失敗。建議依照以下順序檢查,避免在同一次排查中同時變更代理、DNS、TUN 與設定檔格式。
- 確認下載成功:訂閱清單顯示新的成功更新時間,記錄中也沒有相應的 HTTP 或 TLS 錯誤。
- 確認載入成功:目前設定檔沒有解析錯誤,策略組也正常顯示;若訂閱內容原本沒有變更,節點數量不變是正常的。
- 確認連線可用:選擇一個已知可用的出口,存取目標網站,並在連線記錄中確認命中的規則與實際出口。
- 確認自動更新:讓用戶端保持執行,等待一個已設定的更新週期,再檢查下一次成功更新時間。
向服務商或用戶端專案回報時,請提供作業系統版本、用戶端版本、實際核心版本、發生時間、錯誤訊息,以及直連與代理更新的比較結果。請遮蔽訂閱 URL 的路徑、查詢參數與節點憑證;不要將完整設定檔上傳到公開問題討論區。若需了解匯入與連線步驟,請參閱本站使用指南;參數說明可對照協定參考。