v2rayN・v2rayNG・v2flyNGの選び方|V2Rayクライアント3種を比較

対応OS、コア、サブスクリプション対応、操作性の4点から3つのクライアントを比較。PC・Androidそれぞれの選び方を解説します。

この記事のポイント

PCならまずv2rayNを検討しましょう。Androidでは、ノードの要件に応じてv2rayNGとv2flyNGを選びます。この記事では、クライアントの画面、プロキシコア、サブスクリプション形式の違いを整理し、同じサブスクリプションをインポートできても接続できない場合がある理由を解説。PCとAndroidそれぞれの設定、アプリごとのプロキシ設定、ポートの確認方法も紹介します。ノード設定をすでに持っていてクライアントの乗り換えを検討中の方は、引き継げる設定と再設定が必要な項目を確認できます。

1. 対応プラットフォームと操作性から選ぶ

名前は似ていますが、同じアプリの別デザインではありません。v2rayNはデスクトップ向けで、サーバー一覧、サブスクリプショングループ、ルーティング、コア設定などを管理できます。v2rayNGとv2flyNGはAndroid向けで、システムのVpnServiceを使って選択したアプリの通信を処理します。クライアント自体がノードを提供するわけではないため、インストール後に利用権限のあるサーバー設定をインポートする必要があります。

3つのクライアントから選ぶ
クライアント 対応プラットフォーム コア 画面・主な用途
v2rayN Windows / macOS / Linux バージョン、プロトコル、設定に応じてコアを選択。Xrayが一般的 一覧管理、サブスクリプショングループ、システムプロキシ、ルーティング設定
v2rayNG Android Xrayコア ノード一覧、VPNサービス、アプリごとのプロキシ設定
v2flyNG Android V2Flyのv2ray-core V2Flyコアの機能を活用したノード・接続管理

v2rayNにはデスクトップ向けのクロスプラットフォーム版と、従来型のWindows WPF版があり、メニューの場所や機能は異なる場合があります。インストーラーを選ぶ際は、まずOSとCPUアーキテクチャを確認し、実際の画面に合わせて設定を探してください。Windowsのスクリーンショットにある場所が、すべてのプラットフォームで共通とは限りません。

2. XrayとV2Flyの違いがノードの互換性を左右する

V2Rayはプロキシツールの総称として使われることがありますが、実際に設定を読み込み、通信を確立し、ルーティングを行うのはコアです。v2rayNは管理画面であり、v2ray-coreそのものではありません。また、v2rayNGはXrayを使用するため、名前にV2Rayが含まれていても、別のコア向けの設定手順をそのまま適用できるとは限りません。

VMessはプロトコル、WebSocketはトランスポート、TLSはセキュリティ層で、それぞれ役割が異なります。VLESSノードではREALITYが使われることもあります。接続できるか判断するには、一覧に「VLESS」と表示されているかだけでなく、設定一式を確認してください。特にREALITYの設定をXrayからv2flyNGへそのまま流用することはできません。

v2rayNG:AndroidでXrayを使う

おすすめ

Androidで使うクライアントを選ぶ際は、まずここを確認しましょう。ノードがXrayを明示的に要求する場合やVLESS + REALITYを使う場合は、アプリに含まれるコアが必要な項目に対応していることを確認し、サーバー側の指定に従って設定をインポートしてください。

向いている用途:Androidでの常用、Xray向けと明記されたノードへの接続

v2flyNG:AndroidでV2Flyを使う

既存の設定がV2Flyを前提としており、プロトコル、トランスポート、セキュリティ層が搭載コアの対応範囲内なら、設定の互換性を保ちやすい選択肢です。カスタムJSONも、このコアの形式に合わせて確認してください。

向いている用途:V2Flyの設定をすでに使っており、対応するコアの動作を維持したいAndroidユーザー

v2rayN:デスクトップ管理とコア設定

PCではノードのプロトコルを基準にコアを選びます。コアを切り替えた後は、設定の生成結果と起動ログを改めて確認してください。「切り替えに成功した」だけで、すべてのトランスポート設定が互換とは限りません。

