v2rayNG の設定ポイント:VpnService 常駐・バッテリー最適化の除外・アプリ別プロキシ

接続は正常なのに画面ロック後にウェブページが開けない、あるいは一部のアプリだけプロキシ経由にしたい——こうした問題の原因はノードではなく、Android が v2rayNG に与える3つのシステム設定にあることがほとんどです。以下では「権限・常駐・振り分け」の順に一つずつ確認していきます。

この記事の要点

本記事では v2rayNG の Android システム側の設定を3点だけ扱います。VpnService の許可と常駐通知、バッテリー最適化の除外、アプリ別プロキシのリストです。接続は正常なのに画面ロック後に通信が切れる、一部のアプリだけプロキシ経由にしたい、という方に向いています。順番に設定すれば、「アイコンは表示されているのにページが開かない」といったトラブルを最小限に抑えられます。

3つの設定がそれぞれ担う役割

v2rayNG は Android 上では普通のバックグラウンドプロセスではありません。システムの VpnService を通じて仮想ネットワークインターフェースを作成し、アプリの通信はいったんこのインターフェースに送られ、内蔵の Xray コアで処理されます。この経路が安定して動作するには、3つの条件が同時に満たされている必要があります。システムが VPN の確立を許可していること、画面オフ後もプロセスが凍結されないこと、対象アプリの通信が確実にインターフェースへ送られることです。

3つの設定は、ちょうどこの3つの条件に対応します。VpnService の許可と常駐通知は「権限」、バッテリー最適化の除外は「常駐」、アプリ別プロキシのリストは「振り分け」を担います。接続失敗、画面ロック後の切断、一部アプリの異常は、ほぼこのどれかに当てはまります。

10808
デフォルトの SOCKS ローカルポート
10809
デフォルトの HTTP ローカルポート
3種類
アプリ別プロキシのモード
Android 8.0
バックグラウンド実行制限の起点

VpnService の許可と常駐通知

初めてメイン画面の「接続」ボタンを押すと、「接続リクエスト」ダイアログが表示され、v2rayNG が VPN 接続を確立しようとしていることが示されます。「このアプリを信頼する」にチェックを入れて「OK」を押すと、許可が記憶されます。「キャンセル」を押した場合やチェックを入れなかった場合は、次回の接続時に再びダイアログが表示されます。

  1. 接続リクエストを許可

    初回接続時にシステムのダイアログで「このアプリを信頼する」にチェックを入れ、「OK」を押します。許可の確認は一度きりで、拒否すると接続のたびに毎回尋ねられます。

  2. 常駐通知を残す

    接続に成功すると通知バーに v2rayNG の通知が表示されます。これはフォアグラウンドサービスの証明です。通知バーからスワイプして消すと、接続を自ら切断したことになります。

  3. 最近使ったタスクをロック

    最近使ったタスクの一覧を開き、v2rayNG のカードを下にドラッグするか、カード上の鍵アイコンをタップして固定します。「一括クリーン」で一緒に消されるのを防げます。

  4. 自動起動を許可

    システムのアプリ管理で v2rayNG の自動起動をオンにします。オフのままだと、スマートフォンの再起動後に手動で接続を押す必要があります。

常駐通知はそのまま無効にはできません。煩わしいだけの場合は、システムの「設定」→「アプリ」→「v2rayNG」→「通知」で該当チャンネルの重要度を下げるかサイレントに設定します。通知自体は残りますが、音も鳴らずバナーも表示されません。通知権限をまるごと無効にすると、一部のシステムではフォアグラウンドサービスも制限され、かえって接続が回収されやすくなります。

注意

Android では同時に1つの VpnService しか有効にできません。端末に他に VPN インターフェースを使うアプリがある場合、後から接続した方が先の接続を押し出します。接続に失敗したら、まず通知バーに別の VPN アイコンが表示されていないか確認してください。

バッテリー最適化の除外:プロセスをバックグラウンド整理から守る

