Shadowrocketのバックグラウンド電池消耗を確認|On Demandは有効にする?

Shadowrocketのバックグラウンドでの電池消耗を確認し、On Demandと手動接続を比較。iPhoneのバッテリー使用状況の見方と、接続条件の調整方法を解説します。

この記事の要点

On Demandは接続を自動で開始する条件を制御する機能で、省電力スイッチでも、すべての通信をプロキシ経由にする設定でもありません。ネットワーク切り替え後に接続を自動で復旧したい場合は有効のまま条件を確認し、決まった時間だけ使う場合は無効にして手動で接続できます。バックグラウンドの電池使用率が上がった、切断後に再接続する、画面ロック中も動作が続くといった場合は、バッテリー履歴、接続状態、リクエストログを順に確認して原因を絞り込みましょう。

On Demand・トンネル・実際の通信を区別する

Shadowrocketのメイン画面をバックグラウンドに移しても、システムのVPNトンネルがリクエストを処理し続ける場合があります。ホーム画面に戻る、画面をロックする、Appスイッチャーからアプリを閉じるといった操作だけでは、トンネルが停止したとは判断できません。接続中かどうかはShadowrocketのHomeに戻って状態を確認し、システム設定のVPN表示とも照合してください。

On Demandは接続を開始する条件を制御し、Global Routingは通信の処理方法を制御します。On Demandを有効にすると、現在のオンデマンドルールに合致した場合にシステムが接続を試みます。「通信を検出したときだけ一瞬動作する」タイマー機能ではなく、通信がないときに必ず切断されるわけでもありません。接続が維持されるか、再接続されるかは、実際のルールとネットワーク環境に応じて判断してください。

ネットワーク条件に一致 システムがトンネルを確立 アプリがリクエストを送信 ルーティングでリクエストを処理 接続を通じてデータを転送

電池を消費する要因には、トンネル内のデータ処理、暗号化通信、DNSクエリ、接続失敗後の再試行のほか、リクエストを送信するバックグラウンドアプリや無線ネットワーク自体も含まれます。Webページを開いていなくても、写真の同期、メールの受信、ほかのアプリのバックグラウンド動作によって通信が発生することがあります。そのため、システム上で一部の動作がShadowrocketの使用として表示されても、それだけでOn Demandが原因とは断定できません。

自動接続を維持するか、手動接続にするかを利用状況で選ぶ

ここでいう「常時接続」とは、トンネルを利用可能な状態に保ち、切断後は条件に応じて復旧させる使い方を指します。On Demandに独立した省電力モードがあるという意味ではありません。On Demandを無効にすると該当する自動接続動作が止まりますが、すでに確立されているトンネルまで必ず切断されるわけではありません。接続を停止するにはHomeで手動切断し、状態を確認してください。

設定方法 用途 確認するポイント
On Demandを有効にする 条件に合ったときに接続を自動で開始、または復旧したい。 Wi-Fiやモバイル通信の切り替え後に、頻繁な再接続が起きないか。
On Demandを無効にして手動接続する 決まった作業時間やタスクの間だけ使いたい。 使用後に確実に切断できているか、次回の接続を忘れずに行えるか。
On Demandを有効にして条件を絞る 一部のネットワーク環境でのみ自動接続したい。 現在の画面で設定できるネットワーク種別や一致条件が、接続不要な環境まで対象にしていないか。

自動接続が手動接続より必ず電池を多く消費するとは限りません。どちらの方法でも同じトンネルを維持して同じリクエストを処理するなら、スイッチの状態だけから電池消費の差は判断できません。比較する際は、接続時間の合計、自動再接続の回数、接続不要な時間帯まで処理対象になっていないかを確認してください。

まとめ:まず接続が必要な時間帯を決める

接続が必要なのが毎日決まった作業時間だけなら、まず手動接続で基準を確認します。自動復旧が必要ならOn Demandを有効のままにし、プロトコルをすぐ変更するのではなく、接続条件の範囲と再接続の原因を優先して確認してください。

システムのバッテリー画面で比較できる記録を取る

iPhoneまたはiPadでシステムの「設定 → バッテリー」を開き、画面に表示される期間、バッテリー残量の推移、アプリのアクティビティを確認します。システムのバージョンによって期間や項目名が異なる場合があるため、実際の端末の表示に従ってください。同じ時間帯を選んでShadowrocketとほかのアプリの動作を比較し、1日分のデータと短時間のテストを混同しないようにします。

  1. 開始時と終了時の条件を記録します。開始時刻、バッテリー残量、充電中かどうか、Wi-Fiとモバイル通信のどちらを使ったか、電波が安定していたかを書き留めます。インターネット共有、ナビ、ビデオ通話など、負荷が大きく変わる操作も記録してください。
  2. バッテリー残量とアクティビティの関係を確認します。残量の減少が画面使用中に集中しているか、画面ロック中も続いているかを見ます。システムにバックグラウンド動作の時間が表示される場合は併せて記録します。ただし、それだけでプロセッサーが常に高負荷だったと判断しないでください。
  3. 接続状態を確認します。テストの開始時と終了時にHomeを開き、トンネルが接続中か記録します。途中でネットワークを切り替えたり手動で切断したりした場合は、その時刻も記録してバッテリーの推移と照合できるようにします。
  4. 同じ条件で繰り返します。たとえば60分の観察時間を2回設け、同じネットワーク、ほぼ同じ画面使用量、同じ設定にそろえて、On Demandまたは接続方法だけを変えます。ここでの60分は記録方法の例であり、製品のバッテリー駆動時間を示すものではありません。
