v2rayN・v2rayNG・v2flyNGの選び方|V2Rayクライアントの対応OSとコアを比較

v2rayN・v2rayNG・v2flyNGの対応OS、コア、サブスクリプション、ルーティングを比較。PC向けにv2rayNを選ぶ理由と、Androidアプリ2種の違いを解説します。

この記事の要点

PCでは、利用するOSに合ったv2rayNのインストーラーを選びます。AndroidでXray対応の機能が必要ならv2rayNG、v2fly形式の設定を使い続けるならv2flyNGを検討しましょう。対応OS、コア、サブスクリプション、ルーティング、通信の取り込み方法を比較し、PCとAndroidで同じサブスクリプションを使う際の確認手順も紹介します。重要なのは名前の類似性ではなく、ノードの要件と実際に動作するコアが合っているかどうかです。

まず対応OSで絞り、次に機能を比較

この3つはいずれもプロキシクライアントであり、ノードを提供するサービスではありません。インストール後、利用可能なサーバー設定またはサブスクリプションをインポートする必要があります。v2rayNはPC向け、v2rayNGとv2flyNGはAndroid向けです。Android用インストーラーをPCのプログラムと混同しないようにしましょう。名前が似ていても、設定ファイルをそのまま相互利用できるとは限りません。

v2rayN:PC向けの第一候補

おすすめ

Windows、macOS、Linuxでサブスクリプション、ノード、ルーティング、ログをまとめて管理するのに適しています。インストール前に、配布パッケージが対応するOSとCPUアーキテクチャを確認してください。従来のWPF版はWindows向けであり、他のOS用デスクトップ版の代わりにはなりません。

おすすめの用途:PCでの日常利用、複数ノードの管理、詳細なログの確認。

v2rayNG:Android向けのXray系クライアント

Xrayコアで接続を処理し、AndroidのVPN権限を使って端末の通信を取り込みます。ノード選択、サブスクリプションの更新、接続のオン・オフをモバイル画面から操作できます。Xrayに対応したプロトコルやトランスポート機能が必要な場合に適しています。

おすすめの用途:Androidでのプロキシ利用、アプリごとの振り分け、Xrayが必要なノードの利用。

v2flyNG:Android向けのv2fly系クライアント

v2flyコアを採用しています。設定をv2fly形式で管理しており、使用するプロトコルとトランスポートが現行コアに対応していれば、この方式を継続できます。Xray固有の機能が標準で使えるとは限りません。

おすすめの用途:利用可能なv2fly設定があり、Androidでも同じコアの動作を維持したい場合。

PC向けにv2rayNを第一候補とするのは、PCでの操作に合った設定管理機能を備えているためです。画面を変えればノードの帯域が向上するわけではありません。Androidの2アプリは、まずノード設定との互換性で選びましょう。サーバーの接続パラメーターがXrayに依存するなら、同じサブスクリプションを何度もインポートして原因を推測するのではなく、まずv2rayNGで動作を確認します。

コアの違い:同じプロトコル名でも設定の互換性は保証されない

クライアントは設定の保存や画面表示、コアの呼び出し、システムへの通信取り込み方法を担当します。コアはプロトコル、トランスポート、DNS、ルーティングを処理します。V2Rayは関連技術のエコシステムで広く使われる呼称で、v2flyとXrayは別々のコアプロジェクトです。「V2Rayクライアント」と書かれていても、特定の機能に対応しているとは限りません。

クライアント対応OS・コア選ぶ際の確認点
v2rayNPC向け。複数のコアを管理可能。実際の対応状況は配布パッケージとノードの種類によって異なります。実際に起動しているのがXrayか、設定済みの別のコアかを確認します。画面に表示されたノードの種類だけで、使用中のコアを判断しないでください。
v2rayNGAndroid;Xrayコア内蔵Xrayのバージョンがノードの要件を満たすか確認します。特に新しいセキュリティ設定やトランスポート設定に注意してください。
v2flyNGAndroid;v2flyコア現行のv2flyが対応するプロトコルとトランスポートを確認します。Xray固有の設定項目はそのまま利用できません。

VLESSの場合、プロトコル名だけでなく、トランスポートの種類、セキュリティ層、サーバー名、関連する認証パラメーターも確認が必要です。REALITYはXray系の機能です。v2flyNGでリンクをインポートできても、同じ方式で接続できるとは限りません。VMess、Trojan、Shadowsocksも同様に、プロトコル選択欄に同じ名前があるかだけで判断せず、具体的な組み合わせを確認してください。

v2rayNで選べるコアや同梱内容は、配布版によって異なります。ノードの種類によってはXrayやsing-boxで処理できますが、ルーティングやDNSの設定を別のコアにそのまま引き継げるとは限りません。トラブル時は、まず起動ログでコア名とバージョンを確認し、そのコアで使う設定項目を調べましょう。クライアントの画面だけを更新しても、使用中の外部コアが更新されるとは限りません。