向いている用途:複数のサブスクリプション管理、ルーティングやコアのログ確認が必要なユーザー

選び方の順番:設定を確認してからクライアントを選ぶ

設定の提供元に「プロトコル+トランスポート+セキュリティ層」を確認し、クライアントに搭載されたコアの対応状況と照らし合わせましょう。REALITYの公開鍵、サーバー名、WebSocketのパスが不足している場合は、アプリを次々とインストールして試すのではなく、まず必要な情報を補ってください。

3. サブスクリプションを共有できても、インポート結果は同じとは限らない

サブスクリプションURLは設定を取得するための入口であり、あらゆるクライアントで使える保証ではありません。内容には、共有リンクの一覧、Base64エンコードされた一覧、特定のコア向けJSONなどがあります。クライアント側で外側の形式を認識できることに加え、内部のプロトコル設定にも対応している必要があります。どちらかが合わないと、一覧が空になる、設定項目が欠落する、起動に失敗するといった問題が起こります。

  1. まず形式を確認:利用中のクライアントに適した形式で出力できるか、サブスクリプションの提供元に問い合わせましょう。WebページのURLやログインページと、ノード情報を返すサブスクリプションURLは別物です。
  2. v2rayNでグループを追加:一般的な手順は「サブスクリプショングループ」→「サブスクリプショングループの設定」です。名前とURLを登録したら、サブスクリプションの更新を実行します。項目名はバージョンによって異なる場合があります。
  3. v2rayNGで一覧を更新:メニューから「サブスクリプショングループの設定」を開き、URLを保存してメイン画面に戻り、「サブスクリプションを更新」を実行します。URLを保存しただけでは、ノードがインポートされたとは限りません。
  4. 実際に使うノードを確認:使用予定のノードを選び、アドレス、ポート、ユーザーID、トランスポート、TLS / REALITYの設定を確認してから接続してください。

v2flyNGでは専用のサブスクリプション管理画面を使い、取得する内容がV2Flyに適しているか確認してください。ネイティブ形式のJSONは、インバウンド、アウトバウンド、ルーティングを含む実行設定一式の場合があり、一般的なノード一覧に変換できるとは限りません。共有リンクにDNS、ルーティング、アプリごとの設定がすべて含まれるとも限らないため、「同じサブスクリプション」は同じ提供元という意味にすぎず、端末上の動作まで同じとは限りません。

4. PCのシステムプロキシとAndroidのVPNモードは別々に考える

v2rayNのシステムプロキシは通常、システムプロキシ設定に従うアプリをローカルのプロキシポートへ接続します。すべてのプロセスを自動的に経由させるわけではありません。コマンドラインツール、ゲーム、独自にネットワークを管理するアプリは、システムプロキシを使わないことがあります。TUNモードは別の方式であり、仮想ネットワークインターフェース、ルーティング、権限が関係します。「システムプロキシを設定する」ことと同じスイッチとして扱わないでください。

Androidクライアントは通常、VpnServiceでローカルVPNインターフェースを作り、選択した通信をプロキシコアに渡します。初回起動時にはシステムの許可が必要です。同じAndroidユーザー環境では、別のVPNアプリを起動すると現在の接続が置き換わることがあります。アプリごとのプロキシ設定はどのアプリの通信を経由させるかを決め、ルーティングルールはコアに渡った通信をプロキシ経由にするか直接接続にするかを決めます。それぞれ確認してください。

10808
トラブル対処例:ローカルSOCKS待受ポート
10809
トラブル対処例:ローカルHTTP待受ポート

ここに示すのは確認方法を説明するための例であり、3つのクライアントに共通する既定値ではありません。実際の設定がSOCKS 127.0.0.1:10808、HTTP 127.0.0.1:10809なら、アプリ側でプロキシの種類とポートをそれぞれ合わせてください。バージョンによっては混合ポートを使うため、クライアントの設定画面と起動ログを確認しましょう。

