2026年8月2日 · エコシステム · 約10分

Project Vのエコシステムを解説:V2Fly・Xrayのコアとv2rayN・v2rayNG・v2flyNGの役割

Project VからV2Flyコミュニティ、Xrayの派生プロジェクトまで、各クライアントが採用するコアやライセンスの違いを解説。選び方の参考に。

この記事の要点

このツール群を理解する出発点はProject Vです。V2FlyとXrayは異なるコアの開発路線にあたり、v2rayN、v2rayNG、v2flyNGはユーザー向けの設定・接続管理を担います。本記事ではプロジェクト、コア、クライアント、プロトコルの4つに分けて解説し、デスクトップとAndroidでの選び方も紹介します。サブスクリプションを入手したものの、どのクライアントやコアを使えばよいか迷っている方に向けた内容です。

Project V、V2Fly、Xray:まずプロジェクトの関係を整理

Project Vはネットワーク通信ツールとモジュール型プロキシ機能を軸とするプロジェクトで、V2Rayはその中核を担います。「V2Ray」は日常会話ではコアのプログラムを指す場合も、ツール全体を指す場合もあります。問題を切り分けるには、使用中のクライアント、クライアントが呼び出すコア、コアが実際に読み込む設定を確認しましょう。

V2FlyはV2Rayの保守・開発を続けるコミュニティです。一般にV2Flyのコアと呼ばれるものは、同コミュニティが保守するv2ray-coreを指します。Xray-coreはv2ray-coreから派生し、その後独自の機能開発路線を築いています。両者には共通する歴史や設定の概念がありますが、新機能、設定項目、既定の動作が常に同じとは限りません。

クライアントとコア:画面上の設定が実際の接続になるまで

クライアントは主に操作と管理を担い、サブスクリプションURLの保存、サーバー一覧の表示、システムプロキシの設定、設定ファイルの生成、コアの起動・停止を行います。コアはローカルの入口で待ち受け、ルーティングを判定し、プロトコルのハンドシェイクを実行してデータを転送します。画面が正常に開いていても、ポートの競合や設定ミスでコアが起動しないことがあります。

クライアント主なプラットフォームコアとの関係選ぶ際の確認点
v2rayNWindows、macOS、Linuxデスクトップで複数のコアを管理。Xrayなどの対応系統を含み、選択肢は配布版によって異なりますインストーラーのプラットフォームとアーキテクチャ、および現在の設定が呼び出すコアを確認
v2rayNGAndroidXrayコアを使用。Android側で画面表示と通信の取り込みを担当ノードの設定値、プロキシを適用するアプリの範囲、VPNの許可を確認
v2flyNGAndroidV2Flyのv2ray-core系統を使用ノードが必要とする機能が、そのコアで実装されているか確認

v2rayNのクロスプラットフォーム版とWindowsのWPF版も、別の観点で異なります。画面の技術はウィンドウ、トレイ、プラットフォームとの連携方法を決めるもので、接続先とのハンドシェイクにVMessとVLESSのどちらを使うかを直接決めるものではありません。画面の種類を切り替えても、コアやノード設定の確認には代わりません。

Androidの通信を取り込む処理も、プロトコルコアだけで完結するわけではありません。v2rayNGとv2flyNGは通常、システムのVPNインターフェースを使ってアプリの通信を取り込み、コアに渡します。システム上でVPN接続済みと表示されても、取り込み用の経路が確立したことを示すだけで、接続先とのハンドシェイク成功までは保証しません。

切り分けの基本:クライアントを記録してからコアを確認

問い合わせる前に、クライアント名とバージョン、ログに記録されたコアのバージョン、ノードのプロトコルを控えてください。「V2Rayがつながらない」だけでは、画面、通信の取り込み、設定、接続先サービスのどこに問題があるか判断できません。

VMess、VLESS、TLS、REALITY:それぞれ別の要素

接続設定には少なくとも、プロキシプロトコル、伝送方式、セキュリティ設定が関わります。VMessとVLESSはプロキシプロトコル、WebSocketは伝送方式、TLSとREALITYは接続のセキュリティ設定に関する選択肢です。互いに置き換えられる同種の設定ではなく、名前が長いほど性能がよいというわけでもありません。

たとえばサブスクリプションがVLESS + REALITYの場合、サーバーアドレス、ポート、ユーザーID、サーバー名、公開鍵、Short ID、フロー制御などの項目を確認します。必須項目や具体的な項目名は、設定内容とコアのドキュメントに従ってください。プロトコルのプルダウンをVLESSに変えるだけで、ほかの値が自動入力されるわけではありません。

ノードの要件に合わせてv2rayN、v2rayNG、v2flyNGを選ぶ

まずOSを確認し、次にノードの要件を確認します。デスクトップではv2rayNでサブスクリプションのグループやルーティングをまとめて管理できます。Androidではv2rayNGとv2flyNGのコア機能を比較してください。以下はXrayの機能を必要とするAndroid設定を対象とした推奨であり、あらゆる用途を対象にした性能ランキングではありません。

v2rayNG

おすすめ

AndroidでXrayコアを使う方法です。ノードがREALITYやVisionを明示的に必要とする場合は、この系統の対応状況と実際のコアバージョンを優先して確認してください。

おすすめの用途:Androidで、ノードがXrayの機能を明確に必要とする場合。

v2flyNG

AndroidでV2Flyコアを使う方法です。既存の設定がV2Flyの機能や動作を前提に管理されている場合は、この系統を継続できます。ただし、具体的な伝送方式とセキュリティ設定は確認してください。

おすすめの用途:Androidで、動作確認済みのV2Fly設定を利用している場合。

v2rayN

