Shadowrocket 訂閱更新:手動更新、開啟時自動更新與失敗原因

訂閱連結由你的服務商提供,Shadowrocket(小火箭)只負責把它拉取下來、轉換成 Home 列表裡的節點。本文給出手動更新的兩處入口、開啟時自動更新的設定位置,以及更新失敗時從網路到內容的排查順序。

本文速覽

本文講清三件事:手動更新的兩個入口(Home 下拉重新整理、訂閱詳細資料頁 Update),Settings → Subscribe 裡 Update on Open 與 Update via Proxy 兩個開關的作用邊界,以及更新失敗時依「網路 → 連結 → 內容」順序逐項驗證的方法。適合已經從自己的服務商取得訂閱連結、但更新時好時壞的使用者。

訂閱的存放位置:Subscribe 項目與 Config 的差異

訂閱連結由你的服務商提供,通常是一條帶 token 的網址,形如 https://example.com/sub?token=xxxx(網域與 token 都是範例值,請替換成你自己服務商提供的網址)。在 Shadowrocket 裡,它會被新增成一條 Subscribe 類型的項目:切到底部標籤列的 Home,點右上角「+」,把 Type 選為 Subscribe,貼上連結後儲存。

儲存完成後,Home 列表裡會出現這條訂閱,展開可以看到服務商下發的節點。所謂「更新訂閱」,就是重新向這個網址發起一次請求,把回傳的節點列表整批取代到本機——連結本身不變,內容以服務商目前下發的為準。

比較項目Subscribe(訂閱)Config(設定檔)
承載內容服務商下發的節點列表規則與分流設定(DOMAIN-SUFFIX / GEOIP / IP-CIDR / FINAL)
新增入口Home 右上角「+」→ Type 選 SubscribeConfig 標籤 → 右上角「+」填入連結或貼上文字
更新方式Home 下拉重新整理,或訂閱詳細資料頁點 UpdateConfig 列表下拉重新整理
更新後的變化節點名稱、數量與參數依服務商目前下發覆蓋整份規則集合被取代

Config 與 Subscribe 是兩條獨立鏈路:Config 是規則設定檔,DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINAL 這些關鍵字寫在裡面;Subscribe 只承載節點。更新訂閱不會順帶更新規則檔,反過來也一樣。遇到「節點換了但分流沒變」的情況,先確認是不是只更新了一半。

前提

訂閱連結、節點與流量都來自你的服務商;Shadowrocket 是 App Store 上一次性買斷的用戶端,買斷的是用戶端本身,不含任何線路或訂閱。

手動更新:Home 下拉重新整理與詳細資料頁 Update

手動更新有兩個入口,效果相同,都是向訂閱網址重新發起一次請求:整表重新整理用 Home 下拉,單條重新整理用訂閱詳細資料頁的 Update。下面依實際操作順序列出。

  1. 切到 Home 列表

    底部標籤列切到 Home,確認列表裡已有 Subscribe 項目;沒有就先點右上角「+」,把 Type 選為 Subscribe 並貼上訂閱連結。

  2. 下拉重新整理訂閱

    把列表捲到頂端再向下拉,放開後開始更新,項目右側會顯示重新整理狀態,完成後消失。

  3. 詳細資料頁點 Update

    點進 Subscribe 項目,在詳細資料頁點 Update,只更新這一條訂閱,不影響列表裡的其他項目。

  4. 核對節點數量

    展開項目,把節點數量與服務商告知的數量對一遍;數量對不上,代表這次拉取到的內容不完整。

  5. 選取節點並連線

    點選一個節點,打開頂端連線開關;首次連線會彈出 VPN 設定授權,允許後回到 Home 確認狀態為 Connected。

更新是整批取代,不是增量合併。服務商刪掉的節點會從列表裡消失;你在這條訂閱下改過的備註、連接埠(例如 443)、加密方式,下一次更新會被下發值覆蓋。需要長期保留的自訂參數,建議複製成一條手動新增的節點,不要直接改訂閱裡的項目。另外,更新時如果正連著這條訂閱裡的節點,過程可能打斷目前連線,穩妥做法是先關掉連線開關再更新。

結論:先分清「取不到」和「取到了但內容不對」

列表完全沒變化、彈出錯誤,屬於取不到,查網路與連結;節點數量變少、名稱變成一串無意義字元或提示文字,屬於取到了但內容不對,找服務商核對訂閱狀態。兩條路的動作完全不同,混在一起試只會浪費時間。

開啟時自動更新:Settings → Subscribe 裡的兩個開關

不想每次手動下拉,可以交給自動更新。入口在底部標籤列最後一個 Settings,展開 Subscribe 分組,與更新直接相關的有兩個開關(以下用英文項目名稱,不同版本的文案可能略有差異,以你裝置上實際顯示的為準)。

怎麼選:訂閱網域在目前網路下能直連的,只開 Update on Open 就夠,更新請求不經過節點、不佔用線路流量;訂閱網域被目前網路攔掉的,再疊加 Update via Proxy。需要說明的是,Update on Open 的觸發點是「你打開 App」,iOS 不會讓 App 在背景按小時定時連網,所以訂閱的新鮮度取決於你多久打開一次 Shadowrocket。更新失敗時,列表裡保留的仍是上一次成功拉取的內容,不會變空。

