On Demandは条件に応じてシステムが接続するタイミングを制御する機能で、低電力モードではありません。Shadowrocketのバックグラウンドでのバッテリー消費を調べる際は、バッテリー使用率、実際の残量低下、接続の繰り返しを切り分け、同じネットワークと近い負荷で設定を比較します。自分で用意したサービスとサブスクリプションを利用し、手動接続と自動接続のどちらにするか検討したいiPhone/iPadユーザー向けの記事です。
バックグラウンド時間ではなく、システムのバッテリー使用状況を確認する
Shadowrocketを接続すると、メインアプリが前面にない間もネットワーク拡張機能が通信を処理できます。アプリをバックグラウンドに移動しても、VPNが切断されるとは限りません。ステータスバーにVPNの表示があっても、端末が常に大量のデータを送受信しているとは限りません。バックグラウンドでの活動時間、接続時間、実際の電力消費はそれぞれ別の指標です。
iPhone/iPadの「設定」→「バッテリー」で集計期間を選び、バッテリー残量の推移、画面の使用状況、Shadowrocketの使用状況を確認します。システム画面の名称は、OSのバージョンによって異なる場合があります。アプリの横に表示される割合は、通常、選択した期間におけるバッテリー使用量の構成比です。バッテリー全体の減少率を示すものではなく、バックグラウンドの時間から消費量を換算することもできません。
たとえば、どちらもバッテリー残量が5ポイント減った時間帯でも、ほかのアプリの使用が少ないほどShadowrocketの使用率が高く見えることがあります。これは追加確認の手がかりにすぎず、特定の設定で消費が倍増したと判断する根拠にはなりません。通信処理に伴う消費はシステムのアプリ別集計方法にも左右されるため、単一アプリの数値がネットワーク全体の消費を示すわけではありません。
結論:端末全体のバッテリー減少を確認してから、接続条件を調整する
バックグラウンド時間が増えても、似た待機条件で端末全体のバッテリー残量に目立った変化がなければ、まず現在の設定を維持します。残量の減り方が明らかに速くなっている場合は、同じ時間帯の通信量、電波状況、再接続の記録を比較してください。
On Demandが制御するのは自動接続であり、すべてのバックグラウンド通信ではない
Settings → On Demandでは、条件に応じて接続する動作を設定します。設定した条件に一致すると、システムが接続を開始することがあります。アプリを開くたびに接続するためのスイッチでも、「通信がなければすぐ切断する」機能でもありません。実際の動作は、Wi-Fi、モバイル通信、ドメインなど、有効にした条件に基づいて確認してください。
On Demandをオフにしても、確立済みの接続が必ず終了するとは限りません。手動接続と比較するときは、Homeに戻り、接続スイッチとシステムのVPN状態を確認してください。反対に、On Demandが有効なまま手動で切断しても、その後に条件を満たすとシステムが再接続することがあります。通常は条件に沿った動作であり、単純なスイッチの故障とは限りません。
| 設定または状態 | 主に制御する内容 | バッテリー消費の確認で見るポイント |
|---|---|---|
| On Demand | システムが条件に応じて接続を開始するタイミング | ネットワークの切り替えや条件一致によって接続が繰り返されていないか確認する |
| Global Routing → Proxy | 通信をプロキシ経由で処理する | 処理する通信の範囲が変わるため、別のモードと単純比較できない |
| Global Routing → Direct | 直接接続の経路を使う | VPNをオフにすることでも、ネットワーク拡張機能を停止するスイッチでもない |
| Global Routing → Config | 現在の設定にあるルールに従って通信を処理する | ルールの変更が比較に影響しないよう、同じ設定を維持する |
| Global Routing → Scene | 設定済みのSceneを使用する | 名前だけで経路を判断せず、現在のSceneの設定内容を確認する |
そのため、「On Demandをオンにすればバッテリーが長持ちする」とは一概に言えません。オフにしても同じ接続を維持し、同じ通信を処理するなら、差は小さい可能性があります。自動接続の条件によって不要な接続時間が減れば、消費が抑えられることもあります。一方、条件が細かすぎて接続を何度も確立し直すと、消費が増える場合もあります。
4段階で再現性のあるバッテリー比較を行う
テストでは、待機中の残量を見ながら遅延テストを連続実行するのではなく、普段問題が起きる状況を再現してください。以下の時間は記録しやすい実験手順の目安であり、バッテリー駆動時間を保証するものではありません。テスト中は既存の設定を保ち、プロトコル、接続先、ルーティングモードを同時に変更しないでください。
-
基準値を記録する
「設定」→「バッテリー」で開始時の残量、集計期間、画面の使用状況を記録します。Homeでは現在の接続項目とGlobal Routingを記録してください。同じWi-Fiを使用し、大容量ファイルの転送を一時停止して、まず60分間観察します。
-
自動接続をオフにする
Settings → On Demandで自動接続をオフにし、Homeに戻って手動で接続します。同じ負荷のまま60分間観察してください。この比較で確認するのは手動接続を維持した場合であり、完全に切断した状態での待機ではありません。
-
必要な条件を有効にする
Settings → On Demandを開き、現在の利用状況で必要な条件だけを有効にします。同じ接続項目、Global Routing、ネットワークを維持して60分間観察し、自動接続の有無や短時間での再接続を記録してください。
-
異常が出た時間帯を再テストする
2回の結果に大きな差がある場合は、条件が近い別の時間帯でもう一度試します。完全に切断した状態を基準に加える場合は、先にOn DemandをオフにしてからHomeで切断し、システムのVPN状態を確認してください。業務に支障がない場合に限って実施します。
1時間以内の整数表示による残量変化は、表示の刻み、温度、バックグラウンド処理に左右されます。1ポイントの差が一度出ただけで結論を出さないでください。充電中、システムによる一斉同期、写真のアップロード中、電波の弱い場所を移動中に得た2回分の数値を、そのまま差し引いて比較するのも避けてください。端末が熱くなった場合は、画面の明るさ、モバイル通信の電波状況、前面で動作しているアプリの負荷も確認します。
バックグラウンド消費が増えたら、再接続とネットワーク品質を確認する
接続の確立、暗号化処理、通信の送受信、リクエストの再試行には、それぞれ負荷がかかります。Wi-Fiとモバイル通信が頻繁に切り替わる場合や、電波が弱い場合、サーバーに一時的に到達できない場合は、接続が繰り返し確立されることがあります。ほかのアプリがリクエストを何度も再試行する場合もあります。最後のテストが成功したかどうかだけでなく、問題が発生した時刻に照らして記録を確認してください。
以下はネットワーク診断で見られるエラーテキストの一部です。ログ全体の内容はプロトコルやOSのバージョンによって異なる場合があります。失敗の種類を見分けるための例であり、バッテリー消費量を測定した結果ではありません。また、ログが完全に同じ文言になるとは限りません。
エラー:connection timed out
原因:制限時間内に接続が完了しなかった状態です。パケットロス、接続先への到達不可、ポートの不一致などが考えられますが、このログだけで問題の場所を特定することはできません。
対処法:Homeで選択中の接続項目を確認し、手元にある設定情報に照らしてサーバーアドレスとポートを確認します。その後、安定したWi-Fiとモバイル通信でそれぞれ1回ずつ接続テストを行い、テストを連続して繰り返さないでください。
エラー:certificate has expired
原因:TLS証明書の有効期間の確認に失敗しています。サーバー証明書の期限切れ、または端末の時刻が証明書の有効期間からずれている可能性があります。
対処法:まず「設定」→「一般」→「日付と時刻」で自動設定と現在時刻を確認します。次に、利用中のサービス提供元にサーバー証明書の状態を確認してください。証明書の検証を無効にして解決しようとしないでください。
- モバイル通信でのみ発生する場合:まず電波状況と移動中かどうかを確認します。無線通信の品質が変化すると再送や通信の負荷が増えるため、On Demandが原因と決めつけることはできません。
- ネットワーク切り替え後に頻発する場合:Settings → On Demandで設定したネットワーク条件が想定どおりか確認し、切り替え前後の実際の接続状態を記録してください。
- 特定の接続項目だけで発生する場合:手元にある設定情報に照らして、プロトコルのパラメータを1つずつ確認します。複数のプロトコルを続けて切り替えた後、最後の結果だけをバッテリー消費の結論にしないでください。
- エラーがないのに通信量が増え続ける場合:写真の同期、クラウドバックアップ、動画再生、アプリのバックグラウンド更新を確認してください。正常に通信できていてもバッテリー消費が増えることがあります。接続に失敗したときだけ確認が必要なわけではありません。
ルーティングの変化を節電効果と取り違えないよう、プロトコルと設定を確認する
Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは接続の仕組み、通信方式、パラメータが異なりますが、プロトコル名だけで消費電力の順位を決めることはできません。実際の負荷は端末、ネットワーク品質、通信量、サーバー設定、接続の安定性などに左右されます。まず現在の設定で安定して接続できることを確認し、根拠のある項目だけを個別に調整してください。
Homeで現在の接続項目の編集画面を開き、元の設定情報に照らしてプロトコル、サーバー、ポート、認証情報を確認します。たとえば、設定情報でTLSポートが443と指定されている場合は、一致しているか確認してください。443は一般的な例にすぎず、すべてのプロトコルやサーバーで共通のポートではありません。TLSを使用する場合は、サーバー名や関連設定も設定情報に沿って確認します。
- Config:テスト中は同じ設定を使っていることを確認します。Global RoutingがConfigの場合、ルールを変更すると通信の経路も変わります。
- DOMAIN-SUFFIX / GEOIP / IP-CIDR:これらのキーワードは異なる種類のルール判定に使われるもので、CPU使用率を下げるバッテリー設定ではありません。
- FINAL:前のルールに一致しない場合の最終処理に使います。最終処理を変更すると多くの通信の経路が変わる可能性があるため、On Demandと同時に変更してそのまま比較しないでください。
- サブスクリプションの更新:自分が利用しているサブスクリプションだけを更新し、更新後に現在の接続項目が変わっていないか確認します。比較中にパラメータが変わった場合は、基準値を取り直してください。
遅延テスト、サブスクリプションの更新、手動の診断はいずれも通信を発生させます。問題の切り分けには役立ちますが、待機中の比較を行っている間ずっと実行しないでください。必要な確認を一度済ませたら、操作を行わない観察時間を設けます。
利用状況に応じてオン・オフを決める
自動接続が必要か、設定した条件が実際の使い方に合っているかを基準に判断します。一部の通信で常に現在の設定を適用する必要がある場合は、バッテリーの数値を下げることだけを目的に不用意に切断しないでください。使う時間帯がはっきり決まっている場合は、手動接続のほうが接続するタイミングを把握しやすくなります。
| 利用状況 | 設定の選択肢 | 確認するポイント |
|---|---|---|
| 決まった作業中だけ接続する | On Demandをオフにし、Homeから手動で接続・切断する | 作業後にVPNの状態が想定どおりで、必要な通信にも支障がない |
| Wi-Fiとモバイル通信を頻繁に切り替える | 必要に応じてOn Demandのネットワーク条件を設定する | 切り替え後に必要な接続が復旧し、短時間に再接続が頻発しない |
| 特定のリクエストをきっかけに接続したい | On Demandで関連するドメイン条件を確認する | 対象のリクエストで想定どおりの動作が起きること。キャッシュや既存の接続が観察結果に影響する場合がある |
| 夜間の待機中にバッテリーが異常に減る | まず同じ接続状態でオン・オフを比較し、必要に応じて切断時の基準を追加する | 端末全体のバッテリー残量の推移、バックグラウンド通信、エラー記録をあわせて確認する |
結論:必要な自動接続を維持し、無駄な再接続を減らす
On Demandで接続の要件を安定して満たせており、異常な再接続もなければ、そのまま利用できます。オフにすることで不要な接続時間だけが減る場合は、手動操作に切り替える方法もあります。どちらの状態でも消費が多い場合は、スイッチを何度も切り替えるのではなく、実際の通信量、ネットワーク品質、接続パラメータを確認してください。
ShadowrocketはAppleプラットフォーム向けの有料クライアントで、主にiPhone/iPadで利用できます。対応デバイスとシステム要件はApp Storeの掲載情報をご確認ください。クライアントは買い切り型で、クライアントの購入と接続サービスの契約は別です。この記事では、手元にある設定の確認方法を説明します。接続先やサブスクリプションの提供・販売・推奨は行いません。