Android 8.0 以降、バックグラウンドアプリには実行制限が課され、Doze(低電力モード)に入るとバックグラウンドのネットワークアクセスが全体的に停止されます。v2rayNG が維持しているのは常時接続なので、プロセスが凍結されると TCP 接続は静かに切れてしまいます。症状としては、ステータスバーのアイコンは表示されたままなのにウェブページが開けない、という形で現れます。

対処方法は、v2rayNG をバッテリー最適化の対象から除外することです。システムによって項目名は異なりますが、目的は同じで、バックグラウンドで制限なく動作できるようにすることです。

制限なし

推奨

システムがプロセスを能動的に凍結しないため、画面オフ後も常時接続が維持され、バックグラウンドのリクエストやプッシュ通知も影響を受けません。

向いている用途:長時間プロキシを接続したままにする、安定した常時接続が必要な場合

最適化

システムのデフォルト設定です。画面オフがしばらく続くとバックグラウンドのネットワークとウェイクアップが制限され、接続が静かに回収されることがあります。

向いている用途:画面点灯時に手動で接続する程度、たまの再接続が許容できる場合

制限あり

バックグラウンドの動作が厳しく抑制され、画面オフから数分で凍結されることもあります。復帰時にはハンドシェイクをやり直す必要があります。

向いている用途:一時的なテスト、使い終わったらすぐ切断

システム設定手順目標の状態
MIUI / HyperOS設定 → アプリ設定 → アプリ管理 → v2rayNG → 省電力ポリシー無制限
EMUI / HarmonyOS設定 → アプリ → アプリ起動管理 → v2rayNG手動管理、3項目すべてオン
ColorOS / realme UI設定 → バッテリー → アプリの消費電力管理 → v2rayNGバックグラウンドでの実行を許可
OriginOS / Funtouch設定 → バッテリー → バックグラウンド消費電力管理 → v2rayNGバックグラウンドでの高消費電力を許可
純正 Android / Pixel設定 → アプリ → v2rayNG → バッテリー制限なし

設定が終わったら一度検証してください。プロキシに接続し、画面をロックして10分放置し、その後画面を点けて任意のウェブページを開きます。最初の表示が明らかに遅い、あるいは失敗する場合は、画面オフ中に接続が回収されています。上の2つの手順に戻って確認し直してください。もう一つ見落としやすいのが「データセーバー」です。システムの「設定」→「ネットワークとインターネット」→「データセーバー」で v2rayNG に個別の制限をかけていると、バックグラウンド通信も同様に遮断されます。

アプリ別プロキシ:通すものは通し、直結するものは直結

入口はメイン画面右上のメニュー →「設定」→「アプリ別プロキシ」です。開くとモード選択とアプリ一覧が表示されます。3つのモードの違いは「チェック」が何を意味するかだけなので、まず対照表を確認してから操作してください。

モードチェックしたアプリチェックしていないアプリ典型的な使い方
オフ(デフォルト)すべてプロキシ経由アプリを区別せず、全体を転送
選択したアプリのみプロキシプロキシ経由直結ブラウザと少数のアプリだけを外部に出す
選択したアプリのみバイパス直結プロキシ経由全体をプロキシ経由にし、中国本土のアプリだけ個別に除外

モードを選び間違えたときの典型的な症状は、あるアプリにチェックを入れたのに、かえって遅くなるというものです。現在のモードが「選択したアプリのみプロキシ」の場合、チェックはそのアプリをプロキシ経由にするという意味であり、直結させるという意味ではありません。モードを変更する前に、自分が求めているのがホワイトリストなのかブラックリストなのかを確認してください。

リストを変更した後は、一度切断して再接続することをおすすめします。アプリ別リストは VpnService の確立時にまとめてシステムへ渡されるため、リストだけ変更して再接続しないと、一部のシステムではすぐに反映されません。

適用範囲について

