v2rayNGの待機中のバッテリー消費、バックグラウンド切断、再接続の繰り返しに悩む方に向けた内容です。まずAndroidのバッテリー統計と通信量を記録し、Xrayの接続ログ、ネットワーク切り替え、アプリ別プロキシ設定を確認します。各回で変更する条件は1つだけにして再測定し、通常通信・異常な再接続・システム制限・分割範囲の広さのどれが原因かを判断します。
まず通信の継続か異常な復帰動作かを確認する
ステータスバーにVPNアイコンが表示され続けても、端末が常に高負荷で処理しているとは限りません。v2rayNGがAndroid VPNを確立すると、フォアグラウンドサービスと仮想ネットワークインターフェースを維持する必要があります。画面消灯中でも、少量のハートビート、DNS問い合わせ、プッシュ接続、アプリの同期通信がXrayコアを通過することがあります。確認すべきなのは、バッテリー消費の傾きが急に大きくなる、モバイル通信量が継続的に増える、待機中に端末が熱を持つ、短時間に接続確立と切断が繰り返し記録される、といった症状です。
最初からバッテリー最適化やプロトコル、ルーティングを変更しないでください。Androidの「設定」→「バッテリー」→「バッテリー使用量」を開き、一定の観察時間におけるv2rayNGの消費割合を記録します。続いて「設定」→「ネットワークとインターネット」→「アプリのデータ使用量」で、同じ時間帯のフォアグラウンドとバックグラウンドの通信量を確認します。項目名は端末によって多少異なり、Android 14とAndroid 15では「アプリのバッテリー使用量」や「モバイルデータとWi‑Fi」がアプリ詳細画面にある場合もあります。
まず30分ずつ2回の比較を行うことをおすすめします。1回目はv2rayNGを接続したまま、動画・クラウド同期・大容量ダウンロードを停止し、普段のメッセージ通知だけを残します。2回目はv2rayNGを切断し、同じネットワークとアプリ状態を保ちます。テスト端末が5000mAhの場合、1回目に2%、2回目に1%減ったなら、プロキシ接続で約1ポイント多く消費したことしか分からず、クライアントの異常とは断定できません。1回目に7%減り、バックグラウンド通信が600MBに達した場合は、どのアプリが外向き通信を発生させたかを調べます。
| 確認項目 | 接続中 | 切断中 | 判断のポイント |
|---|---|---|---|
| バッテリー減少量 | 2% | 1% | 差が小さい場合は、より長い時間で観察を続ける |
| バックグラウンド通信量 | 18 MB | 12 MB | メッセージ、DNS、同期リクエストの可能性 |
| 端末温度 | 31.8°C | 30.9°C | 同じ環境で測定して初めて比較できる |
| 再接続回数 | 1回 | 該当なし | ネットワーク切り替え時に1回だけ発生するなら通常は問題ありません |
バッテリー画面の割合はシステムによる推定値です。フォアグラウンドサービス、VPN通信、コアプロセスへの割り当て方はメーカーによって完全には一致しません。10分程度のテストは画面輝度、電波強度、アプリ更新の影響を受けやすいため、Wi‑Fi、輝度、バックグラウンドアプリを固定し、観察時間は60分まで延ばすのが理想です。再起動直後やシステムがデータを復元中の場合は、バックグラウンド処理が終わるまで待ってから測定してください。
結論:通信量と再接続回数からバッテリー変化を判断する
同じネットワークで60分測定した消費差が2ポイント以内で、ログに再接続ループがなく、端末も発熱していないなら、VPN常駐と実際の通信による通常の差と考えるのが先です。1分間に複数回の再接続が発生する場合に、接続層の調査へ進みます。
接続ログから頻繁な再接続を見つける
頻繁な再接続は、VPNサービスを維持するだけの場合より異常なバッテリー消費につながりやすい動作です。再接続のたびにDNS解決、TCPなどのトランスポートハンドシェイク、TLSまたはREALITYセッションの確立が再実行され、無線通信モジュールも起動する可能性があります。電波の弱い環境でノードに到達できない、名前解決が不安定、Wi‑Fiとモバイルネットワークの切り替えが繰り返される、といった状況では、これらの処理が短時間に反復されてバックグラウンド活動が大きく増えます。
v2rayNGでサイドメニューを開き、「ログ」または現在のバージョンにあるリアルタイムログ画面へ移動します。古い記録を消去してから画面をロックし、10分間待ちます。ロック解除後は、failed、timeout、reset、unreachableなどを検索し、同じ宛先アドレスが数秒おきに繰り返し現れていないか確認します。1件の失敗はアプリ側のタイムアウトにすぎない場合もありますが、同じ内容が連続して現れる場合は再接続ループの可能性が高まります。
テスト中は利用可能なノードを1つに固定し、サブスクリプション更新と速度測定を停止してください。ノードを切り替えながらログを判断するのは避けます。設定がVMessまたはVLESSの場合、プロトコル名だけで消費電力の大小は判断できません。トランスポート層の安定性、サーバーアドレスの名前解決、システム時刻の正確さ、現在のネットワークでのパケットロスの有無のほうが、通常は重要です。TLSとREALITYは接続の安全性に関わる処理を担いますが、消費電力異常の唯一の原因と単純に決めつけるべきではありません。
エラー:context deadline exceeded
原因と対処:制限時間内に接続が完了していません。電波が弱い、宛先に到達できない、ネットワークが切り替わった、といった場合によく発生します。まずWi‑Fiを固定して10分間テストし、ノードのアドレス、ポート、サブスクリプションのパラメータがそろっているか確認してください。
エラー:connection reset by peer
原因と対処:接続がリモート側または経路上の機器によってリセットされています。連続して再接続を押さず、まず安定したネットワークに切り替えて再測定します。特定のノードだけで発生する場合は、サブスクリプションを更新し、そのノードの設定を確認してください。
エラー:network is unreachable
原因と対処:ネットワーク切り替え中に利用できる経路がないか、システムがバックグラウンド通信を制限しています。v2rayNGのWi‑Fiとモバイルデータの権限を確認し、ネットワークの自動切り替えを無効にして比較テストを行ってください。
エラー:failed to find an available destination
原因と対処:現在の送信先から利用可能な宛先を取得できていません。アドレス解決またはノードパラメータが関係している可能性があります。サブスクリプションのインポート結果とサーバーアドレスの綴りを確認し、利用できることを確認したDNSに変更してからコアを再起動してください。
ログに5〜15秒ごとに名前解決、接続、失敗、再試行の一連の動作が現れる場合、まずタイムアウトを延ばして問題を隠さないでください。電波が安定した場所に端末を置き、「モバイルデータに自動的に切り替える」類の機能を無効にして、15分間再測定します。安定したネットワークでエラーが消えるなら、主な要因はネットワーク切り替えです。エラーが続く場合は、ノード、DNS、システム時刻、サブスクリプションの有効期限を確認します。
バッテリー最適化を調整する。ただしバックグラウンド制限を省電力の結論にしない
Androidのバッテリー最適化はバックグラウンド動作を制限しますが、制限を厳しくすれば必ず省電力になるとは限りません。システムがv2rayNGを停止した後、メッセージアプリ、同期タスク、ネットワーク変化によって再び起動されると、VPNサービスの停止と再構築が繰り返され、結果的にハンドシェイクや無線モジュールの起動が増えることがあります。別のケースでは、システムがバックグラウンドサービスを終了し、画面ロック後にプロキシが無効になってロック解除時に再接続します。これは可用性の問題であり、バッテリー画面の割合だけで判断すべきではありません。
一般的な設定手順は「設定」→「アプリ」→「v2rayNG」→「アプリのバッテリー使用量」です。現在の設定が「制限あり」「最適化」「制限なし」のどれかを確認します。切り分け中は一時的に「制限なし」を選び、他の条件を変えずに60分間テストできます。切断と再接続が明らかに減った場合に、設定を維持するか判断します。端末によっては「バックグラウンドアクティビティを許可」「自動起動」「スリープ中のアプリ」などの項目もあるため、一度に変更するのは1項目だけにします。
- 元の状態を記録:バッテリー設定、バックグラウンドデータの権限、現在のネットワーク設定を保存し、複数項目を変更した後でも元に戻せるようにします。
- 最適化設定の基準値を作成:画面をロックして60分待ち、バッテリー減少量、バックグラウンド通信量、切断回数、ログのエラーを記録します。
- バッテリー設定だけを変更:v2rayNGを「制限なし」にし、ノード、ネットワーク、分割プロキシのルールは変更しません。
- 同じ時間で再測定:電波強度と利用状況が近い条件で、もう一度60分間測定し、割合だけでなく再接続回数を比較します。
- 結果に応じて戻す:消費電力が改善せず、バックグラウンド切断も必要ない場合は元の設定に戻します。再接続が明らかに減った場合は、その設定を維持して1日観察します。
「設定」→「アプリ」→「v2rayNG」→「モバイルデータとWi‑Fi」にあるバックグラウンドデータの権限も確認します。バックグラウンドデータが無効だと、画面ロック中にノードのハートビート、DNSリクエスト、アプリ通信が正常に完了しない場合があります。ロック解除時に大量のリクエストが一斉に再開し、v2rayNGが急にバッテリーを消費したように見えることがあります。データセーバー使用時は、システムの項目からこのアプリに無制限データの使用を許可できますが、自分の通信契約に合わせて判断してください。
結論:バッテリー設定は接続の安定性で決める
「最適化」から「制限なし」に変更した後、60分間の再接続が18回から1回に減り、バッテリー消費差も6%から3%になった場合、元のバックグラウンド制限が余分な復帰動作を生んでいたと考えられます。再接続回数が変わらないなら設定を戻し、ネットワークまたはノードを引き続き確認します。
アプリ別プロキシでプロキシ対象の通信範囲を絞る
接続自体は安定しているのにバックグラウンド通信量が多い場合は、どのアプリがVPNを経由しているかを確認します。Android VPNの対象に含まれたアプリの通信はVPNを通過するため、クラウドストレージの同期、短尺動画の先読み、システムバックアップ、大型アプリの更新によって、バッテリー統計でv2rayNGの割合が高くなることがあります。この場合、クライアントは実際のリクエストを処理しているだけなので、コアの動作権限を下げるのではなく通信元を確認することが重要です。
v2rayNGの「設定」→「アプリ別プロキシ」でアプリの選択を有効にし、現在のモードが「選択したアプリのみプロキシ」か「選択したアプリをプロキシから除外」かを確認します。2つのモードは意味が反対で、同じリストにチェックを入れても結果は大きく異なります。初回の切り分けでは、プロキシ経由が必要なアプリを2〜3個だけ選び、保存して接続を再起動し、60分間のバックグラウンド通信量を観察します。
| テスト範囲 | 60分間のバックグラウンド通信量 | バッテリー減少量 | 解釈 |
|---|---|---|---|
| すべてのアプリをVPN経由にする | 740 MB | 8% | 同期、更新、メディアアプリを確認する |
| 対象アプリは3つだけ | 46 MB | 3% | 通信範囲を絞ると消費電力も同時に減少 |
| 対象アプリをすべて終了 | 9 MB | 2% | VPN常駐と少量の維持通信に近い状態 |
システムコンポーネント、ダウンロードマネージャー、すべてのブラウザーを一度に追加または除外しないでください。どの項目が変化を生んだのか判断しにくくなります。通知が必要なアプリでは、画面ロック後もメッセージが時間どおり届くか確認します。アプリ別プロキシはAndroid VPNに入るアプリを制御するだけで、V2RayやXray内部のドメイン・IPルーティングルールの代わりにはなりません。アプリの選択は通信がコアに入る前に行われ、ルーティング分割はコアに入った後のリクエストをプロキシ経由にするか直接接続にするかを決めます。
一部のドメインだけをプロキシ経由にしたい場合は、サブスクリプションによるルーティング設定とカスタムルールを確認します。GeoSiteはドメイン分類、GeoIPはIP分類に使用され、ヒットするかどうかはルールの順序、名前解決の結果、データファイルが正常に読み込まれたかによって決まります。消費電力を調べるときに数十個のルールを同時に書き換えず、まず単純な分割設定で安定性を確認してから、複雑なルールを少しずつ戻してください。
診断記録の例
テスト時間:60分
システムバージョン:Android 15
ネットワーク条件:Wi‑Fiを固定し、モバイルデータへの自動切り替えを無効化
ローカルSOCKSポート:10808(カスタム例)
ローカルHTTPポート:10809(カスタム例)
アプリ別プロキシ範囲:対象アプリ3個
再接続回数:1回
バックグラウンド通信量:46 MB
バッテリー残量の変化:78% → 75%
上記のポートは記録用の設定例であり、すべての端末で同じ数値に変更すべきという意味ではありません。v2rayNGをAndroid VPNとして使用する場合、通常は他のアプリにローカルSOCKSまたはHTTPポートを手入力させる必要はありません。ローカルプロキシの入口を明確な目的でデバッグに使う場合だけ、ポートが使用中でないか確認します。ポート競合は通常、起動ログにリッスン失敗として記録され、単にバックグラウンド通信量が多いという形では現れません。
再測定の結果からバックグラウンド動作を選ぶ
基準値、ログ、バッテリー設定、アプリ別プロキシの4つを確認したら、症状ごとに分類します。1つ目は大量通信を行うアプリが明確で、分割範囲を絞ると消費電力が下がるケースです。2つ目はノードまたはネットワークが不安定で、ログに再試行が続くケースです。3つ目はシステムのバックグラウンド制限で画面ロック後に切断され、制限を緩めるとかえって安定するケースです。4つ目は消費差が小さく、AndroidがVPN通信の多くをv2rayNGに割り当てているだけのケースです。
最終的な設定は、バッテリー統計上の割合を最低にすることではなく、接続が安定し、通信範囲を説明でき、待機中の温度も正常であることを同時に満たす必要があります。Wi‑Fiとモバイルネットワークを頻繁に切り替える端末では、切り替え後2分間を重点的に確認します。自宅Wi‑Fiに長時間固定する端末では、夜間に6〜8時間の待機テストを行うほうが適しています。夜間テストの前にシステム更新、写真バックアップ、大容量同期を停止しないと、結果を比較できません。
画面をロックして10分後にv2rayNGが自動切断される場合は?
「設定」→「アプリ」→「v2rayNG」→「アプリのバッテリー使用量」で一時的に「制限なし」を選び、バックグラウンドデータの権限が有効か確認します。ノードを1つに固定して30分間再測定し、ログでシステムがサービスを停止していないか確認してください。
バッテリー画面でv2rayNGが1位なら異常ですか?
必ずしも異常ではありません。実際のバッテリー減少量とバックグラウンド通信量を比較してください。60分で2%しか減っておらず、すべてのネットワーク通信がVPNを通過しているなら、順位が高いことだけでは異常の証拠になりません。
ノードには接続できるのに、待機中に頻繁に再接続するのはなぜですか?
Wi‑Fiの電波、モバイルデータへの自動切り替え、システム時刻、ログのタイムアウト情報を確認します。安定したネットワークに端末を置いて15分間テストしてください。再接続が消えるなら、プロトコルを変更するより先にネットワーク切り替えを見直します。
アプリ別プロキシを有効にしたら、一部のアプリがまったく通信できなくなりました。
「選択したアプリのみプロキシ」か「選択したアプリをプロキシから除外」かを確認し、モードを混同しないでください。テスト対象を少数のアプリに戻し、VPNを再起動してから1つずつ追加し、直接接続とプロキシのルールが一致しているか確認します。
DNS、ノード、バッテリー最適化を同時に変更してもよいですか?
同時に変更しないでください。元の設定を残し、各回で1項目だけ変更して少なくとも30分テストします。そうしないと消費電力が下がっても、どの調整が効果を生んだのか分かりません。
調整後も明らかな発熱が続く場合は、端末を再起動し、v2rayNGとテスト用アプリ1つだけを起動して他のバックグラウンドタスクを除外します。その後、利用可能と確認できたサブスクリプションのノードと現在のノードをそれぞれテストし、同じ時間帯の接続回数を記録します。固定したネットワークですべてのノードが継続的に失敗するなら、サブスクリプションのパラメータ、DNS、システムのVPN権限を確認します。特定のノードだけに問題がある場合は、クライアントを再インストールするより先にそのノードを確認してください。
完全な切り分けでは、少なくとも4つの結果を残します。一定時間内のバッテリー変化、バックグラウンド通信量、再接続回数、使用したネットワークです。「以前より電池を消費する気がする」だけでは原因を特定しにくくなります。これらを変更前の状態と比較して、バックグラウンドを「制限なし」にする、アプリ別プロキシの範囲を絞る、設定を戻してノードの接続品質を改善する、のどれを選ぶべきか判断できます。