5. PCとAndroidでサブスクリプションを共有する設定例

PCとAndroidで同じサブスクリプションを使えば、ノードアドレスを何度も入力する手間を減らせますが、端末ごとの設定は別途必要です。両端の接続を比べる場合は、同じノードを選び、ネットワークとテスト先をそろえてください。速度測定の方式、同時接続数、測定先が異なる場合、画面に表示された遅延の数値だけでクライアントの性能を比較することはできません。

設定例:同じ提供元を使い、通信の処理方法とルーティングは個別に管理

PC:v2rayN
  • サブスクリプショングループを追加し、手動更新後に重要な設定項目を確認する。
  • ノードの要件に合わせてコアを選び、起動エラーがないことをログで確認する。
  • まずシステムプロキシでブラウザーを試し、必要に応じてTUNを設定する。
  • ローカルの待受ポート、DNS、ルーティングモードを記録する。
Android:v2rayNGまたはv2flyNG
  • コアとの互換性を基準にクライアントを選び、対応する形式のサブスクリプションをインポートする。
  • VPNの使用を許可し、ほかのVPNが接続を奪っていないことを確認する。
  • まず基本的な接続を確認し、その後アプリごとのプロキシルールを追加する。
  • 画面をロックした後もバックグラウンド接続が継続するか確認する。

両端でサブスクリプションを更新してからノードを確認してください。DNS、ルーティング、アプリごとのルール、更新スケジュールは、それぞれの端末で設定が必要です。

v2rayNGからv2flyNGへ移行する場合は、互換性のあるサブスクリプションまたは共有リンクを再インポートしてください。アプリ専用データをそのままコピーするのは避けましょう。旧クライアントでカスタムJSONを使っている場合は、移行先コアの項目を一つずつ確認してください。特定のコア専用のトランスポート、セキュリティ層、ルーティング設定を含む構成は、通常、調整してから使う必要があります。

6. クライアント選びでよくある質問

同じサブスクリプションなのに、PCでは接続できてAndroidでは接続できないのはなぜ?

両端で同じノードを選び、トランスポート、セキュリティ層、ユーザーIDを比較してください。次にAndroidのログを確認し、「設定非対応」「接続タイムアウト」「証明書エラー」を切り分けます。ノードがREALITYを要求し、Android側でv2flyNGを使っている場合は、まずコアの互換性を確認しましょう。タイムアウトの場合は、ネットワークとサーバーへの到達性を調べてください。

v2rayNは接続済みなのに、ブラウザーしか使えないのはなぜ?

対象アプリがシステムプロキシに従うか確認してください。手動でプロキシを設定できるアプリなら、クライアントで実際に待ち受けているアドレスとポートを入力します。より多くの通信を処理する必要がある場合は、手順に沿ってTUNを設定してください。サーバー一覧でノードが選択されているだけで通信が処理されていると判断せず、ログに対象アプリのリクエストが記録されているか確認しましょう。

Androidで画面をロックすると切断される場合、クライアントを変えるべき?

まずシステムのバッテリー制限、バックグラウンド実行権限、ほかのVPNの状態を確認し、画面を再点灯した後のログも確認してください。画面を表示している間は接続でき、ロック後にシステムがサービスを終了する場合は、バックグラウンド管理を見直しましょう。ログにリモート側の切断やネットワーク切り替えが記録されている場合は、接続経路と再接続の動作を調べます。この現象だけでコアの優劣を判断することはできません。

結論:プラットフォームに合わせ、コアを選び、通信の処理方法は個別に検証

PCではv2rayNから検討しましょう。Androidでは、Xrayを使うノードならv2rayNGを優先して確認し、V2Flyの設定に依存する場合はv2flyNGを検討してください。まず1つのノードで安定した接続を確立してから、サブスクリプション更新、ルーティング、アプリごとのプロキシを順番に有効化します。一度に変更する設定を1つにすれば、後から問題を切り分けやすくなります。

v2rayN をダウンロード対応プラットフォームとインストーラーを確認