Shadowrocket(小火箭)儲存訂閱網址,不代表已取得並解析出節點。本文適合已有自己的服務商與訂閱的使用者,依序檢查「顯示狀態、網址、回應內容、手動更新、自動更新」;先保留原有設定與錯誤紀錄,再透過一次可觀察的更新判斷問題所在,避免反覆刪除或重複匯入。
先釐清:清單空白、群組收合與連線失敗
先在 Home 查看剛加入的訂閱群組。群組名稱已顯示,只能代表本機已儲存一個項目;無法證明訂閱請求成功,也無法證明回應內容中含有可辨識的節點。若群組目前收合,請先展開並清除搜尋條件,再確認是否真的沒有項目。
「節點為空」和「節點無法連線」發生在不同階段。前者應檢查網址、取得回應與解析;後者則是在已有節點可選後,才進一步檢查伺服器位址、連接埠、憑證與連線路徑。尚未取得清單前,別急著修改協定參數或反覆切換 Global Routing。
- 群組存在但沒有節點:記錄本次更新結果,繼續檢查訂閱請求與回傳內容。
- 展開後出現節點:先確認是否只是顯示狀態改變,不要重新建立同名訂閱。
- 有節點但測試失敗:保留現有清單,另外檢查連線;延遲測試無法取代訂閱更新。
- 舊節點仍在、新節點未出現:檢查最近一次更新是否確實完成;舊清單本身不能證明本次請求成功。
檢查連結:複製的是訂閱網址,不是帳戶頁面
回到自己的服務商帳戶頁面,使用明確標示的訂閱複製入口。不要複製瀏覽器網址列中的帳戶首頁,也不要整段貼上分享說明。能在瀏覽器開啟的頁面,可能只是登入頁、說明頁或錯誤頁,不一定是 Shadowrocket 可解析的訂閱內容。
以下是假資料,僅用來說明 URL 結構,並非可用訂閱。網址中的查詢參數可能用於身分驗證;參數名稱不一定是 token,請勿照範例替換自己的實際欄位。
https://example.com/sub?token=xxxx
- 檢查開頭與結尾:確認複製內容完整,前後沒有空格、換行、引號或中文標點。
- 保留原始字元:不要自行修改
?、&、=、%後方的內容,也不要自行解碼後重新組合。 - 確認複製來源:聊天紀錄、電子郵件預覽或截圖辨識可能會截斷長網址;請優先回到原頁面重新複製。
- 確認網址用途:訂閱網址用於取得節點集合;單一節點的分享內容與 Config 設定檔並非相同類型的輸入。
- 確認憑證狀態:若曾重設訂閱憑證,舊連結即使格式正確也可能已失效;請重新取得目前使用的連結。
依流程重新檢查:在 Home 手動更新一次
先保留原項目,再確認類型與 URL。Home 用於管理節點與訂閱,Config 用於管理規則設定;將訂閱網址當作 Config 檔案匯入,並非排查節點為空的正確起點。以下步驟依 Home 的新增訂閱流程說明,儲存按鈕文字請以目前畫面為準。
-
記錄目前狀況
在 Home 展開目標群組,記錄目前節點數量、更新提示與錯誤原文。若已有可用的設定,請先保留,不要刪除所有項目。
-
確認類型
檢查原訂閱的編輯頁面;若確實需要重新新增,請前往 Home → 右上角「+」→ Type → Subscribe,避免將訂閱網址填入單一伺服器的參數欄位。
-
確認 URL
將自己的完整訂閱連結貼到 URL 欄位,使用清楚且不含憑證的備註,確認內容沒有遭截斷後再儲存。
-
手動更新
返回 Home,下拉重新整理以觸發更新,並等待這次操作完成。若有多個訂閱,請確認目標群組的結果,不能把其他群組更新成功當成此群組也成功。
-
確認結果
再次展開目標群組,檢查是否出現節點及項目是否有變化。若仍為空白,請保存錯誤原文與發生時間,再檢查回應內容。
操作期間請維持目前網路與設定,不要同時重設連結、切換網路、修改路由並重複匯入。一次只變更一項條件,才能釐清是修正網址生效,還是存取路徑改變所致。
伺服器端檢查:HTTP 成功不代表解析成功
取得訂閱與連線至節點是兩種不同的網路操作。即使訂閱網址使用 HTTPS,回傳內容仍可能是登入表單、存取驗證頁面或空白本文。HTTP 狀態碼反映請求處理情況;節點是否出現,還取決於本文內容與格式。不要只憑「網址能開啟」就判定訂閱正常。
以下列出標準 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 內顯示為準。
- App 長時間未開啟:重新進入 Home 後主動更新一次,不要只根據預設間隔判斷清單應該已經變更。
- 帳戶剛恢復有效:先向自己的服務商確認狀態已生效,再觸發一次更新;本機顯示無法證明伺服器端已完成變更。
- 訂閱憑證剛重設:先替換本機 URL,再進行更新。對著舊網址增加重新整理次數,無法恢復已撤銷的憑證。
- 手動更新成功、自動更新未見變化:記錄 App 是否在前景、裝置網路與目前更新設定,區分沒有新內容、未觸發更新與觸發後失敗。
- 手動與自動更新都失敗:回頭檢查連結與回應,不要只縮短更新間隔,以免觸發請求限制。
提供排查資訊與問題恢復後的確認
完成上述檢查後仍是空白,向自己的服務商提供可重現的紀錄,比只說「無法匯入」更容易找出問題。請勿附上完整訂閱憑證;若服務商需要確認帳戶,請透過其既有的私人支援管道處理。本網站不提供、不銷售也不推薦節點或訂閱;本文僅說明如何檢查使用者已有的資料。
- 現象:說明是群組空白、部分項目缺少,還是已有節點但連線失敗。
- 發生時間:記錄日期、時間與時區,方便比對伺服器端的請求紀錄。
- 操作:說明在 Home 手動更新後的結果,以及是否曾切換網路。
- 錯誤:保留實際錯誤原文;若沒有顯示狀態碼,請勿自行補上推測值。
- 環境:記錄裝置、系統與 App 內可確認的版本資訊;不要公開 URL、密碼、token 或完整 QR Code。
清單恢復後,先確認目標群組確實出現項目,再選擇自己的節點進行連線測試。若只有某個節點無法連線,請停止反覆匯入訂閱,改為檢查該節點的參數與服務狀態。手動更新成功後,再觀察下一次自動更新,確認問題是否只發生在特定時機。
買斷用戶端 ≠ 線路方案。Shadowrocket 是 Apple 平台的付費用戶端,唯一取得管道為 App Store;購買 App 不包含連線服務。iPhone、iPad 及其他相容 Apple 裝置的系統需求,請以 App Store 頁面標示為準。