Shadowrocket 訂閱更新失敗、節點清單空白的自查步驟

Shadowrocket 訂閱無法解析或節點清單空白時,依序檢查連結格式、服務商帳戶狀態、更新時機與網路,再按步驟排除問題。

本文重點

本文適用於已從自己的服務商取得訂閱,但在 Shadowrocket 中無法更新或看不到節點的使用者。先判斷是請求失敗、回應內容無法解析,還是清單顯示問題,再逐項檢查連結、帳戶狀態與更新路徑;保留仍可使用的記錄,每次只變更一個條件,最後分別透過更新結果與連線測試確認是否恢復。

一、先分辨更新失敗、解析失敗與清單空白

Shadowrocket(小火箭)的訂閱更新不等於連線測試。App 會先連線至訂閱網址並取得回應,再將其中支援的伺服器記錄解析到 Home。任何一步未完成,都可能看起來像是「沒有新增節點」,但需要檢查的環節並不相同。

讀取網址 送出訂閱請求 接收回應 解析記錄 顯示清單

先回到 Home,展開相關訂閱群組並清除搜尋條件,再確認是否只是群組收合或篩選結果遭隱藏。Config 主要用來管理設定檔;更新 Config 中的遠端設定檔,不代表 Home 中的伺服器訂閱也已更新。Settings 則可用來檢查更新行為等設定。

觀察到的狀況優先檢查暫時避免
等待更新後顯示逾時目前網路、網域解析、訂閱請求路徑反覆修改伺服器連接埠或密碼
很快就失敗,並顯示 HTTP 狀態碼連結權限、服務商帳戶與介面限制連續觸發更新
請求完成,但沒有可用記錄回應內容、訂閱格式、顯示中的群組先刪除仍可連線的舊記錄
節點存在,但連線失敗伺服器參數與實際連線狀況直接把連線問題當成解析問題

二、核對訂閱網址,別把網頁誤當成訂閱

訂閱網址應向你的服務商取得。帳戶登入頁面、方案說明頁面、個別伺服器分享連結與訂閱網址並非同一種內容。即使網址能在瀏覽器中開啟,也可能只回傳登入表單或驗證頁面,不能因此認定訂閱解析器可以讀取。

  1. 請從服務商帳戶重新複製適用於 Shadowrocket 的訂閱網址,不要從聊天截圖或換行文字中手動拼湊。
  2. 檢查開頭的 https://、完整路徑與查詢參數,移除網址前後的空格、引號及換行,但不要修改網址中的字元。
  3. 保留 ?、&、= 及原有的百分比編碼。不要刪除整段查詢參數,也不要自行重複編碼。
  4. 編輯 Home 中對應的既有訂閱記錄,核對網址後再更新該訂閱,避免匯入多個同名群組而看錯結果。

例如,下列內容僅用來辨認「路徑加查詢參數」的結構,是無法用來連線的虛構值。實際網址可能使用不同的參數名稱;不要把範例中的 token 當成所有服務商都必須使用的欄位。

https://example.com/sub?token=xxxx

三、依回應結果檢查服務商端狀態

網址完整不代表服務商一定會回傳有效記錄。帳戶到期、用量額度耗盡、存取憑證失效、介面維護或請求過於頻繁,都可能影響回應。先登入自己的服務商帳戶確認狀態,再判斷是否需要調整 App 設定。

以下英文是標準 HTTP 回應狀態文字,不代表 Shadowrocket 一定會逐字顯示;有時 App 只會顯示狀態碼或較簡短的錯誤提示。只有實際看到相應狀態時,才依該項處理;不能從「清單空白」反推一定發生了某種錯誤。

HTTP 401 Unauthorized

原因:請求未通過身分驗證,可能是訂閱憑證已失效或缺少必要授權。

處理方式:從服務商帳戶重新取得有效的訂閱網址,完整取代舊網址後再更新。

HTTP 403 Forbidden

原因:伺服器拒絕此請求,可能與帳戶權限、存取政策或驗證攔截有關。

處理方式:確認帳戶狀態,並向服務商確認目前的請求是否符合訂閱介面的規定;不要只靠反覆重新整理來嘗試解除限制。

HTTP 429 Too Many Requests

原因:請求頻率超出介面允許的範圍。

處理方式:停止連續更新,依服務商規定的間隔再試;若回應提供 Retry-After,請依其要求等待。

即使回應為 200 OK,本文也可能是 HTML 錯誤頁面、空內容,或 App 無法辨識的格式。請服務商確認回傳內容適用於 Shadowrocket,而不只是確認「網址能連線」。不要公開傳送完整回應,其中可能含有伺服器憑證。

