Shadowrocket 耗電怎麼排查?背景常駐與 On Demand 按需連線比較

查看系統電池用量,找出耗電來源;比較常駐連線與 On Demand 按需連線的耗電情況,並依使用習慣調整設定。

本文重點

排查 Shadowrocket(小火箭)耗電問題,先在相同使用條件下比較整台裝置的電量變化,再查看背景活動與連線記錄;不要只看電池列表中的百分比。本文適合已有服務商、訂閱與可用設定檔的使用者,將依序說明如何建立基準、分辨隧道常駐與持續傳輸、測試 On Demand(按需連線),最後依實際使用習慣選擇連線方式。

一、先看整台裝置的電量變化,再看電池用量比例

在 iPhone 或 iPad 的「設定 → 電池」中,選取與問題發生時間重疊的統計時段,再查看 Shadowrocket 的電池用量與活動情況。系統版本不同,時間範圍和詳細資訊名稱可能有所差異,請以裝置實際顯示為準。電池列表中的 App 百分比,是所選時段內的耗電歸因比例,不代表 App 直接消耗了同等百分比的電量。

例如,看到「30%」不能直接解讀為「Shadowrocket 耗掉了 30% 電量」。如果這段時間整台裝置耗電很少,某項背景活動仍可能占較高比例。反過來說,若整台裝置掉電明顯、機身發熱且背景活動持續,才值得進一步檢查網路請求、訊號狀況與重新連線情形。VPN 圖示顯示中,也不能單憑這點判定正在大量傳輸資料。

  1. 確認統計時段

    前往系統「設定 → 電池」,選取問題發生的時段,記錄起始與結束電量、螢幕使用情況,以及期間是否充電。不要直接比較白天導航與夜間待機。

  2. 記錄連線狀態

    回到 Shadowrocket 的 Home(主畫面),記錄連線開關、目前選用的既有節點及 Global Routing(全域路由)狀態;再前往 Config(設定檔)確認目前啟用的設定檔。

  3. 檢查觸發條件

    前往 Shadowrocket 的 Settings → On Demand,記錄是否啟用按需連線,以及現有規則包含哪些網路條件。先保留原設定記錄,再進行對照調整。

  4. 建立測試基準

    選擇一段未充電且訊號穩定的時段,記錄螢幕亮度、Wi-Fi 或行動網路、主要使用任務與起始電量。每輪使用相同的觀察時間,例如 60 分鐘。

二、背景常駐不代表背景一直處於高負載

Shadowrocket 的 App 介面與由系統承載的 VPN 隧道,是兩種不同的觀察對象。離開 Home 後,連線仍可繼續處理符合條件的網路流量;App 未在前景執行,也不代表網路處理已停止。反過來說,隧道處於連線狀態時,若沒有持續請求,也不能把整段連線時間都視為高負載。

App 請求 系統隧道 路由判斷 連線傳出 回應返回

實際耗電量也會受到傳輸量、加密處理、無線訊號、網路切換與重新建立連線影響。照片同步、播放影片或其他 App 持續發出請求時,即使 Shadowrocket 介面一直關閉,隧道仍可能處理流量。行動網路訊號微弱時,無線通訊也可能增加整台裝置的耗電,不能只把變化歸因於代理協定。

三、分清 Global Routing 與 On Demand 的用途

Global Routing 決定流量採用哪種路由方式;On Demand 則決定系統在什麼條件下建立或管理連線。兩者不是同一個省電開關。尤其將 Global Routing 切換為 Direct(直連),不代表 VPN 隧道已關閉;若要比較「未連線」狀態,還需另外確認連線開關與 On Demand。

4 種模式
Global Routing:Proxy / Direct / Config / Scene
連接埠 53
傳統 DNS 通常使用 UDP 或 TCP 53
連接埠 443
DNS over HTTPS 通常使用 HTTPS 443
設定主要用途排查時的注意事項
Proxy(代理)採用代理路由方式可能改變經過代理的流量範圍,不應直接視為省電模式。
Direct(直連)採用直連路由方式直連不代表隧道已中斷。
Config(設定檔)依目前設定檔中的規則分流先確認啟用的是哪個設定檔,以及規則最後命中的去向。
Scene(情境)依已設定的情境邏輯運作也要確認情境條件,不宜與固定路由狀態混在同一組測試中。
On Demand依條件管理連線確認網路條件與規則順序,避免預期中斷後又被條件觸發連線。

在 Config 中,DOMAIN-SUFFIX 表示網域後綴比對,GEOIP 表示依 IP 地理位置比對,IP-CIDR 表示依 IP 網段比對,FINAL 則是前面的規則都未符合時採用的最終去向。這些規則用來決定流量走向,不會直接設定連線維持時間。為了省電而任意刪除規則,可能改變連線路徑,卻不一定能減少背景請求。

四、透過三輪對照判斷是否適合使用 On Demand

只有在觸發條件符合使用情境時,On Demand 才可能減少不必要的連線時間。它不是能自動判斷所有 App 需求的通用省電功能。條件設得太寬,連線可能長時間維持;網路條件頻繁變動,則可能增加建立連線的次數。依網域評估的條件,也不等於「開啟任何 App 才連線」。

