Shadowrocket 訂閱更新教學:手動重新整理、開啟時自動更新與更新失敗排解

說明手動重新整理訂閱與開啟 App 時自動更新的設定位置,並從連結失效、網路無法連線及格式無法辨識三方面排解更新失敗。

本文重點

已有自己的訂閱時,先在 Home 手動重新整理並確認清單有效,再前往 Settings → Subscribe 開啟 Update on Open。更新失敗時,先判斷請求是否抵達訂閱網址,再檢查回應內容能否解析;不要把訂閱重新整理、連線測試和 Config 更新混為一談。本文依序說明操作、驗證與排解方式。

訂閱更新的範圍:重新整理清單,不是更新 App

Shadowrocket(小火箭)的訂閱更新,是重新讀取自己已有的訂閱網址,並據此更新 Home 中對應群組的連線項目。遠端調整名稱、網址、連接埠或其他連線參數後,本機通常需要重新取得資料,才能看到這些變更。本文以使用者已持有自己的服務商帳戶與訂閱為前提。

讀取訂閱網址 向遠端送出請求 解析連線項目 更新本機清單

在這個流程中,成功取得回應與成功解析出項目是兩個獨立條件。訂閱伺服器回傳登入頁面,即使網路請求成功,也不代表取得了有效訂閱;清單已更新,也不代表其中每條連線都能正常使用。連線是否可用,還取決於遠端服務狀態、驗證參數與目前網路。

手動重新整理:先確認網址,再檢查群組

首次匯入或更新異常時,先手動重新整理。這樣可以直接查看此次操作的結果,不必等待自動觸發。操作前記下目標群組名稱、目前項目數量,以及一個準備核對的連線名稱,方便前後比較;不必記錄或公開訂閱憑證。

  1. 確認訂閱類型

    前往 Home,找到現有的訂閱群組。首次新增時,點選 Home 右上角的「+」→ Type → Subscribe,填入自己的訂閱網址並儲存。單一分享連結不是可持續重新整理的訂閱清單。

  2. 確認完整網址

    開啟該訂閱的編輯項目,檢查 URL。確認查詢參數完整,前後沒有多出的空格、換行或說明文字;只檢查自己的網址,不要將完整內容貼到公開討論區。

  3. 下拉重新整理清單

    返回 Home,在清單區域向下拉動後放開,觸發訂閱重新整理。等待操作完成,留意失敗提示;若有多個訂閱,請分別確認目標群組的結果。

  4. 檢查更新結果

    比較目標群組名稱、項目數量及已知有變更的項目。若遠端已明確修改某條連線,進入該項目的編輯資訊,核對網址或連接埠,再進行連線測試。

以下只展示網址結構,無法用於連線。範例中的 token 是查詢參數;實際網址可能使用其他參數名稱,也可能將憑證放在路徑中。請勿依照範例替換自己網址中的欄位。

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

開啟時自動更新:在 Subscribe 中設定

手動重新整理成功後,再前往 Settings → Subscribe → Update on Open,開啟 App 時更新。此設定會在開啟 App 時觸發訂閱資料擷取,並非固定間隔的背景排程。只讓連線維持運作、沒有開啟 App,不能據此認定訂閱已重新整理。

Update on Open 與 On Demand 的用途不同。前者控制取得訂閱資料的觸發時機,後者用於按需觸發連線。修改 Settings → On Demand 無法修復訂閱網址,也不能取代清單更新;排解訂閱問題時不必同時調整這兩項設定。

操作或設定觸發方式核對重點
在 Home 下拉重新整理由使用者手動操作此次操作的提示、目標群組及已知項目變化
Update on Open開啟 App 時觸發實際取得資料的結果,而不只是開關是否開啟
On Demand依連線條件觸發連線狀態,不可作為訂閱已更新的證明

結論:手動成功後再開啟自動更新

先完成一次可重現的成功重新整理,再開啟 Update on Open。之後若發生問題,就能分辨是網址失效還是自動觸發未完成,無須同時修改多項設定。

更新失敗排解:分別檢查連結、網路與格式

先記下畫面上顯示的完整提示,再依以下三類原因排查。不同系統語言或請求階段可能出現不同文字;錯誤訊息只能提供線索,不能只憑一句通用提示就斷定訂閱已過期。

錯誤:Failed to load subscription

原因與解法:這是訂閱載入失敗的概括提示,可能與網址授權、請求失敗或回應格式異常有關。先向自己的服務商確認網址是否有效,再分別檢查網路連線與回應內容。

錯誤:The request timed out.

原因與解法:請求未能在等待時間內完成,可能與目前網路、請求路徑或訂閱伺服器回應有關。分別在 Wi-Fi 與行動網路下手動重新整理,比較是否只有其中一種網路失敗。

錯誤:A server with the specified hostname could not be found.

原因與解法:無法解析訂閱網址中的主機名稱。先確認網域名稱是否複製完整,再切換網路重試;若網域已變更,請向自己的服務商確認目前使用的網址。

第一類:連結失效或授權變更

服務商重設憑證後,舊網址可能仍保留在 Home 中,卻已無法取得內容。若回應為 HTTP 401 或 403,優先檢查授權狀態與存取限制;若回應為 404,則檢查路徑是否已變更。這些狀態不一定代表某一種特定帳戶問題,仍須根據自己的服務資訊判斷。

第二類:網路無法連線或請求路徑異常

若 Wi-Fi 失敗但行動網路成功,應優先檢查兩種連線環境的差異,而非立即重建訂閱。先完成網路切換比對,再檢查目前連線是否影響請求。Global Routing 中的 Proxy、Direct、Config、Scene 是路由模式;變更這些設定可能影響網路存取,但不會改變訂閱憑證的有效性。

第三類:回應內容無法辨識

HTTP 200 僅表示請求收到成功回應,不保證內容是有效的連線清單。伺服器可能回傳登入頁面、維護通知或其他文字。瀏覽器能顯示頁面,也不代表 Shadowrocket 能將其解析為訂閱內容。

重新整理後沒有變化:透過項目欄位驗證

訂閱可能已成功重新整理,但看起來完全沒有變化:若遠端沒有修改內容,名稱與數量自然會維持原樣。反過來說,數量相同也不能證明沒有更新,因為伺服器網址、連接埠或驗證參數可能已經變更。驗證時應選擇一個已知有變更的項目,而不只是查看清單長度。

觀察到的情況需要核對的事項下一步
名稱與數量都沒有變化遠端是否確實修改內容,以及查看的是否為正確群組核對一條已知有變更的連線欄位
清單已變更,但連線失敗遠端可用性、驗證參數與目前網路轉而排解連線問題,不要反覆重新整理清單
只有部分項目缺失遠端回傳的項目數量、項目格式與參數完整性向自己的服務商確認缺少的項目是否仍包含在訂閱中
開啟 App 後仍是舊內容Update on Open 是否已開啟,以及此次請求是否完成手動重新整理一次,並記下提示

例如,遠端明確通知某條連線的連接埠從 443 改為 8443,重新整理後就核對該項目的連接埠,而不只查看名稱。這裡的數字僅用來說明驗證方法,並非建議任何現有連線使用的連接埠;實際參數必須與使用者已有的設定一致。

回報問題前:保留狀況,隱藏憑證

完成上述比對後若仍失敗,請整理最精簡的排錯紀錄,讓對方能分辨「無法取得內容」與「已取得但無法解析」,同時避免洩露可存取訂閱的完整網址。訂閱憑證可能位於查詢參數或路徑中,因此不能只遮蔽名為 token 的欄位。

透過 App Store 確認正版