適用於已有服務商訂閱,並需要更新 Home 伺服器清單的使用者。先手動更新一次確認連結可用,再開啟「開啟時更新」;若更新失敗,依序檢查連結、回應內容、網路和裝置時間。最後分別確認「訂閱已更新」與「伺服器可連線」,不要混為一談。
1. 先區分訂閱更新、設定檔更新與連線
Shadowrocket(小火箭)是 Apple 平台的付費用戶端,唯一取得管道為 App Store,開發者為 Shadow Launch Technology Limited。主要供 iPhone、iPad 使用;其他 Apple 裝置的相容性、系統需求及購買適用性,請以 App Store 頁面標示為準。本文說明用戶端如何讀取使用者已有的訂閱,不涉及服務選擇。
Home 中的 Subscribe 儲存的是遠端訂閱網址。更新時,App 會向該網址發出請求、解析回傳內容,並更新對應的伺服器群組。Config 中的設定檔則管理規則、策略等內容;更新 Home 訂閱,不代表重新下載 Config 設定檔,也不會變更 Global Routing。
判斷:先確認要更新哪一類內容
伺服器位址或數量有變化,請檢查 Home 訂閱;需要調整網站分流結果,則檢查 Config 與 Global Routing。請勿為了解決訂閱請求失敗而先修改 DOMAIN-SUFFIX 或 FINAL 規則。
2. 手動更新:從 Home 更新現有訂閱
排查自動更新前,先手動更新一次並確認結果。若尚未新增訂閱,可在 Home 點選右上角「+」,進入 Add Server,將 Type 設為 Subscribe,填入自己的訂閱 URL 後儲存。已有的訂閱不必每次重新新增;重複新增容易產生多個名稱相近的群組,反而難以確認實際使用的是哪一個。
-
確認訂閱
前往 Home,找到對應的訂閱群組。若要檢查網址,請開啟該 Subscribe 項目的編輯資訊,確認 URL 與服務管理頁面提供的網址一致,而不是帳戶登入頁或說明頁面。
-
下拉更新
在 Home 的伺服器清單向下滑動,觸發訂閱更新。若有多個訂閱,請留意這次更新的是哪個群組;發生錯誤時記下完整提示,不要只憑更新動畫結束就判定成功。
-
確認更新結果
等待請求完成後,查看對應群組中的伺服器名稱與數量。若服務端內容沒有變更,更新成功後也可能看不出清單變化;若預期內容有變但仍未出現,請再檢查訂閱網址與服務端內容。
-
測試連線
確認清單可正常讀取後,再選擇自己有權使用的伺服器並測試連線。更新成功只表示訂閱內容可取得並解析,不代表每台伺服器都能成功連線。
更新可能會替換群組中的項目。若原先選取的項目遭移除、改名或參數變更,請重新確認目前的選擇。不要將手動修改的訂閱項目當作長期備份:下次更新時,遠端回傳內容可能覆蓋本機修改。
3. 開啟時自動更新:設定位置與觸發時機
前往 Settings → Subscribe,找到 Update On Open 並開啟,即可在開啟 App 時自動更新訂閱。介面語言或 App 版本可能影響文字大小寫與排列;請在 Subscribe 設定中確認代表「開啟時更新」的選項,不要到 On Demand 尋找。
- 開啟前:先在 Home 手動更新成功,確認 URL、存取權限及內容格式都正確。
- 開啟後:下次開啟 App 時留意更新結果;從其他頁面切回 Home,不應視為觸發了一次新的啟動更新。
- 有多個訂閱:請逐一確認各群組。某個群組更新成功,不代表其他訂閱也已更新成功。
- 發生錯誤:回到 Home 手動重試並查看提示,比反覆切換自動更新選項更容易找出問題。
Update On Open 不代表 App 關閉後會按固定間隔持續擷取資料,也不保證裝置離線時能完成更新。網路請求仍須經過網域解析、建立連線、TLS 驗證及內容解析;任何一步失敗,都可能保留舊清單或顯示更新錯誤。
4. 連結失效或格式不符:先檢查回傳內容
訂閱 URL 通常包含用於識別存取權限的參數。複製時遺漏查詢字串、網址末尾多了空格、連同換行一起貼上,或繼續使用已重設的網址,都可能導致更新失敗。以下僅為結構示例,無法用來取得內容。
https://example.com/sub?token=xxxx
URL 中 ? 後方的參數也是網址的一部分,不能只保留網域與路徑。訂閱網址包含憑證,不應貼到公開留言、截圖或線上解析頁面;需要他人協助時,只提供隱去 token 後的網址結構、錯誤文字及發生條件。
| 觀察結果 | 可能原因與處理方式 |
|---|---|
| HTTP 401 或 403 | 請求未獲授權或遭到拒絕。請確認服務帳戶狀態、連結是否已重設及存取限制;僅憑狀態碼無法確定唯一原因。 |
| HTTP 404 或 410 | 找不到資源或資源已移除。請回到自己的服務管理頁面確認目前的訂閱入口,不要猜測新的路徑。 |
| HTTP 200,但回傳內容是 HTML | 請求成功不代表訂閱有效。回傳內容可能是登入頁、驗證頁或錯誤說明頁,無法解析為伺服器清單。 |
| 回傳空白內容或無法辨識的資料 | 確認所選訂閱的輸出格式是否適用於 Shadowrocket,並向自己的服務提供者確認實際回傳內容。 |
若 App 顯示無法解析,請先確認取得的是伺服器訂閱,而不是完整的其他格式設定檔。不要只看副檔名判斷格式,也不要任意將內容改成其他副檔名。不同協定項目需要不同參數;缺少驗證資訊或傳輸設定時,即使顯示名稱,也可能無法連線。
5. 網路逾時與裝置時間:依錯誤訊息排查
錯誤提示可能來自 App,也可能來自 Apple 網路框架。以下列出常見的系統錯誤原文,實際顯示語言及包裝文字可能不同。記下原文或錯誤碼後逐項排查,不要把所有失敗都歸因於訂閱過期。
錯誤:The request timed out.
原因:請求未能在允許時間內完成,可能與目前網路、連線路徑或遠端回應延遲有關。
解決方法:確認一般網路連線正常,再分別使用可信任的 Wi-Fi 與行動網路手動更新一次;若只有某個網路失敗,優先檢查該網路的限制。
錯誤:A server with the specified hostname could not be found.
原因:無法解析訂閱網域,常見原因包括網域拼寫錯誤、網域失效或目前 DNS 解析異常。
解決方法:確認 URL 中的主機名稱完整,再切換至可用網路重試;不要直接用猜測的 IP 位址取代 HTTPS 網域。
錯誤:The Internet connection appears to be offline.
原因:系統判定目前沒有可用的網際網路連線,或 App 無法透過目前的網路發出請求。
解決方法:確認 Wi-Fi 是否需要先完成網路登入,並在系統設定中確認 Shadowrocket 已獲准使用行動數據,然後返回 Home 更新。
錯誤:The certificate for this server is invalid.
原因:TLS 憑證驗證失敗,可能與裝置時間錯誤、憑證過期、主機名稱不符或網路攔截有關。
解決方法:先檢查系統日期與時區;若時間正確但仍出現錯誤,請向自己的服務提供者反映,不要關閉憑證驗證來規避問題。
在 iPhone 或 iPad 的系統 Settings → General → Date & Time 中檢查 Set Automatically,並確認日期、時間與時區設定正確。憑證有生效與到期時間;裝置時鐘偏差過大,可能使有效憑證被判定為尚未生效或已過期。修正時間後,再手動更新一次。
- 網域解析錯誤通常對應
NSURLErrorDomain -1003,逾時通常對應-1001,離線通常對應-1009;錯誤碼可用於分類,但不能直接證明問題根源。 - 若訂閱 URL 使用預設 HTTPS,連線埠通常為
443;這不代表訂閱中的每台伺服器也使用該連線埠,請勿統一修改伺服器連線埠。 - 每次只變更一項條件,例如網路或系統時間,再重新測試。同時變更多項設定,會無法判斷哪項變更有效。
6. 更新成功但仍無法連線:分開檢查
訂閱更新成功後,資料請求與實際連線仍是兩項不同的檢查。訂閱網址可能連得上,但清單中的某台伺服器無法連線;伺服器也可能可以連線,但目前的路由方式未依預期使用它。請先確認目前選取的伺服器,再檢查 Global Routing 與 Config,不要立刻刪除所有訂閱。
- Global Routing → Config:流量會依目前啟用的設定檔規則處理。確認 Config 選取的是預期檔案,並檢查規則順序。
- Global Routing → Proxy:用於代理路由模式,不會自動補上失效的訂閱憑證,也無法修復伺服器參數。
- Global Routing → Direct:用於直連路由模式;此時網站可正常存取,不代表訂閱中的伺服器已通過驗證。
- Global Routing → Scene:請依現有 Scene 的實際設定進行檢查,不要將它視為訂閱更新選項。
例如,設定檔中有 DOMAIN-SUFFIX,example.com,PROXY 和末尾的 FINAL,DIRECT 時,指定網域是否符合規則會影響請求的出口。更新訂閱不會自動改寫這些規則。測試連線時,也應確認目標是否確實套用預期策略,而不只是查看 Home 是否出現新名稱。
結論:保留錯誤資訊,再決定是否重新建立
先記下更新提示、失敗時間、使用的網路及受影響的群組,再檢查連結與回應內容。只有確認原項目儲存錯誤或需要更換網址時,才重新建立訂閱;重新安裝 App 通常無法解決遠端拒絕存取、連結失效或憑證異常。
7. 提供排查資訊與日常維護
需要向自己的服務提供者反映時,請描述可重現的狀況,不要只寫「無法更新」。有用的資訊應能區分請求階段與連線階段,同時保護訂閱憑證。保留舊群組的必要資訊,避免尚未確認問題前就同時清空清單、重設設定及刪除設定檔。
- 請求結果:完整錯誤文字、錯誤碼或 HTTP 狀態碼;不要只截取彈出視窗標題。
- 操作方式:是在 Home 下拉更新時失敗,還是開啟 App 時自動更新失敗。
- 影響範圍:只有一個訂閱失敗,還是所有訂閱都失敗;舊伺服器是否仍可連線。
- 環境差異:Wi-Fi 與行動網路的結果是否相同,以及裝置時間是否正確。
- 隱私保護:遮蔽訂閱 token、帳戶資訊及驗證參數,不要公開完整 URL。
日常使用時可保持 Update On Open 開啟,並在服務提供者通知網址或伺服器資訊變更後手動更新一次。自動更新可減少重複操作,但不保證服務可用;最後仍應以對應群組的更新結果、目前選取項目及實際連線測試為準。