建議先用單一網路條件進行驗證,例如先只測試某個 Wi-Fi 環境,不要一開始就同時加入 Wi-Fi 名稱、行動網路與網域條件。涉及規則動作與順序時,請以 Settings → On Demand 中實際提供的欄位為準,逐條確認,不要照搬來源不明的整組規則。

  1. 記錄原始設定

    記錄 Settings → On Demand 的啟用狀態與現有規則順序,同時記下 Home 中的 Global Routing 設定。測試期間不要更新訂閱、切換節點或更換 Config。

  2. 測試中斷連線組

    暫時關閉 On Demand,再關閉連線並確認系統 VPN 狀態。執行事先選定的本機或可直接連線的任務,記錄 60 分鐘內的起始與結束電量;若無法執行相同任務,該組只作為待機基準。

  3. 測試常駐連線組

    保持 On Demand 關閉,手動連線至同一個既有節點,並沿用原本的路由方式。在電量相近、網路相同的條件下重複相同任務,記錄耗電量與異常重新連線情形。

  4. 測試按需連線組

    前往 Settings → On Demand,啟用已確認的單一網路條件。先驗證符合條件時的連線行為,再確認離開該條件後的行為;每次都檢查系統 VPN 狀態,不要只看開關設定。

  5. 重複比較

    每組再觀察一段相同長度的時間。若電量差異很小或變化方向不一致,先記為無法判定,不要宣稱固定的省電百分比;也要比較連線等待時間是否影響使用。

上述 60 分鐘是測試安排,不代表產品續航時間。盡量固定螢幕亮度、訊號、任務與環境溫度,避開充電及系統集中同步等干擾。短時間結果不穩定時,可以延長觀察時間,但各組條件仍須保持可比較。

五、反覆重新連線時,先處理網路錯誤

若異常耗電與連線失敗同時發生,先核對記錄中的時間順序:是網路中斷後開始重試,還是既有節點持續無法連線。以下是可能出現在連線記錄中的系統網路錯誤範例,並非電池警告;實際大小寫、附加資訊與顯示位置,請以 App 中的記錄為準。單一錯誤無法直接證明造成多少耗電。

錯誤:Connection refused

原因:目標位址或連接埠拒絕連線,可能是服務未在監聽,或連線遭到主動拒絕。

處理方式:在 Home 確認使用者既有節點的位址、連接埠與協定;若訂閱管理的項目有變動,請依自己的服務商說明更新後再試,不要反覆手動修改猜測值。

錯誤:Operation timed out

原因:連線或相關操作未能在指定時間內完成,可能與網路封包遺失、目標無法連線或回應過慢有關。

處理方式:固定使用同一個節點,在穩定的 Wi-Fi 下重試一次,再以另一條既有且可用的連線進行比較;不要連續執行整組延遲測試來代替故障排查。

錯誤:Network is unreachable

原因:目前的網路路徑無法連線,可能與網路切換或裝置當時沒有可用連線有關。

處理方式:先確認系統網路能否正常連線,再檢查 Settings → On Demand 中與目前網路相關的條件,避免網路尚未恢復時反覆切換連線。

六、依使用習慣選擇常駐或按需連線

常駐與按需連線的取捨,應依連線頻率判斷,不要預設其中一種一定比較省電。一天內頻繁使用同一連線時,穩定常駐可能減少等待與反覆建立連線;只有在特定網路或少數時段需要連線時,經過驗證的 On Demand 條件則有助於減少無關時段的連線。無論選擇哪一種,都應以自己的電池記錄驗證。

使用習慣建議先嘗試的方式需要確認的情況
一天內頻繁存取相同資源固定節點與 Config,先觀察穩定常駐連線是否持續傳輸、連線失敗後是否重試,以及等待時間有沒有縮短。
只在特定 Wi-Fi 環境需要連線在 On Demand 中設定並驗證網路條件進入與離開該網路時,連線行為是否符合預期。
經常在 Wi-Fi 與行動網路間切換先簡化條件,分別測試兩種網路切換時是否反覆重新建立連線,訊號微弱時是否伴隨機身發熱。
偶爾使用,且使用時段明確先以手動連線與中斷作為對照中斷後是否又被 On Demand 觸發連線,任務結束後是否仍有背景活動。

協定名稱也不能取代實際測量。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的連線方式與參數各不相同,裝置、網路鏈路、實際傳輸量及伺服器端條件也都會影響結果。只在現有服務支援的範圍內測試,不要為了追求未經驗證的省電效果而任意更換協定或套用不相符的參數。

七、耗電與按需連線常見問題

鎖定螢幕後 VPN 圖示還在,代表一直很耗電嗎?

圖示反映連線狀態,無法顯示傳輸量。先查看系統「設定 → 電池」中對應時段的整台裝置耗電情況與背景活動,再確認是否有同步任務或連線失敗後重試。若要確認已中斷連線,請暫時關閉 Settings → On Demand,並檢查系統 VPN 狀態。

開啟 On Demand 後,為什麼沒有明顯省電?

先檢查條件是否讓連線幾乎一直維持,以及網路切換是否增加重新連線的次數。前往 Settings → On Demand 記錄條件與順序,先只保留一個已驗證的測試條件,再與手動常駐連線組進行相同時間的比較。

切換為 Direct 後,為什麼電池頁面仍有活動?

Home → Global Routing → Direct 改變的是路由方式,不代表隧道停止。若要建立中斷連線的基準,應另外關閉按需觸發與連線,並確認系統 VPN 狀態;也請留意電池頁面可能仍包含較早時段的統計資料。

訂閱更新與延遲測試需要一直執行嗎?

不需要把重複測試當成維持連線的必要步驟。先完成必要的訂閱更新,再固定節點進行電量比較;記錄期間避免在 Home 反覆重新整理訂閱或測試整組節點,以免額外請求影響判斷。

最後保留一份可重複驗證的記錄:裝置、網路類型、測試時間、起始與結束電量、Global Routing、On Demand 狀態及異常發生時間。每次調整只改變一個變數;若效果無法重現,就還原原設定並繼續觀察,會比同時關閉多項功能更容易找出原因。

透過 App Store 取得正版先核對 App 資訊 →