v2rayNGの待機中に電池が減る、バックグラウンドで頻繁に切断される、端末が発熱するといった問題を抱えるAndroidユーザー向けの記事です。確認すべきなのは、単純にバックグラウンド権限を無効にすることではありません。コアの常駐動作、アプリの通信量、弱いネットワークでの再接続、システムの集計上の誤差を切り分け、バッテリー制限、フォアグラウンドサービス、アプリごとのプロキシ、ログ設定を順番に調整します。
電池消費がv2rayNGによるものか、プロキシ経由のアプリによるものかを確認する
Androidのバッテリー画面に表示されるアプリの電池使用量は、そのアプリだけが消費した電力の全量とは限りません。v2rayNGをVPNモードで動かすと、端末内にローカルの仮想ネットワークインターフェースが作られ、他のアプリの通信がそこを経由します。システムによっては、ネットワーク活動の一部、VPNサービスの稼働時間、モバイルネットワークのウェイクアップ記録などがv2rayNGに集計されることがあります。そのため、バッテリー使用量の上位に表示されても、それだけでプロキシコアの異常とは判断できません。
まず、まとまった観察時間を確保します。バッテリーを80%以上まで充電して開始時刻を記録し、普段どおりの使い方で4〜6時間動かします。システムの「設定」→「バッテリー」→「バッテリー使用量」で、フォアグラウンド時間、バックグラウンド時間、電池使用率を確認し、画面点灯時間、モバイル通信の電波状況、テザリングの使用状況、長時間の音声再生の有無も記録します。v2rayNGを5時間バックグラウンドで動かしても2〜4%程度の消費で、端末が継続的に発熱していなければ、暗号化接続と通信転送による通常の負荷であることが多いです。待機2時間で8%以上減る場合は、さらに原因を絞り込みます。
この経路のどの段階でも、ウェイクアップ回数が増える可能性があります。短編動画、クラウドストレージの同期、メッセージアプリ、システムバックアップは継続的に通信を発生させます。ルーティングルールが多いと照合処理がわずかに増え、サーバーでパケットロスが起きると再送が発生します。モバイル通信では電波が弱いほど無線モジュールの出力も高くなります。一方、ステータスバーに常駐するフォアグラウンドサービス通知は、サービスが動作中であることをシステムに示すためのもので、通知自体が主な電池消費源ではありません。
判断するときは、「バッテリー残量の減少」と「実際の使用状況」を合わせて確認します。端末を放置し、画面を消し、ネットワークも安定しているのに温かい状態が続くなら、再接続ループ、ログの頻繁な書き込み、または特定アプリの大量なバックグラウンド通信が疑われます。動画視聴、ファイルのダウンロード、大容量同期のときだけ消費が増えるなら、通信量の増加による正常な結果であることが多いです。
| 観察結果 | 考えられる原因 | 次に行うこと |
|---|---|---|
| 待機中は安定しているが、動画アプリの使用時に急速に減る | 通信量と画面表示による消費 | アプリごとのプロキシと動画画質を確認する |
| 画面ロック後も発熱し、通信量は少ない | 弱いネットワークでの再接続、ログの頻繁な書き込み、または不安定なノード | 安定したノードに切り替えてログを確認する |
| v2rayNGを停止すると他のアプリも明らかに省電力になる | バックグラウンド通信を行うアプリがプロキシ経由で動作し続けている | プロキシ対象のアプリを絞り込む |
| 電池使用率は高いが、総残量の減少は1%だけ | 集計対象となる使用量が少ない | 4時間以上観察してから比較する |
結論:同じ時間帯の総バッテリー残量をまず比較する
バッテリー一覧の使用率ランキングだけを見ないでください。明るさ、ネットワーク、使用時間を近づけ、v2rayNGを有効にした場合と無効にした場合をそれぞれ4時間ずつ測定します。1回の順位より、両者の差のほうが判断材料として有効です。
バッテリー最適化の対象外設定はバックグラウンド維持のためで、省電力設定ではない
Androidのバッテリー最適化は、端末をしばらく操作しないとバックグラウンドタスクやネットワークアクセスを制限します。v2rayNGを「制限なし」または「最適化しない」に設定すると、VPNサービスが一時停止されて何度も再起動する状況を減らせますが、その分サービスは継続的に動作します。つまり、対象外設定の目的は接続の安定であり、コアを停止して省電力化することではありません。接続がもともと安定しているなら、バックグラウンド権限を無制限にしても自動的に電池持ちが改善するわけではありません。
一般的に合理的な組み合わせは、v2rayNGのバックグラウンド動作を許可し、フォアグラウンドサービス通知を残し、システムの自動凍結や深いスリープを無効にすることです。ただし、プロキシ経由にするすべてのアプリまで無制限のバックグラウンド権限にする必要はありません。Androidの種類によってメニュー名は異なりますが、主な項目は通常、アプリ詳細画面のバッテリー管理にあります。
アプリの詳細を開く
v2rayNGのアイコンを長押しして「アプリ情報」を開き、「バッテリー」または「アプリのバッテリー使用量」を選択します。
バッテリー制限を調整する
v2rayNGを「制限なし」または「バックグラウンドでのアクティビティを許可」に設定します。システムに「最適化」と「最適化しない」しかない場合は、「最適化しない」を選びます。
フォアグラウンド通知を残す
「通知」→「通知カテゴリ」を開き、VPNまたはフォアグラウンドサービスのカテゴリを表示できる状態にします。接続状態を隠すためにアプリ全体の通知を無効にしないでください。
自動起動を確認する
システムに「自動起動管理」がある場合は、v2rayNGに必要な自動起動権限だけを許可します。通常のアプリまで一括で許可する必要はありません。
接続を再起動してテストする
v2rayNGに戻り、現在の接続を停止して10秒待ってから再起動します。その後、画面をロックして30分間、切断や再接続の繰り返しがないか確認します。
短時間の閲覧が中心で、常時接続が不要なら、使用後にv2rayNGを手動で停止できます。停止ボタンを押すと、VPNアイコンとフォアグラウンドサービス通知が同時に消えるはずです。最近使ったアプリの画面からスワイプして閉じるだけでは、VPNサービスの停止を意味しません。システムによってはフォアグラウンドサービスが動き続け、別のシステムではサービス自体が終了するなど、挙動は統一されていません。
「制限なし」にした後で電池消費が明らかに増えた場合は、まず以前はシステムの制限によってサービスが継続動作していなかった可能性を確認します。増えた消費電力は、接続が「頻繁に失敗する状態」から「継続して利用できる状態」になった結果かもしれません。常時接続が必要なら安定性を優先し、決まった時間だけ使うなら手動で接続を停止して不要な常駐時間を減らします。
フォアグラウンドサービス通知を残し、再接続ループとログの頻繁な書き込みを確認する
v2rayNGはVPNモードでAndroidのVPNサービスを継続的に維持する必要があり、システムは通常、このような長時間タスクをフォアグラウンドサービスとして動かします。ステータスバーの通知は、そのサービスが動作中であることを示す目印です。通知カテゴリを無効にしたり、システムのクリーナーで通知を強制的に隠したり、バックグラウンドプロセスを頻繁に終了したりすると、サービスの状態と画面表示が一致しなくなることがあります。その結果、画面では接続済みでも実際には通信が通らず、コアが再起動して接続を繰り返す場合があります。
確認時は、v2rayNG 1.10.x系のメイン画面メニューから「設定」→「パラメータ設定」を開き、ログレベルを確認します。通常はwarningまたはnoneがおすすめです。debugは短時間の原因調査向けで、数時間の連続使用には適しません。debugでは接続イベントやルーティング処理を詳しく記録するため、リクエストの多い端末ではファイル書き込みと画面更新が増えます。
エラー:context canceled
原因と対処:接続タスクの停止、ネットワークの切り替え、またはコアの再起動後に処理がキャンセルされています。たまに出る程度なら無視できます。数秒おきに繰り返す場合は、まずネットワーク自動切り替えツールを停止し、v2rayNGを10秒間停止してから再接続してください。
エラー:failed to find an available destination
原因と対処:宛先アドレスの解決に失敗しているか、現在のルーティングに利用可能なアウトバウンドがありません。ノードのアドレスとDNS設定を確認し、動作確認済みのノードに切り替えてコアを再起動してください。
エラー:io: read/write on closed pipe
原因と対処:ネットワークの切り替えや接続終了後も読み書きが行われています。少数の記録なら切断処理の一部です。表示が続く場合はdebugログを無効にし、Wi-Fiとモバイル通信が頻繁に切り替わっていないか確認してください。
ネットワークの切り替えは、バックグラウンドの電池消費を増幅させる代表的な要因です。Wi-Fiの範囲外へ移動したとき、モバイル通信とWi-Fiを行き来したとき、ウェブ認証が必要な無線ネットワークに接続したときは、既存の接続が失われます。コアはサーバーアドレスを再解決し、TCPなどの通信接続を確立して、プロトコルのハンドシェイクを完了する必要があります。1回の再接続による負荷は大きくありませんが、毎分何度も発生すると端末が安定した待機状態に入れなくなります。
ネットワークの切り替えが原因かどうかは、15分間の比較テストで判断できます。まず電波の安定したWi-Fiだけを使い、モバイル通信の自動切り替えを無効にして画面をロックし、温度とログを確認します。次にモバイル通信だけで同じテストを行います。どちらか一方だけで再接続が続くなら、問題は通常、v2rayNGのバックグラウンド権限ではなく、接続ネットワーク、DNS、またはノードの経路にあります。
- ログで数秒おきに接続終了と再確立が繰り返される場合は、まずネットワークの安定性を確認します。
- サーバーアドレスにドメイン名を使っている場合、DNS解決の失敗によって再試行回数が増えることがあります。
- ノードの遅延が急に増え、パケットロスも目立つ場合は、省電力設定を調整する前に安定したノードへ切り替えます。
- 速度測定は大量の接続と通信を意図的に発生させるため、電池消費のテスト中に何度も実行しないでください。
- 設定を変更した後は接続を停止して再起動し、古いコアが以前の設定を使い続けないようにします。
結論:通知が常駐していても異常な電池消費とは限らない
フォアグラウンドサービス通知が表示され続けるのは、VPNサービスが動作していることを示します。本当に確認すべきなのは、通知が何度も消えては現れる、ログが連続して流れる、ネットワークが頻繁に切り替わる、通信がないのに端末が発熱するといった状態です。
アプリごとのプロキシで対象範囲を絞り、不要なバックグラウンド通信を減らす
VPNモードでは、天気情報の更新、クラウド同期、アプリの更新確認、システムコンポーネントの通信など、端末上の多くのアプリの通信を受け入れる場合があります。コアが個々の小さなリクエストを処理する負荷は限られていますが、数十個のアプリがバックグラウンドで周期的に復帰すると、細かな通信が継続的に発生します。プロキシを通す必要があるのがブラウザー、通信アプリ、特定の仕事用アプリだけなら、プロトコル設定を調整するよりもアプリごとのプロキシを有効にするほうが効果的です。
v2rayNGのアプリごとのプロキシは、どのAndroidアプリをVPNトンネルに通すかを決める機能です。V2Rayのルーティングルールとは別の層にあります。アプリごとのプロキシは端末側の入口でアプリを選別し、ルーティングルールは通信がコアに入った後、ドメイン、IP、ポートに応じてアウトバウンドを選択します。入口で対象アプリを減らせば、関係のない通信がコアに入るのを防ぎ、ローカルネットワーク用ツールや大容量通信アプリを誤ってプロキシ対象にする可能性も下げられます。
アプリごとのプロキシ設定を開く
v2rayNGのメインメニューを開き、「設定」→「アプリごとのプロキシ」に進み、機能を有効にします。
選択モードを決める
プロキシが必要なアプリが少ない場合は「選択したアプリのみプロキシ」を選び、除外するアプリが少ない場合は「選択したアプリをバイパス」を選びます。
必要なアプリだけ選択する
まず、プロキシが本当に必要なブラウザー、通信アプリ、仕事用アプリだけを残します。システムコンポーネントを最初からすべて選択しないでください。
大容量通信のタスクを除外する
ローカル動画、LAN内転送、システム更新、クラウド写真の同期にプロキシが不要なら、対象範囲から除外します。
VPNを再確立する
設定を保存したら現在の接続を停止し、10秒待ってから起動します。新しいアプリ範囲をVPN設定に反映させるためです。
プロキシ範囲を絞った後は、選択したアプリと選択していないアプリを分けてテストします。選択したアプリでは対象サービスに正常にアクセスでき、選択していないアプリでは現在のネットワークを直接使えることを確認します。アプリが複数のプロセスやシステムコンポーネントに依存している場合、メインアプリだけを選択すると一部の機能が通信できないことがあります。その場合に限り、必要なコンポーネントを追加し、最初からすべて選択するのは避けてください。
アプリごとのプロキシで暗号化コアの基本的な常駐負荷を下げることはできませんが、バックグラウンド通信量と無線モジュールの稼働時間は減らせます。効果は端末上のアプリの使い方に左右されます。バックグラウンド同期が多い端末ほど差が出やすく、もともと通信が少ない端末では変更前後の差が1%未満になることもあります。
| 利用シーン | 推奨モード | 確認ポイント |
|---|---|---|
| 一部のアプリだけプロキシが必要 | 選択したアプリのみプロキシ | システム更新とクラウド同期を対象外にする |
| ほとんどのアプリでプロキシが必要 | 選択したアプリをバイパス | LAN内アプリと大容量通信アプリを除外する |
| 常時のメッセージ受信と軽い閲覧 | 対象アプリを最小限にする | ロック画面の通知と待機中の電池残量を確認する |
| 一時的なダウンロードや速度測定 | 必要な作業中だけ短時間有効にする | 完了後に接続を停止する |
ノード、プロトコル、DNS設定もバックグラウンドの消費電力に影響する
VMessやVLESSなど、プロトコル名だけで消費電力を判断することはできません。モバイル端末では、プロトコル名より回線品質のほうが重要です。遅延80ミリ秒でパケットロスが少なく安定したノードは、遅延300ミリ秒でタイムアウトを繰り返すノードより省電力になることが多いです。後者では再送、ハンドシェイク、DNS問い合わせが増えるためです。特定のプロトコル名にこだわって、明らかに不安定な回線を使い続けないでください。
DNSも接続確立に影響します。サーバーアドレスにドメイン名を使う場合、コアの起動時に名前解決が必要です。アプリがドメインへアクセスするときも、現在のDNS設定に応じて問い合わせが発生します。DNSサーバーに到達できない、応答が遅い、ネットワーク切り替え後にキャッシュが無効になるといった状況では、リクエストの待機や再試行が起こります。ログに名前解決の失敗が繰り返し出るなら、バッテリー制限を解除して問題を隠すのではなく、DNSまたはノードアドレスを先に修正してください。
接続の再利用を有効にするかどうかは、サーバー側の設定と実際のネットワーク環境を合わせて判断します。再利用によって接続の作り直しを減らせる一方、不安定な回線、サーバー側の制限、長時間接続が切れやすい環境では、複数のリクエストが同時に影響を受けることもあります。この種の設定を調整するときは、一度に1項目だけ変更し、少なくとも30分観察してください。ログ、DNS、接続再利用、ルーティングルールを一度に変えると、どの設定が効果を生んだのか分からなくなります。
ルーティングルールは分かりやすく保つべきです。重複したドメインルール、互いに競合するIP条件、広すぎるマッチ範囲は、電池消費を大きく増やすというより、保守を難しくします。ルールは上から順に評価されるため、前のルールが先に一致することがあります。LAN内のアドレスやローカルサービスは直接接続として明示し、ローカル通信が遠隔サーバーへ回されてタイムアウトしないようにします。
- 3回連続で接続でき、遅延の変動が小さいノードを優先します。
- 待機中の電池消費を測定している間は、一括速度測定や連続遅延テストを実行しないでください。
- ノードのドメイン解決に失敗した場合は、DNSとネットワークを先に確認し、無限に再試行しないでください。
- 端末の時刻は自動同期にします。時刻のずれによって、一部の接続でハンドシェイクに失敗することがあります。
- サブスクリプションの更新後は必要なノードだけを有効にし、長期間使えない設定は削除または無効化します。
接続の安定性と電池持ちを両立する推奨設定
メッセージを常時受信したり、仕事用の接続を維持したりする場合は、v2rayNGのフォアグラウンドサービスを残し、アプリのバッテリー設定を「制限なし」にし、ログレベルをwarningまたはnoneにします。アプリごとのプロキシは「選択したアプリのみプロキシ」を使います。ノードは安定性と低いパケットロスを優先し、バックグラウンドで速度測定を続けないでください。この組み合わせならVPNサービスを安定して動かしながら、関係のないアプリによる細かな通信を減らせます。
決まった時間帯だけ使う場合は、通常のバッテリー最適化を維持し、必要なときだけ接続を開始して、作業終了後にv2rayNGからサービスを停止します。最近使ったアプリの画面から閉じるだけで切断済みと判断しないでください。VPNアイコンとフォアグラウンドサービス通知が消えたことを確認します。短時間の利用では、バックグラウンド設定を何度も変更するより、手動で停止するほうが効果的です。
基準値を記録する
4時間待機したときの電池残量、v2rayNGのバックグラウンド時間、ネットワークの種類、端末温度を記録し、1回のバッテリー順位だけで判断しないようにします。
バックグラウンドサービスを安定させる
常駐が必要な場合はバックグラウンド動作を許可し、フォアグラウンド通知を残します。システムによる凍結とサービスの再起動を繰り返さないためです。
プロキシ範囲を絞る
アプリごとのプロキシを使い、必要なアプリだけを残して、システム更新、クラウド同期、LAN内転送ツールを対象外にします。
繰り返すエラーに対処する
10〜15分間のログを確認し、DNS、接続終了、宛先利用不可のエラーが継続して出ていないか対処します。
項目ごとに再テストする
一度に変更する変数は1つだけにし、少なくとも30分再テストします。電池消費を本格的に比較する場合は、4時間以上測定します。
固定したWi-Fiでも1時間あたり5%以上減り、画面オフ、ダウンロードなし、テザリングなし、ログにも連続した再接続がない場合は、まず端末を再起動し、動作確認済みの設定を再インポートして比較します。改善しない場合は、ダウンロードページに掲載されている現行のv2rayNGへ更新します。更新直後に古い設定をすべて戻さず、まず1つのノードと最小限のプロキシ対象アプリでテストし、過去の設定の影響を切り分けてください。
v2rayNGを停止しても端末の発熱が続く場合や、システムのバッテリー画面で他のアプリが長時間バックグラウンド動作している場合は、該当アプリ、モバイル通信の電波状況、システム同期タスクを確認します。プロキシクライアントが制御できるのは、自身のトンネルを通る通信だけです。画面の高輝度、携帯電波の弱さ、位置情報の継続使用、バッテリーの劣化による消費までは解決できません。
結論:安定した常時接続と必要時の停止を使い分ける
常時接続するならフォアグラウンドサービスを残し、プロキシ対象アプリを減らします。短時間だけ使うなら、v2rayNGから手動で停止します。凍結、再起動、再接続を頻繁に繰り返す構成は、安定動作より原因を特定しにくく、必ずしも省電力になるとは限りません。