Shadowrocket 訂閱匯入後節點為空:檢查連結格式、服務商端與更新時機

訂閱解析失敗或清單空白時,依序確認連結是否完整、服務商端的訂閱是否有效,以及手動與自動更新的時機,逐步找出問題。

本文重點

Shadowrocket(小火箭)儲存訂閱網址,不代表已取得並解析出節點。本文適合已有自己的服務商與訂閱的使用者,依序檢查「顯示狀態、網址、回應內容、手動更新、自動更新」;先保留原有設定與錯誤紀錄,再透過一次可觀察的更新判斷問題所在,避免反覆刪除或重複匯入。

先釐清:清單空白、群組收合與連線失敗

先在 Home 查看剛加入的訂閱群組。群組名稱已顯示,只能代表本機已儲存一個項目;無法證明訂閱請求成功,也無法證明回應內容中含有可辨識的節點。若群組目前收合,請先展開並清除搜尋條件,再確認是否真的沒有項目。

「節點為空」和「節點無法連線」發生在不同階段。前者應檢查網址、取得回應與解析;後者則是在已有節點可選後,才進一步檢查伺服器位址、連接埠、憑證與連線路徑。尚未取得清單前,別急著修改協定參數或反覆切換 Global Routing。

儲存網址 請求訂閱 接收內容 解析節點 顯示清單

檢查連結:複製的是訂閱網址,不是帳戶頁面

回到自己的服務商帳戶頁面,使用明確標示的訂閱複製入口。不要複製瀏覽器網址列中的帳戶首頁,也不要整段貼上分享說明。能在瀏覽器開啟的頁面,可能只是登入頁、說明頁或錯誤頁,不一定是 Shadowrocket 可解析的訂閱內容。

以下是假資料,僅用來說明 URL 結構,並非可用訂閱。網址中的查詢參數可能用於身分驗證;參數名稱不一定是 token,請勿照範例替換自己的實際欄位。

https://example.com/sub?token=xxxx
  1. 檢查開頭與結尾:確認複製內容完整,前後沒有空格、換行、引號或中文標點。
  2. 保留原始字元:不要自行修改 ?、&、=、% 後方的內容,也不要自行解碼後重新組合。
  3. 確認複製來源:聊天紀錄、電子郵件預覽或截圖辨識可能會截斷長網址;請優先回到原頁面重新複製。
  4. 確認網址用途:訂閱網址用於取得節點集合;單一節點的分享內容與 Config 設定檔並非相同類型的輸入。
  5. 確認憑證狀態:若曾重設訂閱憑證,舊連結即使格式正確也可能已失效;請重新取得目前使用的連結。

依流程重新檢查:在 Home 手動更新一次

先保留原項目,再確認類型與 URL。Home 用於管理節點與訂閱,Config 用於管理規則設定;將訂閱網址當作 Config 檔案匯入,並非排查節點為空的正確起點。以下步驟依 Home 的新增訂閱流程說明,儲存按鈕文字請以目前畫面為準。

  1. 記錄目前狀況

    在 Home 展開目標群組,記錄目前節點數量、更新提示與錯誤原文。若已有可用的設定,請先保留,不要刪除所有項目。

  2. 確認類型

    檢查原訂閱的編輯頁面;若確實需要重新新增,請前往 Home → 右上角「+」→ Type → Subscribe,避免將訂閱網址填入單一伺服器的參數欄位。

  3. 確認 URL

    將自己的完整訂閱連結貼到 URL 欄位,使用清楚且不含憑證的備註,確認內容沒有遭截斷後再儲存。

  4. 手動更新

    返回 Home,下拉重新整理以觸發更新,並等待這次操作完成。若有多個訂閱,請確認目標群組的結果,不能把其他群組更新成功當成此群組也成功。

  5. 確認結果

    再次展開目標群組,檢查是否出現節點及項目是否有變化。若仍為空白,請保存錯誤原文與發生時間,再檢查回應內容。

操作期間請維持目前網路與設定,不要同時重設連結、切換網路、修改路由並重複匯入。一次只變更一項條件,才能釐清是修正網址生效,還是存取路徑改變所致。

伺服器端檢查:HTTP 成功不代表解析成功

取得訂閱與連線至節點是兩種不同的網路操作。即使訂閱網址使用 HTTPS,回傳內容仍可能是登入表單、存取驗證頁面或空白本文。HTTP 狀態碼反映請求處理情況;節點是否出現,還取決於本文內容與格式。不要只憑「網址能開啟」就判定訂閱正常。

443
HTTPS 未明確指定連接埠時使用的預設連接埠,不代表節點連接埠
200
HTTP 請求成功後,仍須確認本文能否解析
429
Too Many Requests,表示請求受到速率限制

