Shadowrocket(小火箭)的 On Demand 可依條件自動建立 VPN 連線,並非能一律降低耗電的開關。本文適合遇到鎖定螢幕時耗電、斷線後自動重連,或切換網路時反覆連線的使用者:先查看 iPhone 電池用量記錄,再設定觸發條件,最後在相同條件下進行比較,判斷連線維持、實際流量與失敗重試各自造成的影響。測試連線須使用自己已有的伺服器設定或訂閱。
一、先分清背景連線、流量與自動觸發
離開 Shadowrocket 的前景畫面,不代表系統 VPN 通道已停止。系統的網路延伸功能仍可繼續處理流量,因此不能只憑 App 未顯示在畫面上,就判斷它是否仍在運作。反過來說,狀態列顯示 VPN 標誌,也不代表裝置一直以高負載傳輸;閒置連線與持續下載的耗電量不能混為一談。
On Demand 的作用是讓系統依據設定條件決定是否自動建立連線。它不代表「只有開啟特定 App 時才連線」,也不保證每次鎖定螢幕時都會斷線。背景同步、網路變更或符合條件的網路存取,都可能伴隨連線活動;實際觸發情況取決於目前規則與系統行為。
常駐連線可能需要維持工作階段;重新連線則可能涉及 DNS 查詢、傳輸連線與加密交握。若 On Demand 使短時間內重複連線增加,省下的閒置維護耗電未必足以抵銷重新建立連線的耗電。因此應先確認「連線是否穩定」,再評估「是否應自動連線」。
二、從 iPhone 電池記錄建立排查基準
開啟 iPhone 的「設定 → 電池」,查看系統提供的時間範圍與活動明細,再選擇發生異常耗電的時段。不同系統版本的圖表和篩選入口可能不同,請以裝置實際顯示為準。留意電量下降是否同時伴隨螢幕使用、背景活動,以及其他 App 大量存取網路;不要只看 App 清單中的單一百分比。
- 記錄起始狀態。記下時間、電量、Wi-Fi 或行動網路、訊號狀況,以及是否正在充電。測試期間避免充電,也不要執行系統更新等高負載工作。
- 固定使用方式。測試鎖定螢幕時就維持鎖定;測試瀏覽網頁時則使用相近的瀏覽內容。不要拿一次播放影片的結果和一次待機的結果比較。
- 查看指定時段。核對電池圖表中的活動時間,區分螢幕開啟與背景活動。App 用量百分比通常代表所選時段的耗電占比,不等於電池電量實際下降的百分點。
- 重複觀察。短時間的電量顯示有其精確度限制。單次差一、兩個百分點,還不足以證明設定有效;應在相近條件下重複測試,並參考連線記錄判斷。
結論:先對照時間,再判斷原因
只有當電池異常時段與反覆連線、要求失敗或持續傳輸的時間相互吻合,才值得沿著這條線繼續排查。單看背景用量排名,無法證明耗電原因就是 On Demand。
三、Settings → On Demand 設定與驗證步驟
修改前,先在 Home 確認目前使用的伺服器,並在 Config 記下目前啟用的設定。這樣可避免排查時同時更換伺服器、路由模式和自動連線條件,最後無法判斷是哪項變更影響結果。若對訂閱內容或連線參數有疑問,請向自己的服務商確認。
- 進入設定。開啟 Shadowrocket,前往
Settings → On Demand,確認目前是否已啟用及現有條件。記下原本狀態,以便還原。 - 先進行關閉對照。暫時關閉 On Demand,再返回 Home 手動中斷連線。在不需要透過通道存取網路的測試時段,觀察是否仍會自動連線。
- 指定目標網路。若希望依網路環境自動連線,請啟用 On Demand,並依頁面實際提供的網路類型或網路比對條件設定。若目前介面提供 SSID 條件,請填入裝置實際連線的 Wi-Fi 名稱,並留意空格和大小寫。
- 從單一條件開始。先驗證一項條件,不要一次加入多項可能重疊的比對條件。不要直接將「未填寫限制」理解為「不會觸發」,應依照介面說明和實際連線結果確認。
- 測試進入與離開網路。分別測試進入目標網路、離開目標網路,以及鎖定螢幕後恢復使用。每次都檢查 Home 的連線狀態;若透過 iPhone 的「設定 → 一般 → VPN 與裝置管理 → VPN」查看系統設定,請留意不要誤改其他用途的設定。
- 確認中斷方式。若要維持中斷狀態,請先關閉 On Demand,再前往 Home 中斷連線。若只操作 Home 的連線開關,下次符合條件時可能會再次連線。
四、依使用情境選擇常駐、按需或手動連線
設定目標應是減少不必要的連線變動,同時滿足實際存取需求。每天長時間需要透過通道存取資源的使用者,維持穩定連線可能比反覆重新連線更合適;偶爾使用的話,手動連線通常更容易掌控。On Demand 適合觸發條件明確的情況,不應用來取代對連線用途的判斷。
| 使用情境 | 可測試的設定 | 優先觀察項目 |
|---|---|---|
| 一天中持續存取需要通道的資源 | 維持穩定連線,並與目前的 On Demand 設定比較 | 是否有持續流量、失敗重試或頻繁重新建立連線 |
| 每天只使用短時間 | 關閉 On Demand,需要時在 Home 手動連線 | 使用完中斷後,是否能維持中斷狀態 |
| 只在特定網路環境使用 | 使用 On Demand 實際支援的網路條件 | 進入或離開該環境時,連線行為是否符合預期 |
| 經常在 Wi-Fi 與行動網路之間切換 | 先減少重疊條件,並維持伺服器不變 | 網路切換時間是否與連線失敗重疊 |
訊號微弱、尚未完成入口網站驗證的 Wi-Fi,以及網路切換,都可能導致無法建立連線。例如,剛連上公共 Wi-Fi 時,應先完成網路要求的驗證,再測試通道;不要靠反覆切換開關,試圖解決底層網路尚未就緒的問題。行動網路訊號微弱時的耗電,也可能來自無線通訊本身,不一定是 Shadowrocket 造成。
五、反覆連線時,先查看錯誤再調整參數
如果連線記錄重複出現失敗,請先記下錯誤時間、使用的網路和目標伺服器,再與電池圖表對照。以下列出網路診斷中常見的英文錯誤訊息;實際大小寫、前綴和附帶資訊可能不同,請保留裝置顯示的完整原文。這些訊息只能提供排查方向,不能單憑一筆記錄下結論。
錯誤:Connection refused
原因:通常表示目標位址的連接埠拒絕連線,可能是服務未在該連接埠監聽、連接埠填寫錯誤,或網路設備主動拒絕連線。
處理方式:依照現有設定確認伺服器位址、連接埠和協定,再向自己的服務商確認服務狀態;不要為了排除錯誤而任意將連接埠改成 443。
錯誤:Operation timed out
原因:操作未能在指定時間內完成,可能與網路無法連線、封包遺失、目標沒有回應或連線路徑受限有關。
處理方式:維持設定不變,改用另一種自己可使用的網路重新測試;若只有在某個網路上失敗,先檢查該網路,再檢查伺服器。
錯誤:Network is unreachable
原因:目前的連線路徑無法使用,常見於網路介面切換或底層網路尚未恢復的時段。
處理方式:先確認裝置能正常連上網路,等待網路穩定後再試,並檢查 On Demand 是否在切換網路期間反覆觸發。
單次失敗後恢復,不一定代表異常;應留意失敗和重連是否密集反覆發生,且在沒有有效傳輸時仍持續出現。不要同時修改 DNS、伺服器、協定和 On Demand,否則即使問題消失,也無法確認真正原因。分享涉及登入憑證或訂閱連結的記錄前,請先遮蔽敏感資訊。
六、Global Routing 與規則會改變流量路徑,不能取代中斷連線
在 Home 查看 Global Routing 時,應分清路由策略和通道開關。選擇 Direct 會改變要求的對外連線方式,不代表關閉系統 VPN;選擇 Config 則會依照目前設定處理要求。On Demand 管理的是自動連線條件,兩者作用層面不同,不能以「已選擇 Direct」證明背景通道已停止。
如果目標是只讓指定網站走代理,可以先備份,再檢查 Config 中的規則和排序。以下僅說明語法;example.com 是示範網域,PROXY 在實際設定中必須對應到可用的策略。此範例不是通用的省電設定,也不應直接覆蓋正在使用的完整設定。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX可比對指定網域及其子網域;較明確的比對條件應排在兜底規則之前。FINAL,DIRECT會將未符合前面規則的要求指定為 DIRECT;它不會關閉通道。- 精簡規則後,仍須確認實際要求是否符合預期策略。必要的代理流量、DNS 查詢和失敗重試,不會因為有一條 FINAL 規則就自動消失。
同樣地,不應為了省電而盲目更換 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard。協定、傳輸方式、伺服器品質與目前網路環境都會影響結果,且既有伺服器必須支援相應設定。只憑協定名稱,無法預測 iPhone 在特定網路下的耗電量。
七、以可重現的對照結果完成排查
建議將排查分成三輪:完全中斷、手動維持穩定連線,以及啟用條件明確的 On Demand。每輪使用相近的測試時間和內容,並維持相同網路、伺服器與路由設定。這是測試方案,不代表日常使用時需要不斷切換連線。
- 完全中斷測試。關閉 On Demand 並中斷連線,記錄該情境下裝置的基礎耗電量。若此時仍有明顯異常,請繼續檢查螢幕活動、其他 App、訊號和系統工作。
- 穩定連線測試。保持 On Demand 關閉,手動建立連線。觀察在相同流量下,是否出現異常發熱、反覆錯誤或大量背景要求。
- 自動連線測試。啟用已驗證的單一條件,檢查連線次數是否明顯增加,以及這些變化是否與電量快速下降的時段重疊。
- 保留記錄。記下每輪開始和結束時的電量、時間、連線狀態及錯誤訊息原文。若需進一步排查,這些資料比「背景很耗電」之類的描述更有用。
結論:只保留符合實際使用需求的自動條件
若自動連線測試中反覆重新建立連線,而手動穩定連線測試正常,請先修正 On Demand 條件;若兩種連線測試都異常,應優先檢查網路、伺服器和持續要求。不要把每次耗電變化都歸因於同一個開關。
最終設定應兼顧可用性與可驗證性:需要連線時能成功建立,不需要時能維持中斷,切換網路後也不會持續失敗。完成這輪測試後,再決定採用常駐、按需或手動連線,不要只憑一次電池百分比做選擇。