結論:Update via Proxy 是應急開關

打開它之後,訂閱更新依賴目前這條代理鏈路:節點可用時更新順暢,節點本身出問題時更新會連帶失敗,而錯誤訊息看起來和一般網路故障一模一樣。平時保持關閉,只在確認訂閱網域不可達時臨時打開,更新完成後再關掉,排查時能少一個變數。

更新失敗的排查順序:從網路到內容

排錯不要從反覆點重試開始,依固定順序走一遍:網路是否可達 → 連結是否有效 → 回傳內容是否為訂閱。錯誤訊息原文本身就是分類依據,英文文案多半來自系統網路層,把它當標籤用比猜原因快。

  1. 換網路:Wi-Fi 與行動網路互換一次,排除目前網路對訂閱網域的攔截。
  2. 驗連結:把訂閱連結原樣貼到瀏覽器網址列打開,看回傳的是節點列表文字,還是網頁、登入頁或錯誤提示。
  3. 借道更新:手上有可用節點時,先連上節點,再打開 Settings → Subscribe 的 Update via Proxy 更新一次。
  4. 找服務商:以上都正常仍失敗,把錯誤訊息原文和訂閱連結的網域一起發給服務商,確認訂閱是否到期、網域是否變更。

錯誤:The Internet connection appears to be offline.

原因與解法:裝置目前沒有可用的系統網路——飛航模式未關、Wi-Fi 未連上或行動數據被關閉。先恢復系統網路再更新;如果只是訂閱網域不可達而節點可用,可在 Settings → Subscribe 打開 Update via Proxy 後重試。

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

原因與解法:訂閱網址的網域解析失敗,常見於連結裡的網域拼字錯誤、網域已停用或本機 DNS 解析異常。逐字核對連結網域,再把 Wi-Fi 與行動網路互換一次;仍失敗就找服務商確認網域是否已經變更。

錯誤:The request timed out.

原因與解法:請求已送出但沒有在逾時時間內收到回應,通常是訂閱網域在目前網路下被限速或阻斷。先連上一個可用節點,打開 Update via Proxy 再更新;換一個網路環境重試同樣有效。

錯誤:The certificate for this server is invalid.

原因與解法:訂閱網址的 HTTPS 憑證不被系統信任,可能已過期、為自簽憑證,或請求被中途替換。不要忽略憑證警告繼續使用,先找服務商確認憑證狀態,或索取一個憑證有效的訂閱網址。

錯誤:Failed to load subscription

原因與解法:請求成功但回傳內容不是合法的訂閱格式——常見是回傳了網頁、登入頁或到期提示。把連結貼到瀏覽器裡看一眼回傳內容;確認連結帶完整 token,並向服務商確認訂閱是否仍在有效期限內。

如果沒有任何錯誤、列表卻始終不變,先確認下拉動作是否真的觸發(列表要捲到頂端再下拉),再確認是不是在更新另一條訂閱——Home 裡可以同時存在多條 Subscribe 項目,下拉重新整理會一起更新,而詳細資料頁的 Update 只作用於目前這一條。

常見疑問

下面幾條是訂閱更新情境裡最常被問到的操作問題,答案都對應到具體入口。

同一條訂閱連結,在另一台裝置上能更新,這台一直失敗?

先排除這台裝置自己的網路:Wi-Fi 與行動網路互換一次;再連上一個可用節點,打開 Settings → Subscribe 的 Update via Proxy 重試。仍然失敗,就看這條連結是否帶完整 token——部分服務商對同一 token 的並行請求有限制,多台裝置同時重新整理會被拒絕,間隔幾分鐘再試。

更新後節點名稱變了,Config 裡的規則還生效嗎?

規則依 DOMAIN-SUFFIX、GEOIP、IP-CIDR 這類條件比對目標位址,不認節點名稱,所以絕大多數規則不受影響。但如果你在設定檔裡依舊節點名稱做過參照,名稱變化後會失配,需要打開設定檔重新指定一次。

Update on Open 開著,每次啟動都會連網拉一次嗎?

會。觸發點就是啟動 App 或從背景切回前景,每次觸發都會向訂閱網址發一次請求。訂閱內容不常變的話,把它關掉、改用 Home 下拉手動更新,請求頻率更好控制。

訂閱更新會覆蓋我手動改過的節點參數嗎?

會。更新是整批取代,這條訂閱下的項目以下發的為準,你改過的備註、連接埠、加密方式在下次更新後都會回到服務商的值。要長期保留就把改好的參數複製成一條手動新增的節點。

訂閱連結可以直接複製到另一台 iPhone 上用嗎?

技術上可以,但連結裡的 token 等同於帳號憑證,誰拿到都能拉取你服務商下發的節點列表。轉傳、截圖、貼到公開場合都可能造成外洩;要在新裝置上使用,優先問服務商有沒有對應的多裝置方案。

App Store 正版驗證