選び方:ノードの要件を確認してからクライアントを選ぶ

サーバー側の要件を「プロトコル、トランスポート、セキュリティ層、認証パラメーター」の4項目に分けて確認します。対象のコアが対応していない機能が1つでもあれば、移行テストを中止して対応するコアを選びましょう。サブスクリプションを何度更新しても、コアにない機能は追加されません。

サブスクリプションとルーティング:ノード一覧は共有できても、通信設定は個別に必要

通常のサブスクリプションはノードの接続情報を配布するもので、端末全体の設定を含むとは限りません。同じサブスクリプションを両方の端末にインポートしても、システムプロキシ、VPN権限、DNS、アプリごとのプロキシ設定、ローカルのルーティング規則は異なる場合があります。そのため、「PCでは接続できるのにスマートフォンではできない」からといって、サブスクリプションが無効とは限りません。

  1. まず入力形式を確認します。クライアントが認識できるサブスクリプションURLまたはノード共有リンクか確認してください。アカウントのログインページではありません。Webページから返されたエラーメッセージをノード情報としてインポートしないようにしましょう。
  2. 次にサブスクリプショングループを作成します。v2rayNでは「サブスクリプショングループ」→「サブスクリプショングループの設定」からURLを保存し、該当グループを更新するのが一般的です。v2rayNGではメイン画面のメニューから「サブスクリプショングループの設定」を開き、メイン画面に戻ってサブスクリプションを更新します。画面の表記はバージョンによって多少異なる場合があります。
  3. ノードを1つ選んで動作を確認します。まずプロトコル、アドレス、ポート、セキュリティ設定が揃っているか確認し、その後コアのログを確認します。遅延テストに成功しても、特定の方法で到達できることを示すだけで、実際のWebアクセスが必ず成功するとは限りません。
  4. 最後にルーティング設定を戻します。まずクライアントに用意されたシンプルなルールで接続を確認し、その後カスタムドメイン規則やアプリごとの設定を1つずつ追加します。一度に変更する条件は1種類にし、元に戻せる設定を残しておきましょう。

ルーティングによる振り分けは、通信がコアに届いてから行われます。ブラウザーがシステムプロキシを経由していなければ、コアのドメイン規則を変えても影響しません。Androidのアプリごとのプロキシ設定では、まずVPN経由にするアプリを選び、その後コアが直結、プロキシ、遮断のいずれかを判断します。この2つの段階を混同しないでください。

PCとAndroidの併用:ノードの取得元は共通にし、通信の取り込み設定は別々に管理

PC:v2rayN
  • 互換性を確認したサブスクリプションをインポートし、対応するコアを選択します。
  • まずブラウザーがシステムプロキシ経由でアクセスできることを確認します。
  • ターミナルでは個別にプロキシを設定します。通信をまとめて取り込む必要がある場合にTUNを検討してください。
Android:v2rayNGまたはv2flyNG
  • サブスクリプションのプロトコルとトランスポートが、使用するコアに対応していることを確認します。
  • 初回起動時にシステムのVPN権限を許可します。
  • まず基本的な接続を確認し、その後アプリごとの対象範囲やバックグラウンド動作の権限を設定します。

同じサブスクリプションを使っても、両端の設定が自動的に同期されるわけではありません。ノード一覧が一致するかどうかは、更新タイミングと各クライアントが対応するノード形式にも左右されます。

通信の取り込み方法とポート:システムプロキシ、TUN、Android VPNの違い

v2rayNのシステムプロキシは、OSのプロキシ設定に従うアプリを主な対象とします。ブラウザーは通常この設定を読み込みますが、コマンドラインツールではプロキシ引数の指定や環境変数の設定が必要な場合があります。TUNは仮想ネットワークインターフェースを使って通信を取り込みますが、権限、ルーティング、DNSの設定も関係します。あらゆるトラブルを解決する万能スイッチではありません。

v2rayNGとv2flyNGはAndroidのVpnServiceを使ってローカルVPNインターフェースを作成し、選択した通信をプロキシコアに渡します。ステータスバーにVPNアイコンが表示されても、システムの通信経路が確立したことを示すだけです。接続先サーバーの検証に成功したことや、DNSとルーティングが正しいことを意味しません。通常、同じユーザー環境で同時に有効にできるVPNサービスは1つです。もう一方のクライアントを試す前に、現在の接続を停止してください。

10808
以下の例で使用するSOCKSの受信ポート
10809
以下の例で使用するHTTPの受信ポート

この2つの値はトラブルシューティング用の例であり、3つのクライアントに共通する既定値ではありません。バージョンによっては混合受信を使い、1つのポートで複数のプロキシプロトコルを受け付けます。ポートを個別に設定するバージョンもあります。v2rayNの「設定」→「パラメーター設定」でローカルの待ち受け設定を確認し、起動ログに記録された実際の待ち受けアドレスを基準にしてください。混合ポートだけが有効な場合、HTTP用の別ポートを探す必要はありません。

