先看訂閱回傳的到底是什麼
更新轉完變成成功,代表用戶端確實從伺服器拿回了內容。抓不下來是另一回事,記錄檔會留下 timeout、403 這類字樣,更新根本走不完。現在是東西拿到了,核心看不懂。把訂閱連結原樣貼進瀏覽器網址列,看開頭幾行。
- 整片沒有換行的英數字、結尾可能帶等號:base64 編碼的分享連結清單,v2rayN 那一類用戶端吃的格式,裡面沒有
proxies。 - 大括號開頭的 JSON,欄位裡有
outbounds:sing-box 的設定檔,和 Clash 不通用。 - 一段 HTML、登入頁或人機驗證頁:你拿到的是網頁。網址填錯、token 過期、機場前面加了一層防護,都長這樣。
Clash 設定檔一定是純文字 YAML,開頭看得到 mixed-port、proxies 這些欄位。解析不出節點時,多數用戶端只判斷 HTTP 請求成不成功,介面照樣寫「更新成功」,proxies 卻是空的。
同一個網址,機場按 User-Agent 給不同格式
機場普遍依請求標頭裡的 User-Agent 分發:帶 clash 或 mihomo 字樣的給 YAML,帶 v2rayN 的給 base64,瀏覽器 UA 或沒有 UA 就給預設那份。所以瀏覽器打開是一堆亂碼,不能證明訂閱壞了,只說明它把你當成另一類用戶端。換個 UA 請求兩次比對一下:
curl -sS -A "clash-verge/1.0" https://sub.host/link -o a.yaml
curl -sS -A "v2rayN/6.0" https://sub.host/link -o b.txt
網址換成你自己的。兩個檔案開頭幾行不一樣,問題就定位了。用戶端裡改 UA 的地方通常在訂閱的編輯對話框,欄位名多半就叫 User Agent。
節點在設定檔裡,只是群組看不到
另一種情形是 proxies 有幾十項,代理頁面卻空著。這時候要翻策略群組,尤其是從別處抄來的那份覆寫:
proxy-groups:
- name: Auto
type: url-test
include-all: true
filter: "(?i)(HK|香港)"
url: http://www.gstatic.com/generate_204
filter 是正規表示式,只有名字對得上的節點才進這個群組。機場把「香港 01」改成「HK-01」,或者你抄的 filter 本來照著別家命名寫,群組立刻空掉。刪掉那一行重新載入,節點回來就是它。exclude-filter 反過來一樣會誤傷。
少了幾個,不是全都沒有
- 記錄檔出現
unsupported、skip這類字樣:核心不認得那幾個節點的協定,略過了。升級核心通常補得回來。 - 只剩一個節點,名字寫著方案已到期、請續約之類:這不是故障,是帳單。
proxies裡名字重複的節點,後面的蓋掉前面的,介面上看起來就是憑空少了幾條。
如果本機設定檔裡
proxies 齊全、策略群組也點得到,上面這些就都排除了。剩下的症狀是有節點但連不上,該去看延遲測試和記錄檔,別再反覆刪設定重匯入。