Shadowrocket 耗電嗎?On Demand 按需連線與背景常駐如何取捨

了解 VPN 通道為何會列入背景電池用量、如何依 Wi-Fi 與行動網路設定 On Demand,以及如何兼顧省電與連線穩定。

本文重點

Shadowrocket(小火箭)的耗電情況,需綜合流量、訊號與重新連線次數判斷,不能只看 VPN 圖示或電池用量排名。本文適合已有自己的服務資訊、想調整日常連線方式的 iPhone 與 iPad 使用者:先釐清通道與 App 背景活動的差異,再設定 On Demand,最後在相同使用條件下比較電池記錄。

為什麼背景常駐會列入電池用量?

看到 Shadowrocket 有背景活動,就表示它一直在高負載運作嗎?不是。App 的前景介面與負責承載連線的系統網路延伸功能並非同一回事。離開 Home 後,VPN 通道仍可繼續處理其他 App 的網路請求;介面不在螢幕上,不代表網路處理已經停止。

App 請求系統通道規則比對對外連線回應傳回

電量主要耗在哪些環節?有流量時會涉及資料處理、加解密與網路傳輸;閒置時也可能有連線維持、DNS 請求與重新連線。影片播放、照片同步或大型檔案傳輸產生的請求都可能經過通道,因此電池頁面中的相關活動不一定來自 Shadowrocket 的前景操作。

電池用量占比能直接視為額外耗電比例嗎?不能。系統電池頁面顯示的是所選時段的用量歸因,占比也會受其他 App 活動影響。請前往裝置的「設定 → 電池」,比對同一時段的電量曲線、螢幕使用情形與背景活動,再判斷是否有異常耗電。

On Demand 能在沒有流量時自動省電嗎?

On Demand 是閒置計時器嗎?不是。它會讓系統依照設定的網路條件與連線規則處理按需連線,不能把它理解成「沒有流量就自動中斷,開啟任何 App 就自動恢復」。實際觸發方式取決於規則;啟用後也不保證電池用量一定降低。

2 層
App 內的設定位置:Settings → On Demand
4 項
Global Routing:Proxy / Direct / Config / Scene
2 類
分別確認 Wi-Fi 與行動網路條件

On Demand 和 Global Routing 有什麼不同?前者決定何時觸發連線,後者決定連線期間如何處理請求。在 Home → Global Routing 中,Proxy、Direct、Config、Scene 是不同的處理方式;Config 依目前的設定規則分流,Scene 則依已設定的情境運作。切換這些選項不代表關閉 On Demand。

結論:先確認連線條件,再調整流量策略

若想在離開某個 Wi-Fi 後自動連線,請先檢查 Settings → On Demand;若想讓部分請求直接連線,再檢查 Home → Global Routing 與 Config。不要以 Direct 代替關閉通道,也不要用 On Demand 取代分流規則。

Wi-Fi 與行動網路應如何分別設定?

是否應該在所有網路上一律啟用?應依實際需求區分。操作前,先在 Home 手動連線,並用自己的服務資訊確認可以正常存取,再前往 Settings → On Demand 查看可設定的網路條件。不同介面版本的選項以 App 內顯示為準;網路名稱條件、連線動作與總開關並非同一項設定。

  1. 確認連線可正常使用。在穩定的 Wi-Fi 下開啟日常使用的網頁,記下目前的 Global Routing 與設定。若手動連線就失敗,請先排除連線問題,不要再加上自動觸發條件。
  2. 設定 Wi-Fi 適用範圍。若需依網路名稱區分,請確認實際 SSID。名稱相近不代表是同一個網路;名稱相同也不代表一定可信,應依自己的網路管理情況判斷。
  3. 分開確認行動網路。若在行動中也需要連線,請確認行動網路的相關條件;若只在固定網路使用,則確認切換至行動網路後的實際狀態,不要只憑總開關推斷。
  4. 實際切換一次。從 Wi-Fi 切換至行動網路,待網路穩定後送出一次請求;再切回 Wi-Fi,檢查系統 VPN 狀態與 Home 中的連線狀態。
  5. 鎖定螢幕後再確認。記下鎖定螢幕前的網路與連線狀態,稍後解鎖並送出相同請求,確認是否有連線延遲或重複重新連線。

手動關閉連線後,為什麼又自動恢復?可能是 On Demand 條件仍然符合,系統因此再次觸發連線。若要測試完全中斷,請先在 Settings → On Demand 暫停按需連線,再關閉 Home 中的連線;測試完成後恢復原設定。不要用反覆結束前景 App 取代這個步驟。

保持連線與按需連線,該怎麼選?