アプリ別プロキシは VpnService を経由する通信にのみ有効です。アプリ独自のプロキシ設定や LAN 内の直結リクエストは、このリストの対象外です。

サブスクリプション更新・ルーティングとの併用

アプリ別プロキシは「どのアプリを外部に出すか」を、ルーティングは「どのドメインと IP を直結するか」を決めます。両者は重ねて適用されます。通信はまずアプリで絞り込まれ、次にルーティングルールで照合されます。したがって、あるアプリをプロキシリストに入れても、そのすべてのリクエストが外部に出るわけではありません。対象のドメインが直結ルールに一致すれば、そのまま直結されます。

v2rayNG の「ルーティング設定」に入力した直結ドメインと直結 IP のリストは、最終的に次のようなルールとして生成されます。

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      { "type": "field", "outboundTag": "direct", "domain": ["geosite:cn"] },
      { "type": "field", "outboundTag": "direct", "ip": ["geoip:cn"] },
      { "type": "field", "outboundTag": "proxy", "network": "tcp,udp" }
    ]
  }
}

サブスクリプションの更新は別の独立した経路です。v2rayNG がサブスクリプションを取得する際はアプリ自身のリクエストとして行われ、アプリ別プロキシのリストは経由しません。サブスクリプションの URL にアクセスするのにプロキシが必要な場合は、まずメイン画面で利用可能なノードに接続し、「サブスクリプショングループ」で「すべてのサブスクリプションを更新」をタップします。更新に失敗したときは、アプリ別リストを何度も変更するのではなく、まずノードが利用可能か確認してください。

結論:まずリストを固め、次にルールを調整する

アプリ別プロキシは「誰を外部に出すか」、ルーティングは「どこへ直結するか」を管理します。リストを固めないままルールを積み上げると、2つのスイッチが互いを上書きし、切り分けができなくなります。まずアプリ別リストを安定させ、そのうえで少数のドメインにだけ直結ルールを追加してください。

よくある質問

通知バーに「接続済み」が表示され続けます。消せますか?

あれはフォアグラウンドサービスの常駐通知で、消すことは接続を切ることと同じです。煩わしさを減らしたい場合は、システムの「設定」→「アプリ」→「v2rayNG」→「通知」で重要度を下げるかサイレントに設定してください。通知権限そのものを無効にはしないでください。

画面ロックから数分で自動的に切断され、再接続にも数秒かかる場合は?

まずバッテリー最適化が「制限なし」になっているか確認し、次に最近使ったタスクでカードをロックし、最後に「データセーバー」が v2rayNG を制限していないか確認します。3つのうちどれか1つでも欠けると、画面オフ後に凍結される可能性があります。

アプリ別プロキシでチェックしたアプリが、それでもプロキシ経由になります。なぜですか?

まず現在のモードが「選択したアプリのみプロキシ」か「選択したアプリのみバイパス」かを確認してください。両者は意味が逆です。次に、そのアプリに独立したプロセスやプッシュ用のサブプロセスがあり、チェックが漏れていないか確認します。リストを変更したら、一度切断して再接続してください。

全体プロキシにすると中国本土のアプリが遅くなる場合は?

「選択したアプリのみバイパス」に切り替え、中国本土のアプリを一つずつチェックします。あるいはアプリ別プロキシをオフにし、「ルーティング設定」で geosite:cn、geoip:cn を使って直結させます。

機種変更後、設定はどう移行しますか?

サブスクリプションの URL を再インポートすれば済みます。手動で追加したノードは共有リンクとしてエクスポートし、新しい端末で「クリップボードからインポート」を使って貼り付けます。アプリ別プロキシのリストは引き継がれないため、もう一度チェックし直す必要があります。

v2rayNG と v2rayN をダウンロード

Android 版 v2rayNG、デスクトップ版 v2rayN のダウンロード入口とバージョン情報はダウンロードページにまとめています。

クライアントをダウンロード