以下列出標準 HTTP 回應狀態的原文,供對照 App 中顯示的錯誤詳情,或服務商提供的回應紀錄;不代表 Shadowrocket 一定會逐字顯示這些文字。若只能看到籠統的失敗提示,請原樣記錄,不要自行推測狀態碼。

401 Unauthorized

原因與處理方式:請求缺少有效驗證資訊,或驗證遭拒;請向自己的服務商確認訂閱憑證是否有效,重新複製目前使用的連結後再更新。

403 Forbidden

原因與處理方式:伺服器拒絕此請求,可能與帳戶權限或存取限制有關;提供已遮蔽敏感資訊的紀錄,請自己的服務商確認拒絕原因,不要只靠切換路由猜測。

404 Not Found

原因與處理方式:請求路徑所對應的資源不存在;先確認 URL 是否遭截斷、舊入口是否已停用,再確認目前的訂閱入口。

429 Too Many Requests

原因與處理方式:請求次數觸發伺服器限制;停止連續重新整理,依伺服器說明等待;若有提供 Retry-After,請依其指示重試。

結論:收到 200 仍是空白,先檢查本文

請自己的服務商確認該網址回傳的是適用於 Shadowrocket 的非空訂閱內容,而不是網頁或其他格式;取得正確內容後,再進一步排查解析問題才有意義。

網路與解析:區分請求逾時與內容不相容

請求逾時、網域名稱解析失敗與 TLS 驗證失敗,都發生在取得可解析內容之前,不能直接歸因於特定節點協定。先檢查裝置時間,以及目前網路是否需要透過網頁驗證,再改用另一個自己可使用的網路進行一次對照更新。若遇到憑證錯誤,請勿關閉驗證或安裝來源不明的憑證來規避。

可觀察到的現象優先判斷下一步
等待很久後逾時請求路徑或伺服器回應尚未完成固定 URL,改用另一個可用網路對照一次,並記錄時間
回傳登入頁或驗證頁取得的是網頁,而非節點資料確認訂閱入口是否允許用戶端直接取得內容
請求完成,但本文為空目前帳戶可能沒有可回傳的項目請自己的服務商確認帳戶狀態、授權範圍與回傳紀錄
本文非空,但清單為空需要確認內容格式或項目欄位確認匯出格式適用於 Shadowrocket,並使用已遮蔽敏感資訊的範例排查
部分項目有出現不能直接判定整份訂閱都無法存取比對缺少項目的類型與必要參數,不要只檢查總數

Global Routing 中的 Proxy、Direct、Config、Scene 是路由選擇,不是訂閱格式轉換選項。若更新實際使用的路徑依賴已無法使用的代理,可能會影響請求;但不能因此認定所有訂閱都必須在特定模式下更新。先記錄目前的選擇,再依錯誤訊息與可用網路進行單一變因對照。

也不要因為訂閱文字「看起來像編碼」就認定內容已損壞。不同訂閱可能採用不同封裝方式,請勿任意進行 Base64 解碼、刪除行或更改協定名稱後覆寫原內容。需要確認的是來源是否回傳正確格式,以及項目參數是否完整,而不是手動拼出一份看似正常的清單。

更新時機:先確認手動更新,再檢查自動更新

首次匯入、手動重新整理與後續自動更新是不同事件。儲存 URL 不代表背景已立即完成取得;啟用自動更新設定,也不能證明某個時間點的請求必定成功。先在前景完成一次可觀察的手動更新,再確認目前 App 提供的訂閱自動更新設定與間隔;實際入口與選項請以 App 內顯示為準。

提供排查資訊與問題恢復後的確認

完成上述檢查後仍是空白,向自己的服務商提供可重現的紀錄,比只說「無法匯入」更容易找出問題。請勿附上完整訂閱憑證;若服務商需要確認帳戶,請透過其既有的私人支援管道處理。本網站不提供、不銷售也不推薦節點或訂閱;本文僅說明如何檢查使用者已有的資料。

清單恢復後,先確認目標群組確實出現項目,再選擇自己的節點進行連線測試。若只有某個節點無法連線,請停止反覆匯入訂閱,改為檢查該節點的參數與服務狀態。手動更新成功後,再觀察下一次自動更新,確認問題是否只發生在特定時機。

買斷用戶端 ≠ 線路方案。Shadowrocket 是 Apple 平台的付費用戶端,唯一取得管道為 App Store;購買 App 不包含連線服務。iPhone、iPad 及其他相容 Apple 裝置的系統需求,請以 App Store 頁面標示為準。

App Store 正版查驗