本文適用於已從自己的服務商取得訂閱,但在 Shadowrocket 中無法更新或看不到節點的使用者。先判斷是請求失敗、回應內容無法解析,還是清單顯示問題,再逐項檢查連結、帳戶狀態與更新路徑;保留仍可使用的記錄,每次只變更一個條件,最後分別透過更新結果與連線測試確認是否恢復。
一、先分辨更新失敗、解析失敗與清單空白
Shadowrocket(小火箭)的訂閱更新不等於連線測試。App 會先連線至訂閱網址並取得回應,再將其中支援的伺服器記錄解析到 Home。任何一步未完成,都可能看起來像是「沒有新增節點」,但需要檢查的環節並不相同。
先回到 Home,展開相關訂閱群組並清除搜尋條件,再確認是否只是群組收合或篩選結果遭隱藏。Config 主要用來管理設定檔;更新 Config 中的遠端設定檔,不代表 Home 中的伺服器訂閱也已更新。Settings 則可用來檢查更新行為等設定。
| 觀察到的狀況 | 優先檢查 | 暫時避免 |
|---|---|---|
| 等待更新後顯示逾時 | 目前網路、網域解析、訂閱請求路徑 | 反覆修改伺服器連接埠或密碼 |
| 很快就失敗,並顯示 HTTP 狀態碼 | 連結權限、服務商帳戶與介面限制 | 連續觸發更新 |
| 請求完成,但沒有可用記錄 | 回應內容、訂閱格式、顯示中的群組 | 先刪除仍可連線的舊記錄 |
| 節點存在,但連線失敗 | 伺服器參數與實際連線狀況 | 直接把連線問題當成解析問題 |
二、核對訂閱網址,別把網頁誤當成訂閱
訂閱網址應向你的服務商取得。帳戶登入頁面、方案說明頁面、個別伺服器分享連結與訂閱網址並非同一種內容。即使網址能在瀏覽器中開啟,也可能只回傳登入表單或驗證頁面,不能因此認定訂閱解析器可以讀取。
- 請從服務商帳戶重新複製適用於 Shadowrocket 的訂閱網址,不要從聊天截圖或換行文字中手動拼湊。
- 檢查開頭的
https://、完整路徑與查詢參數,移除網址前後的空格、引號及換行,但不要修改網址中的字元。 - 保留
?、&、=及原有的百分比編碼。不要刪除整段查詢參數,也不要自行重複編碼。 - 編輯 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,透過可用代理嘗試更新。啟用此選項無法修復失效憑證,也不會憑空提供可用連線。
- 記錄目前使用的 Wi-Fi 或行動網路、連線開關狀態,以及是否啟用 Update via Proxy,並保留原設定以便還原。
- 先在可信任且允許連線至訂閱網址的網路上測試直接更新。若要切換 Wi-Fi 與行動網路,請先確認 App 具備相應的網路存取權限。
- 只有仍有可用舊節點時,才測試代理更新:先確認舊節點能正常連線,再啟用 Update via Proxy,回到 Home 更新對應的訂閱。
- 記錄本次更新的完成時間、提示訊息與節點數量變化。若沒有改善,先還原該項設定,再檢查下一項;不要同時更換 DNS、節點與訂閱網址。
Global Routing 中的 Proxy、Direct、Config、Scene 用於不同的路由選擇,並非訂閱格式選項。排查時也要另外確認 Update via Proxy,而不能只看 Global Routing 的名稱。若要透過代理更新但沒有任何可用節點,應先向服務商確認可直接連線的訂閱入口。
如果中斷連線後又自動恢復,請檢查 Settings → On Demand 是否正依條件觸發連線。記錄原設定後再進行對照測試,測試完成後還原必要設定。別忽略這種自動連線行為,否則兩次看似相同的更新,實際上可能經由不同網路路徑。
五、更新完成但清單空白:檢查內容與匯入項目
節點清單空白不一定是網路問題。伺服器清單訂閱與包含規則的遠端設定檔用途不同;如果取得的是設定檔網址,應依設定檔的使用方式在 Config 中管理。不能因為它同樣使用 HTTPS,就認定它是 Home 所需的伺服器訂閱。
- 確認群組:在 Home 展開剛更新的訂閱,清除搜尋文字,並分辨手動新增的伺服器與訂閱群組。
- 確認格式:告知服務商使用的是 Shadowrocket,並確認對方提供的格式適用於目前的 App;不要自行將不明回應強行改成其他編碼。
- 確認記錄:請服務商確認該帳戶是否確實獲配伺服器記錄。能登入帳戶,不代表訂閱一定會回傳非空清單。
- 確認 App 狀態:在 App Store 查看 App 是否有可用更新;升級前請保留可還原的設定與既有資訊,不要先刪除 App。
Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 是連線協定名稱,並非可以互換的訂閱格式標籤。不要為了讓清單顯示內容,就任意將伺服器的 Type 改成其他協定;伺服器端設定必須與用戶端參數相符。
結論:分別確認清單與連線是否恢復
先確認 Home 中已出現有效記錄,再選取節點測試連線;若記錄已存在但無法存取,請保留訂閱排查結果,改查該節點的參數與路由,避免反覆更換正常的訂閱網址。
六、更新時機與常見後續問題
服務商通知網址變更、帳戶狀態恢復,或確認伺服器清單有所調整後,適合進行更新。發生失敗時不要連續下拉重新整理;先記錄一次結果並完成相應檢查,避免請求頻率限制加重原有問題。訂閱更新也不會恢復 App Store 購買項目或延長服務商方案。
為什麼舊節點仍可用,訂閱卻無法更新?
舊節點使用已儲存的連線參數,更新時則會存取訂閱介面。保留舊記錄,先確認介面網址與帳戶權限;若只有直接請求逾時,再透過已確認可用的舊節點測試 Update via Proxy。
為什麼瀏覽器能開啟網址,App 卻仍然解析失敗?
瀏覽器可能帶有登入狀態,或只顯示驗證頁面。請服務商確認該網址無須網頁互動就能回傳適用的訂閱記錄;不要把瀏覽器「成功開啟」當成格式正確的證明。
改用行動網路就能更新,該檢查什麼?
先保留成功的結果,再回到原本的 Wi-Fi,確認是否需要網頁認證、是否有存取限制或網域解析異常。一次只測試一個條件;不要關閉憑證驗證來規避 HTTPS 錯誤。
向服務商回報時,應提供哪些資訊?
提供發生時間與時區、使用 Wi-Fi 或行動網路、是否使用代理更新、實際錯誤文字,以及舊節點是否仍可用。截圖時請遮住完整訂閱網址、token、密碼與伺服器憑證。
最後確認三件事:對應群組中有記錄、手動更新可完成、選取的節點能正常存取目標服務。若前兩項正常但第三項失敗,請前往使用說明檢查連線與 Global Routing;不要只因單一網站無法開啟,就認定整份訂閱已失效。