結論:先確認回應內容,再調整連線設定

如果服務商確認介面回傳的是登入頁面或空記錄,應先修復帳戶狀態並確認訂閱網址;切換 Global Routing 無法將這類回應變成有效的伺服器清單。

四、一次調整一個條件,檢查網路與更新路徑

訂閱請求能否完成,與既有節點能否連線是兩項獨立結果。若目前網路無法連上訂閱網域,而舊節點仍可用,可檢查 Settings → Subscribe → Update via Proxy,透過可用代理嘗試更新。啟用此選項無法修復失效憑證,也不會憑空提供可用連線。

443
HTTPS 未明確指定連接埠時使用的預設連接埠
2 項
分別測試直接請求與透過可用代理的請求路徑
1 項
每一輪只變更一項設定或網路條件
  1. 記錄目前使用的 Wi-Fi 或行動網路、連線開關狀態,以及是否啟用 Update via Proxy,並保留原設定以便還原。
  2. 先在可信任且允許連線至訂閱網址的網路上測試直接更新。若要切換 Wi-Fi 與行動網路,請先確認 App 具備相應的網路存取權限。
  3. 只有仍有可用舊節點時,才測試代理更新:先確認舊節點能正常連線,再啟用 Update via Proxy,回到 Home 更新對應的訂閱。
  4. 記錄本次更新的完成時間、提示訊息與節點數量變化。若沒有改善,先還原該項設定,再檢查下一項;不要同時更換 DNS、節點與訂閱網址。

Global Routing 中的 Proxy、Direct、Config、Scene 用於不同的路由選擇,並非訂閱格式選項。排查時也要另外確認 Update via Proxy,而不能只看 Global Routing 的名稱。若要透過代理更新但沒有任何可用節點,應先向服務商確認可直接連線的訂閱入口。

如果中斷連線後又自動恢復,請檢查 Settings → On Demand 是否正依條件觸發連線。記錄原設定後再進行對照測試,測試完成後還原必要設定。別忽略這種自動連線行為,否則兩次看似相同的更新,實際上可能經由不同網路路徑。

五、更新完成但清單空白:檢查內容與匯入項目

節點清單空白不一定是網路問題。伺服器清單訂閱與包含規則的遠端設定檔用途不同;如果取得的是設定檔網址,應依設定檔的使用方式在 Config 中管理。不能因為它同樣使用 HTTPS,就認定它是 Home 所需的伺服器訂閱。

Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 是連線協定名稱,並非可以互換的訂閱格式標籤。不要為了讓清單顯示內容,就任意將伺服器的 Type 改成其他協定;伺服器端設定必須與用戶端參數相符。

結論:分別確認清單與連線是否恢復

先確認 Home 中已出現有效記錄,再選取節點測試連線;若記錄已存在但無法存取,請保留訂閱排查結果,改查該節點的參數與路由,避免反覆更換正常的訂閱網址。

六、更新時機與常見後續問題

服務商通知網址變更、帳戶狀態恢復,或確認伺服器清單有所調整後,適合進行更新。發生失敗時不要連續下拉重新整理;先記錄一次結果並完成相應檢查,避免請求頻率限制加重原有問題。訂閱更新也不會恢復 App Store 購買項目或延長服務商方案。

為什麼舊節點仍可用,訂閱卻無法更新?

舊節點使用已儲存的連線參數,更新時則會存取訂閱介面。保留舊記錄,先確認介面網址與帳戶權限;若只有直接請求逾時,再透過已確認可用的舊節點測試 Update via Proxy。

為什麼瀏覽器能開啟網址,App 卻仍然解析失敗?

瀏覽器可能帶有登入狀態,或只顯示驗證頁面。請服務商確認該網址無須網頁互動就能回傳適用的訂閱記錄;不要把瀏覽器「成功開啟」當成格式正確的證明。

改用行動網路就能更新,該檢查什麼?

先保留成功的結果,再回到原本的 Wi-Fi,確認是否需要網頁認證、是否有存取限制或網域解析異常。一次只測試一個條件;不要關閉憑證驗證來規避 HTTPS 錯誤。

向服務商回報時,應提供哪些資訊?

提供發生時間與時區、使用 Wi-Fi 或行動網路、是否使用代理更新、實際錯誤文字,以及舊節點是否仍可用。截圖時請遮住完整訂閱網址、token、密碼與伺服器憑證。

最後確認三件事:對應群組中有記錄、手動更新可完成、選取的節點能正常存取目標服務。若前兩項正常但第三項失敗,請前往使用說明檢查連線與 Global Routing;不要只因單一網站無法開啟,就認定整份訂閱已失效。

在 App Store 核對正版