v2rayNGでは、Android端末のすべての通信をプロキシへ送るのではなく、指定したアプリだけをVPN経由にできます。動画、ブラウザー、メッセージアプリなど用途ごとに通信経路を分けられるため、国内サービスは直接接続のまま、特定のアプリだけv2rayNGのノードを使う構成を作れます。この記事では、v2rayNGのアプリ別プロキシ設定を初めて使う人向けに、設定前の確認、対象アプリの選び方、2つの動作モード、接続できない場合の確認順を説明します。
この機能はAndroidのVPNServiceを利用します。v2rayNGでノードを選択しただけではアプリの通信経路は変わらず、VPN接続を開始して初めて対象アプリのトラフィックがコアへ渡されます。また、アプリ内に独自のDNS処理、QUIC通信、常時接続、証明書ピンニングなどがある場合は、対象に追加してもすべての通信が同じようにプロキシされるとは限りません。設定後は、対象アプリと対象外アプリをそれぞれ確認してください。
v2rayNGの「アプリごとのVPN」設定を使い、プロキシ対象だけを選ぶ方法と、選択アプリをプロキシするモード、選択アプリを直接接続から除外するモードの違いを整理します。設定後に確認すべきVPN許可、ルーティング、DNS、バッテリー制限まで具体的に確認できます。
アプリごとのプロキシはどのように動くのか
v2rayNGのアプリ別設定は、アプリ自身へHTTPプロキシやSOCKSプロキシのアドレスを入力する方式ではありません。v2rayNGがAndroidのVPNServiceとして仮想VPNインターフェースを作り、端末から出るIP通信を受け取ります。その後、アプリのパッケージ名をもとに対象を判定し、条件に一致した通信だけをXrayコアのインバウンドへ渡します。コアは選択中のVLESS、VMess、Trojanなどのアウトバウンドを使い、ルーティング規則に従ってプロキシまたはダイレクトへ送信します。
この仕組みでは、端末全体のVPN接続と、アプリ単位の通過条件を分けて考える必要があります。VPN接続中でも、対象外アプリはVPNの対象から除外できます。一方、v2rayNGのルーティング設定で国内ドメインをダイレクトにしている場合、対象アプリに指定しても、そのアプリのすべての宛先が遠隔ノードへ送られるとは限りません。アプリ選択は「どのアプリの通信をv2rayNGへ入れるか」を決め、ルーティングは「入った通信をどの出口へ送るか」を決めます。
Androidのバージョン、v2rayNGのビルド、端末メーカーの省電力機能によって、メニュー名や表示位置は多少異なります。設定画面で「アプリごとのVPN」「アプリプロキシ」「バイパスするアプリ」に近い項目を探してください。見つからない場合は、まずv2rayNGの「設定」内にあるVPN関連、TUN関連、アプリ一覧関連の項目を確認します。
2つの動作モードを使い分ける
アプリごとのプロキシには、一般に「指定したアプリだけをVPNへ通す」方式と、「指定したアプリをVPNから除外し、それ以外をVPNへ通す」方式があります。v2rayNGの翻訳やバージョンによって、前者はホワイトリスト、選択アプリのみ、プロキシ対象アプリなど、後者はブラックリスト、バイパスアプリ、除外アプリなどと表示されることがあります。重要なのはラベルの名前ではなく、チェックを入れたアプリがプロキシされるのか、直接接続されるのかです。
選択アプリのみプロキシ
- 対象
- 一覧で指定したアプリ
- その他
- VPN対象外
- 用途
- 必要なアプリだけ接続
通信範囲を小さく始めたい場合に向いています。
選択アプリをバイパス
- 対象外
- 一覧で指定したアプリ
- その他
- VPN経由
- 用途
- 一部だけ直接接続
端末の大半をプロキシし、例外だけ外したい場合に使います。
初めて設定する場合は、「選択アプリのみプロキシ」から始めるのが安全です。対象範囲が明確で、銀行、社内システム、家庭内機器など、プロキシ経由にしたくない通信へ意図せず影響する可能性を抑えられます。反対に、ブラウザーや複数の通信アプリを広くプロキシしたい場合は、バイパス方式のほうが管理しやすいことがあります。ただし、対象外にしたアプリが増えるほど、どの通信がVPNを通っているか分かりにくくなります。
- 動画やブラウザーだけを試す:選択アプリのみプロキシ。
- ゲームだけ直接接続したい:ゲームをバイパス対象にする方式。
- 仕事用プロファイルを分離したい:個人用と仕事用で同名アプリがないか確認。
- DNSも経路を分けたい:アプリ選択だけで判断せず、v2rayNGのDNSとルーティングも確認。
v2rayNGで対象アプリを指定する手順
設定を始める前に、v2rayNGへ少なくとも1つの有効なプロファイルを登録し、対象ノードを選択しておきます。サブスクリプションを追加しただけでは接続先が確定していない場合があるため、一覧から使用するプロファイルをタップし、現在の接続先として選択します。まずアプリを限定せず短時間接続し、通常のブラウザーで通信できることを確認してからアプリ別設定へ進むと、ノード障害とアプリ設定の問題を分けやすくなります。
プロファイルを選ぶ
v2rayNGのメイン画面で使用するVLESSまたはVMessなどのプロファイルを選択します。必要ならプロファイルの接続テストを行い、アドレス、ポート、UUID、TLS、Reality、WebSocketなどが配布元の内容と一致していることを確認します。
VPN設定を開く
メイン画面のメニューから「設定」→「VPN設定」または同じ意味の項目を開きます。端末によっては「アプリごとのVPN」「アプリプロキシ」「VPNアプリリスト」が独立した画面として表示されます。
動作方式を選ぶ
「選択アプリのみプロキシ」か「選択アプリをバイパス」かを選択します。最初は前者を選び、テスト対象をブラウザー1つだけに絞ると、結果を確認しやすくなります。
アプリを追加する
アプリ一覧で対象アプリにチェックを入れて保存します。通常版と仕事用プロファイル版、複数のブラウザー、補助アプリが別々に表示される場合は、必要なものを個別に追加します。
VPNを開始する
メイン画面へ戻り、接続ボタンをタップしてAndroidのVPN接続許可を承認します。通知領域にVPNキーが表示され、v2rayNGの状態が接続中になったことを確認してから対象アプリを起動します。
対象アプリを追加した後は、アプリをいったん終了してから再起動してください。すでに開いているアプリはDNSキャッシュ、既存のTCP接続、ログインセッションを保持していることがあります。画面を再読み込みするだけでは、古い接続がそのまま使われる場合があります。Androidの最近使ったアプリ画面から対象アプリを閉じ、再度起動するほうが検証しやすくなります。
複数アプリを追加するときは、一度にすべて選ばないでください。まずブラウザーだけで接続を確認し、次に動画やメッセージなど1つずつ追加します。アプリごとに通信方式やバックグラウンド動作が異なるため、まとめて変更すると、どのアプリが原因なのか判断しにくくなります。
アプリ選択後にDNSとルーティングを確認する
アプリ別プロキシを有効にしても、ドメイン解決に失敗するとWebページやAPIへ接続できません。v2rayNGではVPNモード、TUN設定、DNS設定、ルーティング設定が組み合わさって動作します。対象アプリがVPNへ入っているのに、ログに名前解決エラーが出ている場合は、アプリ一覧を何度も変更するのではなく、DNSの問い合わせ先と処理経路を確認してください。
| 確認項目 | 見る場所の例 | 異常時の症状 |
|---|---|---|
| VPN接続 | Android通知領域、v2rayNGの接続状態 | 対象アプリも対象外アプリも通常接続のまま |
| アプリ方式 | 設定 → VPN設定 → アプリ別項目 | チェックしたアプリだけ、または除外したアプリだけ挙動が変わる |
| DNS | 設定 → DNS設定、ルーティング設定 | ドメイン名だけ開けず、IP宛て通信は動く |
| ルーティング | 設定 → ルーティング設定 | VPNには入るが特定の宛先だけ直接接続になる |
| バッテリー制限 | Android設定 → アプリ → v2rayNG → バッテリー | 画面消灯後や数分後に通信が停止する |
ルーティングに「直通」「プロキシ」「ブロック」などのルールがある場合、対象アプリをプロキシ指定しても、ルールの条件に一致した宛先は別のアウトバウンドへ送られます。これはアプリ別設定が無視されたとは限りません。アプリ別設定はVPNへ入れる入口の条件、ルーティングは入った後の出口の条件だからです。たとえば、対象アプリをVPNへ通しながら、LANアドレスを直通、特定の国内ドメインを直通、その他をプロキシにする構成は可能です。
結論:まずアプリを1つ、次にルーティングを確認する
接続経路を正しく検証するには、最初から全アプリを選ぶのではなく、ブラウザー1つだけを対象にします。そのアプリがVPNへ入ることを確認した後で、DNSと宛先ルールを調整すると、入口の問題と出口の問題を混同せずに済みます。
接続できないときの確認順
アプリを対象に追加したのに通信できない場合、最初に確認するのはノード設定ではなくAndroidのVPN許可とv2rayNGの接続状態です。VPN許可をキャンセルした、別のVPNアプリが接続中である、常時接続VPNが別サービスを選んでいる、端末の省電力機能がv2rayNGを停止した、といった原因がよくあります。Androidでは同時に複数のVPNServiceを通常利用できないため、他のVPN接続を停止してから再試行してください。
チェックしたアプリだけ開けません
まずv2rayNGを全体接続に近い設定で一時確認し、同じノードが使えるか調べます。全体でも失敗するならノード、DNS、コアの問題です。全体では動く場合は、アプリ別方式、対象アプリのパッケージ、AndroidのVPN許可を再確認します。
対象外のアプリまで遅くなりました
「選択アプリのみプロキシ」ではなく、バイパス方式を選んでいる可能性があります。方式を確認し、対象アプリを1つだけ残して保存します。Androidの通知にVPN接続が表示されても、すべてのアプリが同じ出口を使うとは限りません。
画面を消すと接続が切れます
Android設定 → アプリ → v2rayNG → バッテリーで、バックグラウンド実行を制限しない設定を確認します。端末メーカー独自の自動起動管理や省電力設定にもv2rayNGを追加し、VPN通知を消去しないでください。
アプリ一覧に目的のアプリがありません
アプリがインストール済みか、仕事用プロファイルや別ユーザーで起動していないかを確認します。アプリを一度起動してからv2rayNGの一覧を開き直すと表示される場合があります。それでも見つからない場合は、Android版とv2rayNGの対応範囲を確認してください。
ログにfailed to start VPN、permission denied、address already in useなどが出る場合は、アプリ別リストより先にVPN起動とローカルポートを確認します。ほかのサービスがローカルポートを使用している場合、SOCKSの既定値としてよく使われる10808やHTTPポート10809の変更が必要になることがあります。ただし、AndroidのVPNService方式ではアプリへ手動でSOCKSポートを入力する必要は通常ありません。ローカルプロキシ方式とVPN方式を混同しないでください。
最後に、対象アプリの通信が本当にプロキシ経由になったかを、アプリの表示だけで判断しないことも重要です。対象アプリでは接続先の地域、サービスの到達性、v2rayNGのアクセスログを確認し、対象外アプリでは通常の通信が維持されているかを確認します。設定を変更したら、VPN停止、v2rayNG再起動、対象アプリ再起動の順で状態をリセットすると、古い接続やDNSキャッシュの影響を減らせます。