v2rayN・v2rayNG・v2flyNGの選び方|V2Rayクライアントのコアの違いと用途を比較

v2rayN、v2rayNG、v2flyNGをコア、対応OS、サブスクリプション管理、ルーティング設定で比較。PC・Android向けの選び方を解説します。

この記事の概要

PCではまずv2rayNの対応OSとアーキテクチャを確認し、Androidではノードに必要なコアに応じてv2rayNGかv2flyNGを選びます。この記事ではクライアント・コア・プロトコルの違い、サブスクリプションで同期できる内容、ルーティングやポート、複数デバイスでの接続確認方法を解説します。ノードやサブスクリプションURLをすでにお持ちなら、各ソフトを試しにインストールすることなく候補を絞れます。

1. クライアント・コア・ノードのプロトコルの違い

v2rayN、v2rayNG、v2flyNGはクライアントの名称であり、3種類のノードプロトコルを指すものではありません。クライアントはノードのインポート、サブスクリプションの保存、設定の生成、接続の制御を行います。コアは設定に従ってプロトコル接続やDNS問い合わせ、ルーティングを処理します。VMessやVLESSはプロキシプロトコルです。名称が似ていても、同じ設定をインポートすれば同じように動作するとは限りません。

v2rayNGはXrayコアをベースとし、v2flyNGはV2Flyが保守するV2Rayコアを使用します。v2rayNはPC向けの設定管理クライアントで、利用できるコアは配布パッケージやバージョンによって異なります。互換性を調べる際はソフト名だけでなく、クライアントと実際に動作しているコアのバージョンを記録してください。

3つのクライアントを比較するポイント
クライアント対応OSコアとの関係まず確認する項目
v2rayNWindows、macOS、Linux(配布パッケージによる)バージョン、コアの設定、ノードの種類によって異なるシステムのアーキテクチャ、実際のコア、システムプロキシの状態
v2rayNGAndroidXrayコアノードの項目、VPNの許可、アプリごとの対象範囲
v2flyNGAndroidV2FlyのV2RayコアV2Flyの設定との互換性、トランスポート方式、実行ログ

XrayとV2Flyには共通の技術的なルーツがありますが、その後の機能は完全に同期しているわけではありません。VMessやVLESSに対応しているかどうかは互換性確認の第一歩です。トランスポート方式、TLSパラメーター、拡張フィールドも確認しましょう。たとえば、ノードがXrayのREALITYを必要とする場合は、該当フィールドに対応したXrayコアとクライアントのバージョンを選んでください。画面に「VLESS」の項目があるだけでは、利用可能とは判断できません。

2. OSと手持ちの設定から候補を絞る

選ぶ順番は「OS → ノードの要件 → 管理方法」です。PCで複数のノードを切り替えたり、ログを確認したり、ルーティングを編集したりする場合は、まずv2rayNを確認しましょう。Androidでは、ノードがXray固有の機能を必要とするか、V2Flyで動作確認済みの設定を再利用するかを確認します。以下のおすすめはAndroidで新しく設定する場合のもので、3つのソフトの性能ランキングではありません。

v2rayNG:Androidで新規設定する場合

おすすめ

ノードがXrayまたはREALITYを明示的に必要とする場合は、まずv2rayNGを検討してください。インポート後は、サーバーアドレス、ポート、トランスポート方式、安全性に関するパラメーターがすべて揃っているか確認しましょう。古いクライアントでは、新しい共有形式の項目を読み取れない場合があります。

おすすめの用途:Androidでの日常的な接続、Xrayノード、アプリごとのプロキシ設定。

v2rayN:PCでのノード・設定管理

Windows、macOS、Linuxの環境とアーキテクチャに合った配布パッケージを選び、コアの設定も確認してください。OSのシステムプロキシ、ブラウザーのプロキシ、TUNはそれぞれ異なる接続方法です。ノードを起動しただけで、すべてのアプリが接続されるわけではありません。

おすすめの用途:PCでの利用、複数のサブスクリプション管理、実行ログの継続的な確認。

v2flyNG:V2Flyの設定を引き継ぐ場合

動作確認済みのV2Flyノードやカスタム設定がある場合は、v2flyNGも候補になります。既存のプロトコルとトランスポートのパラメーターを維持し、現在のバージョンが該当形式をインポートできるか確認してください。画面を変えるだけのためにコアを移行するのは避けましょう。

