本文重點整理

Shadowrocket(小火箭)的 On Demand 用來依條件觸發 VPN 連線,並非省電開關。本文適合已有服務商與訂閱、想確認背景耗電來源的 iPhone 和 iPad 使用者:先分清自動觸發與連線後的流量處理,再查看系統電池記錄,最後在相同網路與設定下比較開啟和關閉的情況,決定保留自動連線或改為手動連線。

On Demand 和背景連線不是同一回事

先說結論:不能只因為 On Demand 已開啟,就認定它是耗電原因;也不能只因為關閉它,就認定 VPN 已中斷。On Demand 決定系統何時依既有條件發起連線;VPN 建立後,仍會處理符合路由設定的網路請求。實際耗電也會受到請求數量、網路訊號、連線重試、伺服器回應及螢幕使用情況影響。

在 Shadowrocket 中前往 Settings → On Demand,先確認目前是否已啟用及既有條件。系統會依適用的按需連線條件判斷是否建立連線;條件可能與目前網路環境及網路存取有關。這不代表「只有開啟某個網頁才會運作」,也不保證鎖定螢幕後會立即停止。可設定的項目請以 App 內實際顯示為準,勿照搬與目前介面不符的開關名稱。

網路條件變更 判斷按需條件 建立系統通道 套用路由策略 請求完成或重試

這個流程區分兩個階段:前半段是觸發連線,後半段是連線建立後的運作。即使 Shadowrocket 的前景畫面已關閉,系統 VPN 通道仍可能保持連線;反過來說,前景畫面沒有開很久,也不代表背景一定沒有處理流量。離開前景畫面不是可靠的中斷連線或省電驗證方式。

先從 iPhone 電池頁面查看三項資訊

開啟系統「設定 → 電池」,選擇頁面提供的時間範圍,再查看 App 清單。不同系統的圖表與時間範圍名稱可能不同,請以裝置上的實際介面為準。不要只截取單一 App 的百分比:這個數字通常代表所選範圍內的耗電占比,不是該 App 單獨讓電池電量下降了多少個百分點。

  1. 確認統計時段。選擇涵蓋問題發生時間的範圍;若圖表支援選取小時或日期,請縮小到電量異常下降的時段。記錄是否正在充電、螢幕是否長時間開啟,以及當時使用 Wi-Fi 或行動網路。
  2. 查看活動說明。點開 Shadowrocket 的項目,或使用頁面提供的活動顯示方式,確認是否有背景活動。系統對網路延伸功能的耗電歸屬有自己的統計方式,不能把清單中的單一項目當作整條網路連線的獨立耗電測量。
  3. 確認同期其他 App。若影片播放、照片同步、系統更新或大型檔案傳輸也在電量下降時發生,應一併納入判斷。請求即使由其他 App 發起,也可能經過 VPN;「背景活動時間較長」不等於「異常耗電」。

例如,某個時段 Shadowrocket 顯示的占比比昨天高,可能是其他 App 今天用得較少,而非 Shadowrocket 的絕對耗電量增加。應一併查看該時段整部裝置的電量曲線、活動情況與使用工作。以下數字是建議的觀察安排,不代表產品效能或實測續航結果。

2 輪
分別觀察開啟與關閉 On Demand,其餘條件保持一致
30 分鐘
每輪建議的初步觀察時間;差異不明顯時可延長觀察
3 項
共同記錄電量變化、背景活動與連線重試情況

結論:使用相同時段比較,不要只看占比排名就關閉設定

先選出電量明顯下降的時段,再確認網路工作與重新連線記錄;若只有占比提高、整部裝置的耗電速度並未加快,暫時不必為了這個數字改變連線方式。

按照固定步驟進行開關比較

比較測試前要先釐清問題:是「自動連線是否頻繁觸發」,還是「保持連線是否比中斷更耗電」。兩者不能混在同一次測試中。若兩輪都手動維持相同的 VPN 連線,On Demand 開關的差異主要在自動觸發行為,不應期待它改變相同流量的處理成本。

  1. 記錄目前狀態。在 Home 記下目前的連線狀態與 Global Routing 選項,在 Config 確認目前設定,再到 Settings → On Demand 記錄原本的狀態。只需記錄,排查耗電時不要順便修改規則、協定或訂閱。
  2. 固定測試環境。兩輪都使用同一處 Wi-Fi、相近的螢幕亮度與相同工作,並保持低耗電模式狀態一致。不要第一輪在行動網路訊號微弱時測試,第二輪改用穩定 Wi-Fi 後,便把差異歸因於 On Demand。
  3. 觀察開啟狀態。維持目前的按需條件,記錄開始與結束時的電量、VPN 是否自動建立連線、是否多次中斷重連,以及鎖定螢幕期間是否有實際同步工作。
  4. 觀察關閉狀態。關閉 On Demand。若要測試自動重新連線,先在 Home 中斷連線,再觀察是否仍有連線行為;若要測試連線期間的處理耗電,則手動連線,並維持與上一輪相同的工作。
  5. 複核並還原。將結果與系統電池頁面對照;若差異很小、統計時段不吻合或環境變化明顯,應再次觀察。完成後還原所需設定,不要為了測試而長時間中斷必要連線。

