一、先區分「更新成功」與「有節點」
Clash 訂閱在介面上的「更新成功」通常只代表:HTTP 層級已拿到回應,且客戶端未在當下拋出致命錯誤。它不保證回應內容一定能被轉成非空的 proxies 清單,也不保證你正在看的策略群組一定引用到那些代理。若服務端暫時回傳空清單、僅回訊息頁、或內容格式與目前核心預期不一致,介面仍可能顯示「已更新」,但節點列表為空。
另一種常見混淆是把「規則/網路異常」當成「沒節點」:實際上節點已載入,但 DNS、fake-ip、或規則順序導致連線失敗,體感像「沒線路」。若你懷疑屬這類,可併讀 fake-ip 與 DNS 排查,本文則聚焦在資料真的沒進代理清單時的處理順序。
二、確認遠端訂閱內容真的含代理
2.1 用瀏覽器或下載工具直接檢視正文
在客戶端按下更新前,建議先用同一網路環境在瀏覽器開啟訂閱 URL(或複製到只讀的下載工具),確認回傳是否為可解析的文字設定。若看到的是登入頁、純文字提示(例如「流量已用完」「請重新購買」)、HTML 錯誤頁、或 Base64/壓縮封包但內層為空,客戶端即使顯示「成功」,也不會憑空產生節點。
2.2 注意「僅有 Provider 片段」的訂閱
部分服務商會下發不含完整 proxies: 區塊、而是請你依賴 proxy-providers 的片段。此時若主設定檔沒有正確引用對應的 Provider 名稱,或 Provider 自身更新失敗,最終合併結果仍可能是空節點。因此看到「更新成功」時,仍要追問:成功的是哪一層(主訂閱、子 Provider、還是僅規則檔)。
三、YAML 結構與解析錯誤
YAML 解析失敗時,有些客戶端會明確報錯,有些則只默默略過無效區塊,表現成節點列表為空。請在日誌中搜尋與 parse、yaml、unmarshal 相關的字樣,並對照行號與欄位名稱。
3.1 縮排、重複鍵與不可見字元
混用空格與 Tab、重複的鍵名、或從網頁複製帶入的奇怪空白,都可能讓單一區塊失效。若只有 proxies 一節損壞,其它規則仍可能載入,使用者會誤以為「設定沒問題,只是沒節點」。
3.2 核心版本與欄位相容性
以 Mihomo(Clash Meta)與傳統 Clash 核心為例,部分欄位與策略型別支援度不同。若訂閱下發了目前核心不支援的型別或參數,可能被整段丟棄。若你剛切換核心或升級客戶端,請優先比對服務商文件中的「建議核心版本」與你本機版本。
以下為示意結構(請勿直接當成可連線的私密設定):
proxies:
- name: "demo-node"
type: ss
server: example.com
port: 8388
cipher: aes-256-gcm
password: "placeholder"
proxy-groups:
- name: "PROXY"
type: select
proxies:
- demo-node
若實際檔案中 proxies 陣列為空、或名稱與下方 proxy-groups 引用不一致,介面就會出現沒有可選節點或策略群組為空。
四、proxy-providers 與快取刷新
當節點來自 proxy-providers 而非內嵌 proxies 時,「訂閱更新成功」有時只代表主設定檔或其中一條 URL已拉取。若 Provider 子資源逾時、被 CDN 快取成舊檔、或路徑填錯,合併後仍可能是空集合。
4.1 檢查 Provider 的 url、path 與 interval
確認每個 proxy-providers 區塊的 url 是否可在瀏覽器開啟、path(若使用本機檔案)是否存在且可讀。若設定很長的 interval,手動刷新前介面可能一直顯示舊狀態;反之若頻繁更新,也要注意是否觸發服務端的頻率限制而回傳空內容或替代頁。
4.2 清除本地 Provider 快取
多數客戶端會在資料目錄快取下載結果。若遠端已修復,但本機仍沿用損壞或空的快取檔,就會長時間呈現節點列表為空。可嘗試:在客戶端內對該 Provider 執行強制更新、清除應用資料目錄中的快取檔(請先備份設定)、或解除安裝前匯出設定後再乾淨安裝。不同 GUI 選項名稱不同,但思路都是「讓核心重新下載,而不是讀舊檔」。
4.3 rule-providers 不會幫你長節點
有些使用者誤把 rule-providers 當成節點來源。規則檔只影響流量怎麼分流,不會自動產生 proxies。若你只更新了規則 Provider,節點畫面當然仍可能是空的——請回到 proxy-providers 或內嵌 proxies 排查。
五、策略群組與名稱引用
即使 proxies 已成功載入,若 proxy-groups 內引用名稱拼錯、大小寫不一致、或引用到尚未載入的 Provider 別名,該群組在 UI 上可能顯示為空或無法選擇。請逐條核對:
- 群組的
proxies清單是否列出正確的節點名稱或provider所展開的名稱。 - 自動選擇/延遲測試類型群組是否因全部節點失效而被客戶端隱藏(視 GUI 實作而定)。
- 巢狀群組是否形成循環引用或指向不存在的上層群組,導致解析階段出錯。
這類問題與「國內外分流規則」常一併出現:若你希望同時檢查 GeoIP 與 DIRECT/代理邏輯,可參考 繞過中國大陸與 DIRECT 規則 一文,避免規則順序蓋掉你以為已選中的節點。
六、介面顯示與實際載入設定
部分圖形介面會快取上一次成功渲染的節點清單,或顯示「設定檔 A」而核心實際執行「設定檔 B」。若你剛切換設定檔、或使用了覆寫(override)與外部合併,請確認當前執行中的一份是否就是你在編輯的那份。可透過匯出執行中設定、檢視日誌開頭載入的檔名、或重啟客戶端後再觀察節點是否出現,來排除 UI 與執行期不一致。
另外,某些環境下權限或沙箱會阻止寫入快取目錄,導致每次看似更新成功、實際無法持久化 Provider 資料,重啟後又變空。若日誌出現與檔案寫入、權限相關的警告,請一併處理作業系統層級的目錄權限。
七、排查對照表
將下列表格當作捷徑:先對應現象,再執行優先檢查項,通常比隨機重裝更有效。
| 現象 | 優先檢查項 |
|---|---|
| 顯示更新成功,但節點清單空白 | 瀏覽器直接開啟訂閱 URL 是否真有 proxies;是否誤把 HTML/提示頁當設定;YAML 是否報錯 |
| 使用 proxy-providers 時仍為空 | 子 URL 是否可開;interval 與手動刷新;清除 Provider 快取;檢查合併後名稱 |
| 規則已更新,節點仍沒出現 | 確認更新的是 rule-providers 還是 proxy-providers;規則不會產生節點 |
| 日誌無明顯錯誤,但策略群組是空的 | 群組引用名稱是否拼錯;是否指向未載入的 Provider;UI 是否與執行中設定檔不一致 |
更完整的欄位說明與觀念整理,亦可對照站內 Clash 設定與文件,將「訂閱、節點、規則」三者的邊界一次理清。
八、小結
Clash 訂閱顯示成功卻節點列表為空,多半不是單一按鈕能奇蹟修復,而是要把鏈路拆成:遠端內容是否為有效代理資料、YAML 是否被完整解析、proxy-providers 與快取是否一致、以及策略群組是否引用到正確名稱。把這四層依序核對,大多能在不更換客戶端的情況下找回節點。
相比只能「一鍵連線」但難以追蹤錯誤來源的工具,Clash 生態在日誌、設定檔與核心演進上較利於長期維護;把排查順序固定下來,日後遇到服務商調整或核心升級,也能快速對照差異。
若你希望使用與本站文件說明一致的封裝與更新節奏,建議從本站取得客戶端,再依本文完成訂閱與 Provider 的驗證。