おすすめの用途:AndroidでV2Fly環境を引き継ぐ場合、既存の設定の意味を保ちたい場合。

選び方:必要な項目を確認してから画面を比較

ノードの詳細でプロトコル、トランスポート方式、安全性の種類を確認しましょう。そのうち1つでも現在のコアが対応していない機能に依存している場合は、対応するコアまたはクライアントに切り替えてください。テーマやサブスクリプションのグループ、速度テストの設定を変えても、プロトコルの非互換性は解消されません。

コアの名称だけから速度を推測しないでください。実際の通信速度は回線、サーバーの負荷、トランスポートのパラメーター、デバイスの性能にも左右されます。両方の環境を比較するなら、同じノード・ネットワーク・テスト先を使い、ログに記録されたエラーの種類を確認しましょう。条件を揃えていないデータでクライアントの優劣を決めることはできません。

3. サブスクリプションは共有できても、端末ごとの設定は移行されない

サブスクリプションURLから取得できるのは通常ノードの一覧であり、端末環境全体ではありません。同じURLをv2rayNとv2rayNGに登録すれば、サーバーアドレス、ポート、認証情報を手動で管理する手間を減らせます。ただし、システムプロキシの状態、Androidのアプリごとの対象リスト、DNSの設定、ローカルのルーティングルールは自動で同期されません。

PCとAndroidの併用:サブスクリプションを共有し、接続設定は個別に管理

PC:v2rayN
  • 「サブスクリプショングループ」にURLを保存して更新します。
  • 使用するノードを選び、実際に使うコアを確認します。
  • システムプロキシとローカルの待ち受けポートは個別に設定します。
  • カスタムルーティングは個別の設定として管理します。
Android:v2rayNG
  • 「サブスクリプショングループ設定」に同じURLを追加して、サブスクリプションを更新します。
  • インポートしたノードのプロトコルとトランスポートのパラメーターを確認します。
  • 初回起動時にシステムVPN接続の許可を確認します。
  • 必要に応じて「アプリごとのプロキシ」と対象範囲を設定します。

両方の端末で更新が成功し、サブスクリプションの内容が同じで、各項目が対応している場合に限り、ノード一覧を揃えられます。ローカルのルールは端末ごとに確認してください。メニュー名はクライアントのバージョンによって異なる場合があります。

共有リンクやQRコードは、ノードを1つだけ一時的に移行する場合に便利です。移行後は通常、独立したコピーになります。元のノードのサーバーアドレスや認証情報を変更しても、もう一方には自動反映されません。カスタム設定をエクスポートすれば、より多くの項目を引き継げますが、インバウンド、ファイルパス、OS固有のオプションは別の環境にそのまま移せない場合があります。

4. ルーティングと通信の取り込みを分けて確認

ルーティングルールが処理できるのは、クライアントのコアに届いた通信だけです。PCでシステムプロキシを有効にすると、主にOSのプロキシ設定に従うアプリが対象になります。アプリ独自のネットワーク設定を使うものは、個別にプロキシを指定する必要があります。AndroidクライアントがシステムVPN経由で通信を取り込む場合は、アプリごとの設定によって、どのアプリの通信をその経路に流すかが決まります。

つまり、「ルールで特定のドメインをプロキシに設定した」ことと、「そのドメインへの通信が必ずプロキシを経由する」ことは別です。まずアプリの通信がコアに届いているか確認し、そのうえでルールの順序、出力先、DNSの動作を確認しましょう。TUN接続も除外設定、ルートの競合、権限の影響を受ける場合があるため、スイッチがオンかどうかだけで対象範囲を判断できません。

  1. 接続経路を確認:PCではシステムプロキシまたはアプリ内プロキシを確認し、AndroidではVPNの状態とアプリごとの対象リストを確認します。
  2. 出力先を確認:ノード一覧で選択中の項目だけでなく、ログや接続記録でリクエストが最終的にどの出力先を使ったか確認します。
  3. ルールの順序を確認:1つのリクエストが複数の条件に一致する場合があります。ルールは通常、上から順に評価されるため、先頭の広すぎるルールが後続の詳細なルールを妨げることがあります。
  4. 名前解決の設定を確認:routing.domainStrategy はルーティング判定時のドメイン名解決方法を指定するものです。DNSサーバーの選択や、出力接続時のドメイン名の扱いとは異なります。

