小火箭背景耗電排查:On Demand 按需連線與常駐連線如何取捨

了解如何解讀 iPhone 電池用量,比較 On Demand 依 Wi-Fi 或行動網路自動連線與手動常駐對續航的影響,並找出合適的設定方式。

本文重點

Shadowrocket(小火箭)在背景維持 VPN 通道,不代表持續高速傳輸。本文適合已使用自己的服務商與訂閱,並想排查待機耗電的使用者:先看懂系統電池用量,再分辨 On Demand 自動連線與手動常駐,最後在固定時段進行對照測試,選出適合 Wi-Fi 與行動網路的連線方式。

先看電池用量:耗電比例不等於電量下降百分點

在 iPhone 或 iPad 的系統設定中開啟「電池」,查看可用的用量時段,並選取懷疑耗電異常的時間範圍。系統介面可能隨版本調整,建議記錄四項資訊:該時段的電量變化、螢幕使用情況、Shadowrocket 的用量比例,以及是否有背景活動。不要直接比較一整天的彙總比例與十分鐘的連線測試。

電池頁面中的 App 耗電百分比,通常代表所選時段已消耗電量的分配比例,並非該 App 單獨耗用了多少電池容量。例如,裝置電量從 80% 降至 70%,同時某個 App 顯示 20%,不能據此認定該 App 讓裝置少了 20 個百分點。VPN 網路延伸功能會處理其他 App 的通訊,系統將相關耗電歸因於 Shadowrocket,也不代表只有使用者開啟 Shadowrocket 時才有相關活動。

10 個百分點
範例:電量從 80% 降至 70%,並非實測結果
30 分鐘
建議每輪鎖定螢幕觀察的時間,兩輪保持一致
1 個變因
每輪只更改連線方式,不同時更換設定檔與伺服器

以上時間與電量僅為測試方法範例,並非續航保證。如果選取的時段包含播放影片、照片同步、App 更新或通勤時訊號不佳,請另選較穩定的時段。背景活動時間較長,只能表示相關工作持續進行,不能單憑此點證明耗電量一直偏高。

On Demand 用來設定連線條件,不是閒置後自動斷線的計時器

前往 Shadowrocket 的 Settings → On Demand,確認目前的按需連線設定。On Demand 使用系統的按需連線機制,在符合已設定的網路條件且發生相應網路活動時建立或恢復連線。這不代表「每次開啟 App 才會連線」,也不能簡單理解為「沒有流量就會立刻斷線」。可選項目與規則的呈現方式,請以目前介面為準。

符合網路條件 系統觸發連線 建立通道 規則分流 傳送資料

本文所說的「手動常駐」,是指關閉自動按需觸發後,在 Home 手動開啟連線並保持開啟,而非讓 App 畫面一直停留在前景。通道保持連線時,是否有實際資料傳輸,取決於服務請求、協定行為與連線維護狀況;狀態列中的 VPN 標示不能用來判斷即時耗電量。

Wi-Fi 與行動網路:先選擇使用範圍,再評估續航

Wi-Fi 不一定穩定,行動網路也不必然比所有 Wi-Fi 情境更耗電。距離無線基地台太遠、網路需要額外驗證、行動網路訊號微弱,或頻繁移動並切換基地台,都可能增加建立連線與重試的耗電。比較 On Demand 與常駐連線時,應盡可能固定網路環境,否則測得的差異可能來自無線連線狀況。

使用情境 可選連線方式 需要確認的行為
固定地點,Wi-Fi 穩定 依 Wi-Fi 條件啟用 On Demand,或手動常駐 鎖定螢幕後服務是否正常,以及連線是否反覆重建
行動網路,偶爾使用 若不需要自動連線,可不設定行動網路觸發條件,改為需要時手動連線 中斷連線期間的請求不會經由該通道處理
行動網路,持續使用 依行動網路條件自動連線,或手動保持連線 訊號穩定度、切換網路後的恢復情況,以及 App 請求是否成功
Wi-Fi 與行動網路頻繁切換 先使用一種連線方式完成對照測試 網路切換時間是否與錯誤記錄、裝置發熱或耗電加快重疊

結論:依實際需求縮小自動連線的適用範圍

如果只有在固定 Wi-Fi 下需要自動連線,請先在 Settings → On Demand 確認對應的網路條件;行動網路則可保留手動控制。如果服務在兩種網路下都必須經由通道處理,就應保留相應的連線條件,並優先排查重試問題,不要只為降低電池頁面上的用量比例而關閉連線。

維持相同 Config:避免把分流變更誤認為省電效果

On Demand 決定何時連線,Global Routing 則決定連線後如何處理流量,兩者屬於不同層級的設定。進行對照測試前,請在 Home 確認 Global Routing,並記錄目前選用 Proxy、Direct、Config 還是 Scene。若使用 Scene,也要確認該場景實際套用的設定;切換 On Demand 時不要同時更換場景。