2か所
システムの「設定 → バッテリー」とShadowrocketのHomeを照合
1項目
各回で変更する設定は1つだけにし、ほかの接続条件はそろえる
60分
観察時間の例。2回とも同じ長さで行い、実測結果を示すものではありません

バッテリー画面のアプリ別割合は、選択した期間における電池消費の内訳です。「アプリがバッテリー全体の同じ割合を消費した」という意味ではありません。ほかのアプリの動作が減るとShadowrocketの割合は上がることがありますが、端末の実際の電池減少量が増えたとは限りません。バッテリー残量の推移、実際の減少量、動作時間帯を併せて確認してください。小さな差は複数回観察し、1回の記録だけで結論を出さないようにしましょう。

Settings → On Demandを順番に調整する

ShadowrocketのSettings → On Demandを開き、まず有効になっているか確認してから、画面に表示されるルールやネットワークの一致条件を確認します。アプリの画面やシステム環境によって、表示される項目は異なる場合があります。説明をそのまま再現するために存在しないスイッチを探したり、特定のWi-Fi名を一般的な例として入力したりしないでください。

  1. まず手動接続を基準にします。On Demandを無効にし、Homeに戻って手動で切断します。未接続になったことを確認してから、接続不要な時間帯にも同程度の電池消費が続くか観察してください。
  2. 次に手動接続を試します。On Demandを無効のままにして、Homeから既存の設定で手動接続し、普段と同じ作業を行います。この場合も電池消費が明らかに増えるなら、自動接続だけを原因とせず、リクエストの負荷やネットワークも確認してください。
  3. 自動接続を再設定します。自動復旧が必要な場合はOn Demandを再び有効にします。画面にWi-Fi、モバイル通信、ネットワーク一致条件が表示される場合は、必要な範囲だけを残してください。変更後は該当するネットワークごとに動作を確認します。
  4. 切断と復旧を確認します。管理できる環境でネットワークを一度切り替え、Homeで期待どおりに接続が復旧するか確認します。テスト後にネットワークを何度も切り替え続けないでください。その操作自体が接続確立の回数を増やします。

「切断してもすぐ再接続する」場合は、まず自動接続の動作を確認します。On Demandが有効で、現在のネットワークが引き続き条件に合致していれば、システムが再接続することがあります。未接続の状態を確認するには、先にオンデマンド接続を無効にしてから手動で切断してください。Homeの接続スイッチを繰り返し操作するだけでは、接続処理を何度も発生させることがあります。

バックグラウンド動作が続く場合は、リクエストと再試行を確認する

同じ作業をしているときに手動接続でも自動接続でもバックグラウンド動作が多い場合は、次に「トンネル内で何が処理されているか」を確認します。アプリにリクエスト履歴やログ画面がある場合は、観察時間帯に該当する時刻、接続先、失敗情報を確認してください。関係する項目を少数だけ記録すれば十分です。詳細度の高いログを長時間有効にする必要はありません。ログの記録自体にも処理やストレージが必要です。

エラー:Connection timed out

原因:接続が許容時間内に完了しませんでした。現在のネットワーク、接続先アドレス、接続パラメータなどが関係している可能性があります。タイムアウトが1回あっただけでは、On Demandの問題とは断定できません。

対処方法:同じ時間帯にタイムアウトが連続していないか確認し、安定したネットワークで既存の設定を使って1回再試行します。それでも失敗する場合は、利用中のサービス提供元に手元の接続情報を確認し、テストを繰り返し続けないでください。

上のエラーカードは、ログに同じ文言が実際に表示された場合に見分けるための例です。すべての失敗で同じエラーが表示されるわけではありません。HomeにNot Connectedと表示されている場合、まずこれは接続状態を示す表示であり、失敗原因を特定するものではありません。接続を試みた時刻とログを照合して判断し、状態表示を具体的なエラーとして扱わないでください。

ルーティングモードとプロトコルを区別して、最終設定を決める

HomeのGlobal RoutingとOn Demandは別々の設定です。Global RoutingのProxy、Direct、Config、Sceneは、アプリ内の説明と現在の設定を確認してください。DirectはシステムのVPNトンネルを切断することと同じではありません。接続中と未接続を比較する場合は、Directに変更するだけでなく、実際に切断してください。

Configを使う場合は、Configで現在有効なファイルのRuleを確認します。DOMAIN-SUFFIX、GEOIP、IP-CIDRなどのルールは設定順に照合され、最後のFINALはそれまでに一致しなかったリクエストの処理方法を指定します。通信がどのポリシーに送られるかは接続経路に影響することがありますが、ルールの数だけからバッテリー駆動時間を判断することはできません。

まとめ:単一の割合ではなく、再現する現象で判断する

決まった時間だけ接続が必要なら、手動で接続し、作業後に切断します。自動復旧が必要ならOn Demandを有効にして、一致条件を確認します。同じネットワークと同じ作業内容で差が繰り返し確認できた場合に限り、変更後の方法を継続して使う設定として採用しましょう。

App Storeでダウンロード