Global Routing 會影響流量路徑,但不能取代連線開關

Global Routing 與 On Demand 負責不同層面。前者決定請求的路由方式,後者負責依條件觸發連線。將 Global Routing 改為 Direct,不代表系統 VPN 通道已中斷;改為 Config,也不代表不會有符合代理策略的請求。

介面項目確認重點排查時的限制
Proxy採用代理路由方式,並確認目前選取的出口可用。不能只根據這項選擇推斷耗電量;仍須確認流量與連線品質。
Direct採用直接連線方式。這不是 VPN 中斷按鈕,不適合用來判斷「通道已停止」。
Config依目前設定中的規則與策略處理請求。比較時維持相同設定,避免同時變更規則而造成流量路徑不同。
Scene確認既有情境設定及其實際套用結果。情境設定可能改變比較條件,應記錄實際生效的路由行為。

使用 Config 時,DOMAIN-SUFFIX、IP-CIDR、GEOIP 和 FINAL 等規則會影響請求的比對結果,但不應把「修改更多規則」當成通用的省電方法。先確認特定請求符合的策略是否符合預期,再判斷是否有重複存取或失敗重試;沒有證據時,保留目前設定更方便進行比較。

持續重新連線時,先處理網路錯誤

訊號微弱、網路切換、伺服器無法連線及參數不符,都可能造成連線反覆嘗試。若關閉 On Demand 後重連情況減少,只能表示自動觸發參與了這個過程,不能據此排除底層連線故障。應先在穩定網路下測試自己已有的連線,並確認位址、連接埠與協定參數;不要先靠更換協定掩蓋錯誤。

以下是網路記錄中可能出現的錯誤片段,不是每次故障都會出現的固定提示。只有實際記錄包含相應原文時,才依該方向檢查;不同連線階段可能出現相同片段,仍須配合前後記錄判斷。

錯誤:i/o timeout

原因與處理方式:某次網路讀寫未能在指定時間內完成,可能與目前網路、名稱解析或遠端回應有關。先切換到穩定網路重測,再確認服務商提供的位址與連接埠,並判斷錯誤發生在建立連線還是傳輸階段。

錯誤:connection refused

原因與處理方式:連線嘗試遭到拒絕,常見檢查方向是目標連接埠沒有對應服務,或存取遭到明確拒絕。逐一確認位址、連接埠與服務狀態,向自己的服務商確認後再測試;反覆切換 On Demand 無法修復遠端監聽問題。

依使用情境決定是否開啟

取捨的重點在於是否需要自動恢復連線,以及使用者能否在需要時記得手動連線。On Demand 沒有適用所有人的省電答案。關閉後直接改變的是自動觸發行為,不保證電池用量曲線會改善;開啟後的好處是在符合條件時減少手動操作,不代表所有網路切換都不需要排查。

結論:需要自動恢復就保留,不需要就採用可驗證的手動流程

以「能否穩定完成所需工作」為前提選擇連線方式;只有反覆比較都顯示關閉後無效連線減少,且不影響正常使用時,才將關閉 On Demand 作為個人情境下的調整。

變更後,完成一次完整檢查

排查結束後,回到 Home 確認連線狀態,到 Global Routing 確認實際採用的方式,再檢查 Config 中啟用的設定。若需要自動連線,請還原 Settings → On Demand 中合適的設定;若選擇手動連線,應確認中斷後不會因其他既有 VPN 自動連線設定而再次建立連線。

  1. 開啟平時使用的目標服務,確認能否如預期存取,並檢查請求的路由方式;不要只看 VPN 狀態標示,就認定所有請求都已成功。
  2. 經過一段相近的使用時間後,再查看系統「設定 → 電池」,確認整部裝置的耗電情況是否持續改善,而不是只看 Shadowrocket 在清單中的排名。
  3. 保留最後的開關狀態、測試網路與錯誤記錄;若無法重現差異,請還原成適合日常使用的設定,避免持續變更多個參數。

本文不會為 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard 排定通用的耗電順序。協定參數、連線品質與工作負載各不相同,單憑協定名稱不足以預測裝置續航。更多操作說明請參閱入門指南,術語說明可對照術語表。

App Store 正版確認與連線設定

Shadowrocket 是 Apple 平台上的閉源商業 App,透過 App Store 一次性買斷。購買前請確認開發者為 Shadow Launch Technology Limited,App ID 為 932747118;系統需求請以 App Store 頁面標示為準。買斷用戶端不等於購買連線方案;本文以使用者已有自己的服務商與訂閱為前提,不提供、不販售也不推薦節點或訂閱。

前往正版確認頁 查看教學