使用 Config 時,請依目前設定檔檢查規則順序與目標策略。DOMAIN-SUFFIX 用來比對網域後綴,IP-CIDR 用來比對 IP 網段,GEOIP 依 IP 位址地理資料庫判斷,FINAL 則作為最終兜底規則。這些都是分流條件,不是省電開關。Direct 也不等於關閉 VPN 通道;將流量改為直接連線,不能取代連線狀態測試。

  1. 在 Home 記錄目前選取的伺服器與 Global Routing,再前往 Config 確認正在使用的設定檔。
  2. 兩輪測試使用相同的規則順序與策略目標;不要臨時將 FINAL 從代理策略改為 DIRECT。
  3. 測試期間不要大量執行延遲測試,也不要手動更新現有訂閱,以免額外請求影響觀察結果。
  4. 若確實需要更新現有訂閱,請先完成更新並確認伺服器參數,再開始新一組對照測試。

Shadowsocks、VMess、VLESS、Trojan、Hysteria2 與 WireGuard 的傳輸方式及連線維護機制各不相同,但不能只憑協定名稱排定固定的耗電高低。伺服器位置、封包遺失、App 流量與實際參數都會影響結果。第一輪排查應保留使用者現有設定,不要同時切換協定。

先排查失敗重試:連線錯誤不等於續航設定有問題

如果發生「鎖定螢幕後仍然發熱,但服務無法使用」,請先查看該時段是否有重複的連線失敗。以下列出網路記錄中可能出現的錯誤片段,不同版本未必會顯示完全相同的完整訊息;只有實際記錄出現時,才依相應方向處理,請勿為了排查而刻意製造錯誤。

錯誤:connection refused

可能原因與處理方式:目標位址或中間設備拒絕連線,常見原因是指定連接埠沒有提供相應服務。請對照服務商提供的位址與連接埠,確認服務狀態後再測試一次,避免反覆進行大量測試。

錯誤:i/o timeout

可能原因與處理方式:網路讀寫未能在期限內完成,可能與連線無法到達、封包遺失或遠端沒有回應有關。請先在穩定的 Wi-Fi 下使用相同設定測試,再確認問題是否只發生在行動網路,不能直接認定是 On Demand 本身造成耗電。

例如,現有設定指定 TLS 服務連接埠為 443,應以服務商提供的實際參數為準,不要一看到逾時就改用其他常見連接埠。如果問題只在 Wi-Fi 切換至行動網路後的首次請求發生,請記下切換時間、錯誤片段及之後是否恢復;若兩種網路都持續失敗,應先排除服務無法連線的問題,再比較續航。

兩輪對照測試:固定網路、螢幕狀態與背景工作

建議先在訊號穩定的 Wi-Fi 環境完成基本測試,再另外測試行動網路。電量讀數會四捨五入,短時間內下降一格,不足以證明哪種方式更省電。若兩輪差異很小,應交換測試順序再做一次,而不是直接宣稱省電百分比。

  1. 準備:記錄開始時間、電量、網路名稱、訊號狀況、伺服器與 Config。保持環境溫度相近,測試時不要充電。
  2. A 輪:關閉 On Demand 自動觸發,在 Home 手動開啟連線;確認能開啟相同的測試頁面後,鎖定螢幕觀察 30 分鐘。
  3. B 輪:在 Settings → On Demand 啟用待測網路條件,確認連線行為符合預期;開啟相同的測試頁面後,再鎖定螢幕觀察 30 分鐘。
  4. 保持一致:兩輪都不播放媒體、不主動同步大型檔案,也不執行網速測試;盡量讓其他 App 的背景活動保持一致。
  5. 記錄:記下結束時的電量、是否發熱、是否切換網路及是否有失敗重試,再查看系統「電池」中對應的時段。
  6. 再次確認:選擇條件相近的時段,將 B 輪排在 A 輪之前再測一次;若結果趨勢不一致,先不要歸因於連線方式。

區分兩個問題:上述 A/B 測試比較的是兩種連線管理方式。如果還要了解「啟用通道與完全中斷」的差異,請另做一輪測試:先關閉 On Demand,再於 Home 中斷連線。這一輪的流量路徑已改變,不能與前兩輪視為相同的使用情境。

建議設定組合與還原順序

沒有適用於所有裝置的通用省電設定組合。如果在穩定網路下連線正常,鎖定螢幕後裝置溫度也正常,只是 Shadowrocket 在電池用量清單中的比例較高,不必立刻更換協定或設定檔。應先依是否需要自動連線來選擇,再透過重複測試確認裝置實際的電量變化。

結論:保留足以穩定完成服務需求的最小自動連線範圍

如果重複測試未發現 On Demand 與常駐連線之間有穩定差異,就依是否需要自動恢復來選擇;如果某種方式總是伴隨連線失敗與裝置發熱,應先修正相關網路或參數問題再重測,不要把背景記錄變少當成問題已解決。

App Store 正版確認