On Demand 用來設定自動建立連線的條件,不是省電開關,也不代表所有流量都會經過代理。若需要在網路切換後自動恢復連線,可以保留 On Demand 並確認觸發條件;若只在固定時段使用,則可關閉後手動連線。本文適合遇到背景耗電占比升高、斷線後又重新連線,或鎖定螢幕期間持續活動的使用者,可依系統電池記錄、連線狀態與請求記錄逐步縮小問題範圍。
先釐清 On Demand、隧道與實際流量
Shadowrocket(小火箭)的主畫面切換至背景後,系統 VPN 隧道仍可能繼續處理請求。返回 Home 主畫面、鎖定螢幕,或從多工畫面移除 App,都不能直接證明隧道已停止。若要確認是否仍在連線,請回到 Shadowrocket 的 Home 查看狀態,並核對系統設定中的 VPN 狀態。
On Demand 負責觸發連線,Global Routing 負責處理流量。啟用 On Demand 後,系統可在符合目前按需規則時嘗試建立連線;它不是「偵測到流量就只運作一下」的計時機制,也不保證閒置時一定會中斷。連線是否持續或再次建立,須依實際規則與網路環境判斷。
耗電可能來自隧道中的資料處理、加密傳輸、DNS 查詢、失敗重試,也可能與發出請求的背景 App 及無線網路本身有關。即使沒有開啟網頁,照片同步、收取郵件或其他 App 的背景活動仍可能產生網路請求。因此,系統將部分活動列在 Shadowrocket 名下,並不能單獨證明問題出在 On Demand。
依使用情境選擇自動常駐或手動連線
本文所說的「常駐」,是指希望隧道保持可用,並在中斷後依條件恢復的使用方式,不是 On Demand 中獨立的省電模式。關閉 On Demand 只會取消相應的自動連線行為,不代表已建立的隧道必然會同時中斷;若要停止連線,還須在 Home 主動中斷並確認狀態。
| 設定方式 | 適用需求 | 需確認的情況 |
|---|---|---|
| 啟用 On Demand | 需要在符合條件時自動建立或恢復連線。 | 切換 Wi-Fi 或行動網路後,是否頻繁重新連線。 |
| 關閉 On Demand,改為手動連線 | 只在特定工作時段或執行任務期間使用。 | 使用完畢後是否確實中斷,下次是否記得重新連線。 |
| 啟用 On Demand,縮小適用條件 | 只有部分網路環境需要自動連線。 | 目前頁面提供的網路類型或網路比對條件,是否涵蓋了不需要連線的環境。 |
自動連線不一定比手動連線耗電。如果兩種方式最後都維持同一條隧道、處理相同請求,單看開關狀態無法推論耗電差異。真正值得比較的是總連線時間、自動重新連線次數,以及是否連不需要連線的閒置時段也一併納入處理。
結論:先決定哪些時段需要連線
若每天只有固定一段時間需要連線,可先用手動連線建立基準;若必須自動恢復,則保留 On Demand,優先檢查觸發範圍與重新連線原因,不要直接更換協定。
從系統電池頁面建立可比較的記錄
在 iPhone 或 iPad 開啟系統「設定 → 電池」,查看頁面目前提供的時間範圍、電量曲線與 App 活動記錄。系統版本不同,時間範圍和展開項目的名稱可能有所差異,請以裝置實際顯示為準。選取相同時段,再比較 Shadowrocket 與其他 App 的活動,避免將全天資料與短時間測試混為一談。
- 記錄測試起迄條件。記下開始時間、電量、是否充電、使用 Wi-Fi 或行動網路,以及訊號是否穩定。開啟個人熱點、導航、視訊通話等會明顯改變負載的工作,也要一併記錄。
- 比對電量與活動情形。觀察電量下降主要發生在螢幕使用期間,還是在鎖定螢幕時持續發生。若系統提供背景活動時間,也一併記錄,但不要直接解讀為處理器一直處於滿載狀態。
- 確認連線狀態。在測試開始與結束時查看 Home,記錄隧道是否已連線。若期間切換網路或手動中斷,請記下時間,方便對照系統電池曲線。
- 重複相同情境。例如安排兩段各 60 分鐘的觀察時段,維持相同網路、近似的螢幕使用量與相同設定,只改變 On Demand 或連線方式。這裡的 60 分鐘是記錄方案,不是產品續航數據。
電池頁面中的 App 百分比,是所選時段內的耗電占比,不能直接解讀為「這個 App 用掉了整顆電池相同比例的電量」。其他 App 活動減少時,Shadowrocket 的占比可能上升,但裝置實際耗電量未必增加。應一併觀察電量曲線、實際掉電量與活動時段;差異不大時需重複觀察,不能只憑單次記錄下結論。
依序調整 Settings → On Demand
進入 Shadowrocket 的 Settings → On Demand,先確認目前是否啟用,再查看頁面實際提供的規則或網路比對條件。不同 App 介面與系統環境下,可用選項可能不同;不必為了照搬教學而尋找不存在的開關,也不要直接填入某個 Wi-Fi 名稱當作通用範例。
- 先建立手動連線基準。關閉 On Demand,回到 Home 主動中斷連線。確認狀態已不再連線後,在不需要連線的時段觀察耗電是否仍維持相近程度。
- 接著測試手動連線。維持 On Demand 關閉,在 Home 手動連線至原有設定,執行與平常相同的任務。若此時耗電也明顯增加,應繼續檢查請求負載與網路狀況,而非只歸因於自動連線。
- 恢復自動觸發。若確實需要自動恢復,請重新啟用 On Demand;若頁面提供 Wi-Fi、行動網路或網路比對條件,只保留實際需要的範圍。修改後分別在對應網路下確認。
- 確認中斷與恢復行為。在可控制的情況下切換一次網路,觀察 Home 是否如預期恢復連線。測試完成後不要持續反覆切換網路,因為這本身會增加建立連線的次數。
「中斷後立刻又連線」首先是觸發行為的線索,不能直接據此判定耗電原因。若 On Demand 仍啟用,且目前網路仍符合條件,系統可能再次建立連線。若要觀察真正未連線的狀態,請先關閉按需連線,再主動中斷;只是不斷點按 Home 的連線開關,可能會一直觸發重新連線。
背景持續活動時,檢查請求與失敗重試
如果相同任務下,手動與自動連線都出現大量背景活動,接下來應檢查「隧道正在處理什麼」。在 App 目前提供的請求記錄或日誌頁面中,依觀察時段核對時間、目標與失敗資訊。先記錄少數相關項目即可,不必長時間開啟詳細日誌;記錄日誌本身也會增加記錄與儲存作業。
- 固定間隔存取同一目標:檢查是否有 App 同步、狀態檢查或失敗重試。短時間內大量重複請求值得追查,但不能只憑請求次數判斷耗電量。
- 切換網路後連續失敗:比對 Wi-Fi 訊號、行動網路訊號與失敗時間。網路不穩可能導致重新交握與重傳,請先在穩定的網路環境重新測試。
- 反覆執行 Connectivity Test:測試會主動發出探測請求,適合檢查連線能力,不適合在觀察續航期間持續執行。完成必要檢查後,請停止重複操作。
- 更新既有訂閱:將更新操作與觀察時段分開。若更新設定、重新選取連線和再次測試同時進行,日誌將難以區分正常維護與異常重試。
錯誤:Connection timed out
原因:連線未能在允許的等待時間內完成,可能與目前網路、目標位址或連線參數有關;單次逾時不足以證明問題出在 On Demand。
處理方式:確認同一時段是否連續發生逾時,並在穩定網路下使用原有設定重試一次;若仍失敗,請向自己的服務提供者確認既有連線資料,並避免持續重複測試。
上方的錯誤提示卡僅供日誌實際出現相同原文時辨識,不代表所有失敗都會顯示相同訊息。如果 Home 顯示 Not Connected,那首先代表連線狀態,並不等於已指出失敗原因;需搭配連線嘗試時間與日誌判斷,不能把狀態文字當成具體錯誤訊息。
區分路由模式與協定,再決定最終設定
Home 中的 Global Routing 與 On Demand 是兩種不同設定。Global Routing 的 Proxy、Direct、Config、Scene,應依 App 內說明與目前設定核對;其中 Direct 不等同於關閉系統 VPN 隧道。排查耗電時,若要比較「已連線」與「未連線」,應確實中斷連線,而不是只切換為 Direct。
使用 Config 時,請在 Config 中檢查目前啟用檔案的 Rule。DOMAIN-SUFFIX、GEOIP、IP-CIDR 等規則會依設定順序進行比對,末尾的 FINAL 則為前面未比對到的請求指定策略。流量導向的策略可能影響連線路徑,但不能單憑規則項目數量推論續航表現。
- 先確認實際路徑:核對目前的 Global Routing、啟用的 Config 與命中的策略,避免以為只在測試按需連線,實際上卻也改變了流量出口。
- 維持協定不變:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的連線特性各不相同,但不能不考慮網路品質、參數與工作負載,就排出固定的省電名次。
- 保留有效設定:如果只有自動觸發範圍過大,導致不必要的連線時間,就調整觸發範圍;若兩種連線方式都出現類似問題,則繼續排查請求來源、網路品質與連線失敗。
- 恢復後再次確認:下次正常使用時,再查看電池曲線與 Home 狀態,確認不必要的連線時間已減少,同時沒有影響原本需要的自動恢復行為。
結論:依可重現的現象選擇,不要只看單一百分比
若只在固定時段需要連線,請改用手動連線,並在使用完畢後中斷;若需要自動恢復,則保留 On Demand 並確認比對條件。只有在相同網路、相同任務下重複觀察到差異,才將調整後的方式設為長期設定。