# 対応する受信設定がローカルで有効な場合のみ使用し、ポートは実際の設定に置き換えてください。
# SOCKSの例:接続先ドメインの名前解決をプロキシ側で行います
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 https://example.com/

# HTTPの例:HTTP受信または互換性のある混合受信が有効な場合のみ使用できます
curl --proxy http://127.0.0.1:10809 --connect-timeout 10 https://example.com/

Androidアプリ2種の選び方:互換性とバックグラウンド動作を確認

Androidでは、まず互換性が明確なノードで基準となる接続を確認し、バックグラウンド動作とアプリごとの振り分けを比較します。クライアント、ノード、ルーティングを同時に変えると、接続が復旧してもどの変更が効果をもたらしたのか分かりません。テスト中はノード名、コアのバージョン、ネットワークの種類、エラーログを記録すれば十分です。サブスクリプションURL全体を公開する必要はありません。

同じサブスクリプションなのにv2rayNGでは使えて、v2flyNGでは使えないのはなぜ?

まず、接続できないノードがREALITYなどXray固有のパラメーターに依存していないか確認します。次に、共有リンクのトランスポートとセキュリティ設定が正しくインポートされているか確認してください。コアの機能差が原因なら、対応するv2rayNGを引き続き使用しましょう。必要なセキュリティ設定を削除して無理にインポートしないでください。

画面をロックすると接続が切れます。クライアントを変えるべきですか?

まずAndroidの「設定」→「アプリ」→対象のクライアント→「バッテリー」でバックグラウンド制限を確認し、OSが提供する設定でバックグラウンド動作を許可するか、制限なしに設定します。メーカーによって設定画面の場所は異なります。変更後、画面点灯時とロック時の両方でテストしてから、クライアントを変える必要があるか判断してください。

一部のアプリだけをプロキシ経由にするには、どの設定を変更しますか?

クライアントの「設定」で「アプリごとのプロキシ」を探し、一覧が「選択したアプリのみプロキシを経由」するのか、「選択したアプリを除外」するのか確認します。保存後に接続を停止して再起動し、選択したアプリと選択していないアプリを1つずつ使って比較してください。一覧の意味を逆に解釈しないよう注意しましょう。

2つのクライアントを同時に起動して速度を比較できますか?

2つのVPNサービスを同時に起動し、システムの通信経路を取り合う状態にしないでください。先に使用中のクライアントを停止し、次にもう一方を起動します。同じネットワーク、同じノード、同じ測定先で、それぞれ繰り返しテストしてください。コアの優劣を一度の遅延値だけで判断せず、実際のダウンロード速度とログを記録しましょう。

バッテリー消費もクライアント名だけで比較できません。電波の弱い環境での再接続、長時間通信するアプリ、頻繁な疎通確認、実際の通信量などが消費電力に影響します。比較する場合は、同じネットワークで使用時間を揃え、OSのバッテリー使用状況も確認してください。条件が揃っていない場合、消費率の数値は選択基準として適切ではありません。

最終選択と移行時の確認リスト

PCではv2rayNから始め、「ノードが利用可能」「コアが起動」「アプリの通信がプロキシに入る」という一連の流れを確認します。AndroidでXray対応機能が必要ならv2rayNGを選び、既存のv2fly設定との互換性を確認できた場合はv2flyNGを選択できます。安定して動作している設定は、名前や画面の違いだけを理由に移行する必要はありません。

  1. 現在の動作状態を記録します。クライアント設定をバックアップし、使用中のコア、ノードの種類、DNSの方針、通信の取り込み方法を控えておきます。バックアップには認証情報が含まれることがあるため、安全な場所に保管してください。
  2. 端末に合ったインストーラーを確認します。PCではOSとx64、ARM64などのアーキテクチャを確認し、Androidでは端末とインストーラーの対応範囲を確認します。詳細はダウンロードページの説明を参照してください。
  3. ノードだけを移行し、複雑なルールは追加しません。動作確認済みの設定を1つインポートし、ブラウザーでのアクセスとログを確認してから、他の設定を戻します。
  4. 使い慣れた設定を1つずつ戻します。サブスクリプションの更新、ルーティング、DNS、システムプロキシ、アプリごとの対象範囲の順に設定します。問題が起きたら、直前の変更を取り消してください。
  5. 検証が完了するまで以前の設定を残します。端末の再起動、ネットワークの切り替え、バックグラウンド動作を確認しても接続できることを確認してから、不要になった設定や残存するシステムプロキシを削除します。

設定画面の違いを詳しく比較するにはクライアント比較をご覧ください。初期設定はクイックスタートを参照してください。ルーティングやDNSの仕組みについては利用ガイドで確認できます。クライアントを選んだ後は、同じ誤った設定を3つのアプリに何度もインポートするのではなく、再現可能な手順で設定を検証しましょう。

v2rayN をダウンロード