哪種方式一定比較省電?沒有適用於所有網路的固定答案。維持穩定連線可避免反覆建立連線;依條件連線則能減少不需要時使用通道。但若條件經常變動,重新連線、交握與恢復服務也會增加耗電,應一併比較連線成功率與電量變化。

使用情境設定方向檢查項目
在同一個網路持續使用先以維持穩定連線作為基準是否有大量背景流量或異常重新連線
只在特定網路需要連線依網路條件設定 On Demand進入及離開該網路後的實際狀態
通勤時網路頻繁切換減少不必要的條件切換恢復請求所需時間與失敗次數
準備短時間中斷的對照測試暫停 On Demand 後手動中斷連線系統是否仍會再次觸發連線

改成 Direct 就能測出「未使用通道」時的耗電嗎?不能。Direct 代表直接連線的處理策略,不等於系統 VPN 通道已經停止。同樣地,Config 中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 與 FINAL 負責比對並選擇策略,不負責決定 On Demand 何時啟動。

結論:頻繁恢復失敗時,先減少切換變因

若每次切換網路後都需要等待或重試,請先在同一個網路下保持連線,確認連線穩定。基本連線正常後,再逐項加入 On Demand 條件,不要同時更改協定、DNS 與 Global Routing。

裝置發熱或頻繁重新連線時,先檢查哪些記錄?

裝置發熱能直接歸因於某一種協定嗎?不能。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的連線方式各有不同,但實際耗電也與流量、伺服器回應、傳輸設定和無線訊號有關。選用的協定必須與自己的服務資訊相符,不要為了測試而更改 Type,卻保留另一種協定的欄位。

記錄中應先找什麼?先對照故障發生時間,再確認是否連續出現逾時、連線遭拒或交握失敗。以下列出的是可能出現的底層錯誤片段,並非所有版本都會使用的完整彈出訊息;請保留實際原文與發生時間,再依錯誤類別排查。

錯誤:connection refused

原因:目標連線遭拒,常見情況是連接埠沒有服務在監聽,或連線遭到明確拒絕。

解決方式:在 Home 開啟目前的伺服器設定,依照自己的服務資訊確認位址與 Port,再向自己的服務提供者確認該連接埠是否可用;不要反覆切換 On Demand 來掩蓋基本連線問題。

錯誤:TLS handshake timeout

原因:TLS 交握未能在限定時間內完成,可能與連線路徑不通、網路限制或伺服器回應異常有關。

解決方式:先在穩定的網路環境重試,再確認 TLS 相關設定與伺服器端要求;若只在某個 Wi-Fi 發生,先檢查網頁認證與網路連線,不要把關閉憑證驗證當成通用處理方式。

沒有錯誤訊息但仍持續耗電,接下來怎麼辦?先暫停正在進行的大量資料傳輸,觀察閒置時是否仍明顯耗電。接著檢查是否設定了過於頻繁的定時測試或其他週期性工作,並區分訂閱更新與通道連線:更新自己的訂閱是重新整理設定來源,無法修復訊號微弱或自動降低耗電。

如何進行可重複確認的電池對照測試?

怎麼比較才不會被電池用量排名誤導?使用同一台裝置、相近的電量區間和相同網路,分別記錄持續連線與按需連線的情況。以下時間長度是測試安排,不是實測結果,也不代表任何固定的耗電承諾。

  1. 建立記錄。記下起始電量、螢幕亮度、網路類型、Global Routing 與背景同步狀態,測試期間不要充電。
  2. 觀察持續連線。先在螢幕關閉的狀態下觀察 30 分鐘,再進行 30 分鐘固定操作,例如反覆閱讀同類型的網頁;分別記下結束時的電量。
  3. 觀察按需連線。恢復相近的初始條件,使用已確認有效的 On Demand 條件重複相同測試,並記錄網路切換與重新連線的次數。
  4. 補做中斷連線基準測試。暫停 On Demand 並中斷連線,以可直接完成的相同活動重新測試;若該活動無法直接存取,就不要把這組結果視為等效對照。
  5. 重複確認。至少再測一輪。若差異接近系統電量顯示的精度,請延長觀察時間,不要據此宣稱某項設定能固定省下特定百分比的電量。

最後應保留哪一套設定?優先保留能穩定完成使用需求、切換後也能正常恢復的方案,再比較重複測試中的電量變化。若 On Demand 減少了不必要的連線,且沒有增加失敗情況,就保留相應條件;若頻繁重新連線影響使用,則先簡化條件並排除網路問題。穩定性與省電效果都要一併驗證,不能只看 VPN 圖示是否出現。

App Store 正版核驗開發者與 App ID