Shadowrocketがバッテリー消費を増やしているか判断するには、端末全体の電池残量の減り方、システムのバッテリー使用状況、接続の再確立が繰り返されていないかを合わせて確認します。自分で利用している接続サービスやサブスクリプションがあり、常時接続とOn Demandのどちらにするか迷っている方は、まず比較可能な記録を取り、次に接続条件を調整し、ネットワーク切り替え時や画面ロック後の動作を確認しましょう。VPNアイコンや一度の使用割合だけで判断しないことが大切です。
バックグラウンドのアプリ画面・VPNトンネル・実際の通信を区別する
ShadowrocketはApp Storeで販売されているAppleプラットフォーム向けの有料クライアントで、買い切りです。正規版は公式アイコン、デベロッパ名のShadow Launch Technology Limited、アプリIDの932747118で確認できます。システム要件と互換性はApp Storeの掲載内容をご確認ください。アプリの購入と、ユーザーがすでに利用している接続サービスは別のものであり、購入に接続サービスのプランは含まれません。
ホーム画面に戻ってアプリが前面に表示されなくなっても、システムのVPNトンネルが停止したとは限りません。接続中は、トンネルを通る通信を処理するネットワーク拡張機能が動作します。一方、ステータスバーにVPNマークが表示されていても、端末が常に大量のデータを送受信しているわけではありません。通信のない接続、動画再生、電波が弱く再接続を繰り返す場合では、電池消費の条件が異なります。
電池消費の要因には、暗号化処理、データの送受信、接続の維持、DNSクエリ、失敗後の再試行などがあります。画面の明るさ、バックグラウンド同期、モバイル通信の電波状況も端末全体の消費電力に影響します。そのため、「バックグラウンドで動作した時間」だけでは、追加で消費した電力量はわかりません。
常時接続とOn Demand:異なるのは接続を開始するタイミング
安定したネットワーク経路が必要な場合は、常時接続が適しています。接続済みなら、その後のリクエストでトンネルの起動を待つ必要が通常ありません。ただし、通信がない間も接続の維持やシステムのネットワーク処理が発生することがあります。On Demandでは、設定した条件に応じてシステムが接続動作を決定します。「画面が消えたら切断する」機能ではなく、現在操作中のアプリだけを判別するものでもありません。
| 設定方法 | 接続動作 | 確認すべき負担 |
|---|---|---|
| 常時接続 | トンネルを維持し、実際の通信量はアプリの利用状況によって変わります。 | アイドル中の接続維持、電波が弱い場合の再試行、バックグラウンドでの継続的な通信。 |
| On Demand | ネットワークやドメインなど、設定した条件に応じてシステムの接続動作を開始します。 | 接続開始までの待ち時間、条件の頻繁な変化、範囲が広すぎるトリガー。 |
| 手動接続 | Homeでユーザーが接続・切断を操作します。 | 接続や切断を忘れやすいため、操作の習慣を決めておく必要があります。 |
通知、同期、その他のバックグラウンド通信が頻繁に条件を満たす場合、On Demandでも接続が長時間維持されることがあります。Wi-FiとCellularが頻繁に切り替わる場合や、設定したSSIDの条件に矛盾がある場合は、トンネルの再起動が繰り返され、接続の負担が増えることもあります。オンデマンド接続を有効にしただけで、バッテリーが長持ちすると決めつけないでください。
まとめ:まず不要な再接続を減らす
ネットワークが安定し、設定が同じ条件で2つの方式を比較します。ログに接続と切断の繰り返しが見られる場合は、On Demandの電池への効果を評価する前に、トリガー条件やネットワークの問題を見直してください。
システムのBattery画面で比較できる記録を取る
iPhoneまたはiPadのシステム設定でSettings → Batteryを開き、バッテリー使用状況を確認します。日本語のシステムでは「設定 → バッテリー」です。システムによって表示期間やグラフへのアクセス方法が異なるため、テスト全体を含む期間を選び、画面の使用状況とバックグラウンドでの活動も記録してください。アプリごとの割合は、選択した期間における使用電力の内訳であり、バッテリー容量が同じ割合だけ減ったという意味ではありません。
-
テスト環境をそろえる
同じ端末、同じWi-Fi、同じ接続設定、近い画面輝度でテストします。テスト中は充電せず、システムアップデート、写真の一斉同期、大容量ファイルの転送は避けてください。
-
開始時の状態を記録する
システムのSettings → Batteryを開き、開始時刻、バッテリー残量、ネットワークの種類を記録します。Shadowrocketの接続状態と、Settings → On Demandが有効かどうかも記録してください。
-
接続状態を保つ
まず常時接続で30分間観察します。あらかじめ決めた使い方で操作するか、画面をロックして何もせずに置いてください。終了後にバッテリー残量と異常な再接続の有無を記録します。画面を点灯して使う場合と、ロックして置く場合は、別の条件として記録してください。
-
オンデマンド接続をテストする
確認済みのOn Demand条件に切り替えて、同じく30分間観察します。アプリの使用状況をできるだけ同じにし、スイッチの状態だけでなく、実際に接続が開始されたかも記録してください。
-
繰り返し確認する
近い時間帯にもう一度テストし、実施する順番を入れ替えてください。システムのバッテリーグラフと毎回の総消費量を合わせて判断します。短時間のテストで残量に変化がなくても、電池を消費していないとは言い切れません。
ここでの30分は実施しやすい観察時間の目安であり、バッテリー駆動時間の測定結果ではありません。バッテリー残量の表示は端数が丸められ、バックグラウンド処理にも変動があります。2回の差が小さい場合は記録時間を延ばして繰り返し観察し、「何%節約できる」と一律に結論づけないでください。端末が熱くなる場合は、電波状況、画面、ほかのアプリの動作も確認しましょう。
Settings → On Demandの設定を確認する順序
ShadowrocketのSettings → On Demandを開き、現在のオンデマンド設定を確認します。まず既存の条件を記録し、一度に変更するのは1項目だけにしてください。具体的な条件名と選択できる動作は、現在の画面表示を確認します。SSIDには端末が実際に接続しているWi-Fiの名称を指定してください。ドメイン条件を汎用的なURLフィルターとして使うこともできません。
- まずデフォルトの動作を確認:指定した条件に一致しない場合の動作を確認します。例外だけを設定して、それ以外のネットワークでどう接続するかを見落とさないようにしてください。
- 次にWi-Fiを確認:SSIDの綴り、空白、大文字・小文字を確認します。自宅のWi-Fiで周波数帯ごとに異なる名前を使っている場合は、それぞれで動作を確認してください。ルーターの機器名を確認するだけでは不十分です。
- Cellularは個別に確認:Wi-Fiから離れたとき、想定どおりに接続するかを確認します。電波が弱いことによるタイムアウトは、トリガー条件を増やしても解決しません。
- 最後にドメインを確認:ドメインをトリガー条件にしている場合は、対象に実際にアクセスして動作を確認します。キャッシュや既存の接続が観察結果に影響するため、1回ページを開いただけでは、ルールが常に機能する証明にはなりません。
- 画面ロック時の動作を確認:画面ロック後、ロック解除後、ネットワーク切り替え後の状態をそれぞれ確認し、接続が繰り返し再確立されていないか記録します。
たとえば、自宅のWi-Fiでは接続を維持せず、Cellularでは接続を使う場合は、まず普段の利用に自宅ネットワークで問題がないことを確認してから、対応する条件を設定します。その後、「自宅のWi-Fiに接続」「Wi-Fiをオフ」「自宅のWi-Fiに再接続」の3つの状況で確認してください。切り替え時の短い待ち時間は接続の確立による場合があります。読み込みがいつまでも続く場合は、接続のトラブルとして調べてください。オンデマンド接続でよくある動作と一括りにしてはいけません。
Global Routingやプロトコル設定ではバッテリー消費を診断できない
On Demandは接続を開始するタイミングを決め、Global Routingは接続後のルーティング処理を決めます。役割はそれぞれ異なります。Home → Global RoutingにあるProxy、Direct、Config、Sceneは、4段階の省電力設定ではありません。特にDirectは、システムのVPNトンネルが停止した状態と単純に同じではありません。
| モード | 確認するポイント |
|---|---|
Proxy | 主にプロキシ経由で通信を処理します。実際の通信量と接続品質を確認します。 |
Direct | 主に接続先へ直接通信しますが、ネットワーク拡張機能が必ず停止するわけではありません。 |
Config | 現在の設定ルールに従って通信を振り分けます。適用されたルールと最終的なポリシーを確認します。 |
Scene | 現在のScene設定と、実際に使われているルーティング動作を確認します。 |
Configを使う場合、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALなどのルールはリクエストの接続先を決めるもので、電池を制御する指示ではありません。アプリのリクエストが繰り返し失敗する場合は、どのルールに一致し、最終的にどのポリシーが適用されているかを確認してから、変更が必要か判断してください。バックグラウンドの動作を減らすために、すべてをDirectに切り替えるのは避けましょう。
Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは、それぞれ接続の維持方法や通信特性が異なります。ただし、端末や電波状況、サーバー側の設定を考慮せずに、一律の省電力ランキングを示すことはできません。まず、利用中の接続サービスに必要なプロトコルと設定が正しいことを確認し、1項目ずつ比較してください。ポート、通信方式、キープアライブ設定をむやみに変更すると、安定した接続が再試行を繰り返す状態になることがあります。
- ルーティングモードを比較するときは、On Demandの条件を変えないでください。
- プロトコルを比較するときは、クライアント側の名称だけでなく、サーバーがその設定に対応していることを確認してください。
- 診断後は、一時的に有効にした詳細ログを無効にし、不要な診断処理を長時間続けないようにしてください。
タイムアウトや再接続が発生したら、まず接続の問題を解決する
電池の消費が増え、失敗も繰り返される場合は、接続エラーとシステムのBattery画面の時間帯を照らし合わせます。以下は接続ログに記録される可能性のあるエラー原文です。実際の形式はプロトコルやログの種類によって異なります。これらはネットワーク障害の手がかりであり、どのコンポーネントが電池を消費したかを直接示すものではありません。
エラー:i/o timeout
原因:制限時間内に読み書きが完了していません。現在のネットワークに接続できない、電波が不安定、接続先から応答がないなどの原因が考えられます。
対処法:設定はそのままにして、安定したWi-FiとCellularで同じ接続を個別にテストし、特定のネットワークだけで失敗するか確認します。接続できない状態で再試行を続けないようにしてください。
エラー:connection refused
原因:接続先がリクエストを明示的に拒否しています。ポートの誤りや、該当するサービスが待ち受けていない場合によく発生します。
対処法:利用中の接続サービスのアドレス、ポート、プロトコルを確認します。必要に応じて利用中のサービスプロバイダーに状態を問い合わせ、修正後にオンデマンド接続を再び有効にしてください。
サブスクリプションの更新後にエラーが発生した場合は、選択中の接続項目が変わっていないか、以前のアドレスやプロトコル設定が引き続き有効かを確認してください。あらゆるタイムアウトに対してサブスクリプションの更新を繰り返すのは避けましょう。更新で取得できるのは設定内容であり、電波の弱さや接続先の障害は解決できません。診断用のスクリーンショットやログを送る前に、サブスクリプションURL、認証情報などの機密情報を隠してください。
まとめ:使い方に合わせて接続方法を選ぶ
途切れずにアクセスする必要がある場合は、まず安定性を確認しましょう。ネットワークの切り替わりが明確で、接続しない時間が長い場合は、On Demandをテストしてください。総消費量、実際の接続状態、端末の使用状況が一致していることを確認したうえで、普段使う設定を決めます。