デスクトップでサブスクリプション、システムプロキシ、ルーティングを管理できます。Windows、macOS、Linuxとプロセッサアーキテクチャに合ったインストーラーを選び、実行時に呼び出されるコアを確認してください。

おすすめの用途:デスクトップ環境で、サブスクリプションとルーティングをまとめて管理したい場合。

クライアント名だけで速度は判断できません。ネットワーク経路、サーバー負荷、伝送設定、ローカルでの通信取り込み方法が結果に影響します。比較する際は同じサーバー、同じネットワーク、同じテスト先を使い、一度に変える項目は一つにしてください。そうしないと、結果が違ってもコアによる差かどうか特定できません。

v2rayNの確認手順:設定画面から実行ログまで

以下の手順では、「現在の設定が実際にどのコアで実行されているか」を確認します。配布版によって設定項目の場所は異なる場合があります。該当項目が見つからないときは、別バージョンの画面を参考にせず、まずクライアントのバージョンと画面の種類を確認してください。カスタム設定では、通常のサーバー設定における既定の選択が適用されない場合もあります。

  1. バージョンを記録

    「ヘルプ」→「バージョン情報」でクライアントのバージョンを記録し、使用中のプラットフォームと画面の種類も控えます。コアのバージョンは起動ログで別途確認し、クライアントのバージョンと混同しないでください。

  2. コアを確認

    「設定」→「パラメーター設定」を開き、「Coreタイプ」に関する項目を確認します。プロトコルごとにコアを割り当てる場合は、現在のノードのプロトコルに対応する項目を確認してください。項目名や場所が異なる場合は、実際の設定画面を基準にします。

  3. ノードを確認

    現在のサーバーの編集画面を開き、プロトコル、アドレス、接続先ポート、伝送方式、TLSまたはREALITYの設定を確認します。サブスクリプションの元の設定を保ち、エラーを消すためにユーザーIDやセキュリティ設定を安易に変更しないでください。

  4. ログを確認

    現在の設定で再起動し、メイン画面のログにあるコアの起動情報とエラーを確認します。まず設定が受け付けられ、待ち受けが開始されていることを確かめてから、接続先への接続成否を判断してください。

コアを切り替えて一つのノードで接続できても、サブスクリプション内のすべてのノードで使えるとは限りません。ノードによってプロトコルや伝送方式が異なる場合があります。「同じ提供元なら設定も同じ」と決めつけず、ノードごとの要件を確認してください。

ローカルポート、システムプロキシ、ルーティングの違い

通信の入口と出口を分けて考えるため、ここではローカルポートを2つ例に挙げます。以下のポート番号は説明用に手動設定した値であり、どの配布版の既定値を示すものでもありません。対応する待ち受けを実際に設定して初めて、アプリからこれらのアドレスを利用できます。

10808
SOCKSのローカル待ち受けポート(例)
10809
HTTPのローカル待ち受けポート(例)

たとえばSOCKSの入口を127.0.0.1:10808、HTTPの入口を127.0.0.1:10809に設定した場合、アプリ側でも正しいプロキシの種類を指定する必要があります。SOCKS専用の入口にHTTPプロキシのリクエストを送ると、接続先サーバーに到達する前のローカルプロトコル処理でエラーになります。バージョンによっては混合型の入口を使うため、実際の待ち受け方式に合わせて設定してください。

切り分けの順序:まず通信の取り込みを確認し、次に出口を調べる

アプリから接続できない場合は、まずログに該当する通信が記録されているか確認します。記録がなければアプリのプロキシ設定や通信の取り込み方法を確認し、記録があればルーティング先、DNS、ハンドシェイクのエラーを調べます。関係のないサブスクリプションURLを何度も変更するのは避けましょう。

オープンソースライセンス:クライアントとコアを個別に確認

ネットワークプロトコルとオープンソースライセンスは別のものです。VMessやVLESSは通信方式を表し、MIT、MPL-2.0、GPL-3.0はコードの利用・配布条件を定めます。相互に通信できるからといって、2つのプロジェクトが同じライセンスを採用しているとは限りません。クライアントが特定のコアを呼び出していても、同梱コンポーネントすべてに同一のライセンスが適用されるわけではありません。

プロジェクト主なライセンス表記確認する範囲
V2Fly v2ray-coreMITコア本体と依存ライブラリに付属するライセンス表記
Xray-coreMPL-2.0ライセンスの対象となるファイル、および変更・再配布の条件
v2rayNGPL-3.0クライアントのコード、配布パッケージ、同梱コンポーネント
v2rayNGGPL-3.0Androidクライアントと統合されたコアの個別ライセンス表記
v2flyNGGPL-3.0Androidクライアントと依存ライブラリのライセンス

上の表は各プロジェクトの主なライセンスを把握するためのものです。個別の配布パッケージに含まれるLICENSE、NOTICE、依存関係一覧の代わりにはなりません。通常のインストール利用では、プラットフォーム、アーキテクチャ、ノードの要件に合うクライアントをダウンロードしてください。コードの改変や再配布を行う場合は、実際に使用するコードのバージョンごとにライセンス条件を確認し、画面に表示されるプロジェクト名だけで判断しないでください。

選び方は3段階に整理できます。まずプラットフォームを決め、次にノードが必要とするプロトコルとセキュリティ設定の組み合わせを確認し、最後にクライアントが実際に実行するコアを確かめます。サブスクリプションは情報を提供し、クライアントは管理を担い、コアは処理を実行し、ルーティングは出口を選びます。それぞれの役割を分けて考えれば、バージョンアップや接続トラブルの切り分けも根拠を持って進められます。

v2rayNをダウンロード