初めて設定する場合は、内容を把握しやすいシンプルなルールから始めると、トラブルの原因を特定しやすくなります。まず、プロキシ経由にする対象を1つ決めて動作を確認してから、直接接続やブロックの条件を追加しましょう。DNS、ルーティングモード、コアを一度に変更すると、失敗の原因を特定しにくくなります。項目ごとの確認には、サイト内の設定リファレンスをご覧ください。

5. ポートを指定してPCの接続を確認

ポートはローカルアプリがクライアントに接続するための入口であり、リモートサーバーのポートではありません。以下は手動設定の例です。SOCKSの待ち受けは10808、HTTPの待ち受けは10809、待ち受けアドレスは127.0.0.1です。これらは3つのクライアントに共通する初期値ではありません。実際の値は「設定」→「パラメーター設定」のローカル待ち受け項目と起動ログで確認してください。画面の項目名はバージョンによって異なる場合があります。

10808
SOCKS受信ポートの設定例
10809
HTTP受信ポートの設定例
127.0.0.1
この端末からのみ接続できるIPv4ループバックアドレス

ソフトが混合型の受信ポートを1つだけ有効にしている場合は、接続元の設定をその実際のポートに統一してください。別のHTTP待ち受けがあると決めつけてはいけません。127.0.0.1は、スマートフォンからPC上のプロキシに直接接続できないアドレスです。スマートフォン上のループバックアドレスは、そのスマートフォン自身を指します。

実行ログの「接続拒否」「TLSハンドシェイクエラー」「設定の解析失敗」は、それぞれ異なる段階で発生します。具体的なエラーと発生時刻を記録してから該当する設定を変更するほうが、クライアントを何度も入れ替えるより効果的です。トラブルの記録には、クライアントのバージョン、コアのバージョン、接続方法、ノードの種類も残してください。

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

同じサブスクリプションがv2rayNでは使えるのに、v2rayNGにインポートすると失敗するのはなぜ?

まず両方で同じノードを選び、サーバー、ポート、プロトコル、トランスポート方式、TLSの設定を比較してから、コアのバージョンを確認してください。サブスクリプションに現在のクライアントが認識できない項目が含まれている場合は、その項目に対応するバージョンへ更新します。ログにハンドシェイクの失敗が記録されている場合は、端末の時刻とサーバー側が要求するサーバー名を確認しましょう。すべての設定を同時にリセットするのは避けてください。

VMessしか使わない場合も、v2flyNGからv2rayNGに乗り換える必要がありますか?

VMessという名称だけを理由に乗り換える必要はありません。まず現在のバージョンがノードのトランスポート方式と安全性の設定に対応しているか、接続が安定しているかを確認しましょう。移行する場合は、まずノードを1つだけインポートして動作を確認し、その後で残りのノードとルーティングを移します。確認が済む前に元の設定を削除しないでください。

Androidで接続を開始できたのに、一部のアプリだけがプロキシを経由するのはなぜ?

「設定」の「アプリごとのプロキシ」を開き、選択したアプリを接続対象にする設定か、選択したアプリを除外する設定かを確認します。対象のアプリが該当するリストに含まれているかも確認してください。そのうえで、ルーティングルールが対象の通信を直接接続にしていないか確認します。アプリごとの対象範囲とドメインのルーティングは別の設定なので、片方だけを変更して結果を判断しないでください。

サブスクリプションの更新がタイムアウトします。クライアントを変更すべきですか?

まずサブスクリプションURLが完全で、現在も有効か確認してください。現在のバージョンに「プロキシ経由で更新」する項目があり、すでに使える接続がある場合は、その方法を試せます。利用できるノードがない状態では、まだ確立されていないプロキシを使って初回更新することはできません。接続タイムアウト、認証エラー、サブスクリプション内容の解析失敗を区別してから、インポート方法を変更するか判断しましょう。

選択のポイントは3つです。PCではOSに合ったv2rayNの配布パッケージをまず確認します。AndroidでXrayノードを使うなら、v2rayNGを優先して検討します。明確なV2Fly設定の要件がある場合は、v2flyNGを選びます。クライアント、コア、サブスクリプション、通信の接続方法を分けて記録しておけば、今後の移行やトラブル対応で迷いにくくなります。

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