Project Vはプロジェクト全体、V2Rayはその中核ソフトウェア、V2FlyはV2Rayの開発を引き継いだコミュニティ、Xrayは関連コードをもとに発展した独立系のフォークです。v2rayN、v2rayNG、v2flyNGは、ユーザーが操作するGUIクライアントです。クライアント選びやサブスクリプションのプロトコル確認、コアの切り替えを検討している方に向けて、それぞれの位置づけと、現在の設定に合わせた選び方を解説します。
まずは4つに分類:プロジェクト、コア、クライアント、プロトコル
「V2Ray ダウンロード」と検索すると、プロジェクトの紹介、コマンドラインツール、GUIクライアントが検索結果に並ぶことがあります。互いに関連はありますが、同じ種類のものではありません。解説記事の手順が使えるか判断するには、名前の似ている度合いではなく、まずどのレイヤーの話かを確認しましょう。
| レイヤー | 主な名称 | 役割 |
|---|---|---|
| プロジェクト・コミュニティ | Project V、V2Fly | プロジェクトの運営、コードやドキュメント、関連ツールの保守。 |
| プロキシコア | V2Ray、Xray | ローカル接続を受け付け、ルーティング、DNS、プロトコル接続を処理。 |
| GUIクライアント | v2rayN、v2rayNG、v2flyNG | サブスクリプションの管理、設定の編集、コアの起動、ログの表示。 |
| 通信プロトコル | VMess、VLESS | クライアントとサーバー間の認証およびデータ通信の方式を定義。 |
デスクトップ版を例にすると、v2rayNでサーバーを選択してシステムプロキシを有効にすると、アプリはローカルのプロキシ接続先に接続し、コアがルールに従って接続先を選びます。画面は設定の作成と管理を担い、リモートサーバーとのプロトコル接続を実際に行うのはコアです。画面を変えてもプロトコルは変わらず、サブスクリプションを更新してもコアは更新されません。
Project VからV2Fly、Xrayへ:分岐の関係を理解する
Project Vの歴史は2015年ごろにさかのぼり、V2Rayはプロジェクトを構成する重要な実装の一つです。単一のプロトコルだけを扱うのではなく、インバウンド、アウトバウンド、トランスポート、ルーティングなどの機能を組み合わせる設計です。そのため、V2RayはVMessの別名でも、サブスクリプション管理画面だけを指すものでもありません。
2020年ごろ、元のプロジェクトのメンテナンス状況に変化があり、V2FlyコミュニティがV2Rayコアと関連エコシステムの開発を引き継ぎました。その後、Xrayは同じ技術的系譜から独立したフォークとして発展し、XTLSを含む接続技術を継続的に進化させています。ここでいう「フォーク」はコードと開発史の関係を指し、その後のすべての機能が両者で同時にリリースされるという意味ではありません。
Project Vプロジェクト
└─ V2Rayコアと関連ツール
├─ V2FlyコミュニティがV2Rayの開発を継続
│ └─ v2flyNG:Android向けGUIクライアント、V2Flyコアを統合
└─ Xray:関連コードから発展した独立フォーク
└─ v2rayNG:Android向けGUIクライアント、Xrayコアを統合
v2rayN:デスクトップ向けGUIクライアント
└─ 複数のコアを管理可能。選択肢は配布パッケージと設定によって異なる
この図が示すのは主な開発元と一般的な組み合わせであり、上下関係ではありません。v2rayNはV2FlyやXrayの別名ではなく、2つのAndroidクライアントも同じアプリのアイコンを変えただけではありません。それぞれ、統合するコアの設定機能、サブスクリプションの解析、システムのネットワーク接続方式に対応しています。
- V2Flyは新しいプロトコルではありません:この名称は、コミュニティと、そこで保守されているV2Ray実装を指すものと考えましょう。
- XrayはV2Rayの汎用的な新バージョンではありません:独立して発展したフォークです。アップグレードの手順や設定の違いは個別に確認してください。
- 同じ系譜でも設定が完全に共通とは限りません:同じJSONフィールドでも、対応範囲、既定値、動作が異なる場合があります。移行前に検証しましょう。
3つのクライアントと対応するコア
クライアントはまずOSで絞り、その後サブスクリプションの要件に合わせて選びます。デスクトップ向けのv2rayNはWindows、macOS、Linuxに対応しています。インストーラーと利用できる機能は、各リリースの内容を確認してください。Androidでは主にv2rayNGとv2flyNGから選びます。以下で紹介する選び方は「サーバーがXray固有の機能を明示的に要求する」場合に限ったもので、すべての接続環境における性能ランキングではありません。
v2rayNG:AndroidとXrayコア
おすすめXrayコアを統合しています。VLESS、REALITY、XTLS Visionの設定を使う場合は、現在のリリースがサーバー側で必要なパラメーターをすべてサポートしているか確認してからインポートしましょう。
おすすめのユーザー:Xray関連機能を明示的に必要とするサブスクリプションを利用するAndroidユーザー。
v2flyNG:AndroidとV2Flyコア
V2Flyコアを統合しており、V2Fly環境で動作確認済みの接続設定を引き続き使う場合に適しています。選ぶ際はクライアント名がV2Rayに似ているかではなく、プロトコル、トランスポート、パラメーターの互換性を確認してください。
おすすめのユーザー:サーバーと既存の設定がV2Flyの機能を前提としているAndroidユーザー。
v2rayN:デスクトップ向け、コアを選択可能
デスクトップでサブスクリプション、ルーティング、コアの実行を管理します。XrayまたはV2Fly向けの設定を使う前に、配布パッケージに含まれるコア、設定で選択されているコア、実際の起動結果を確認してください。
おすすめのユーザー:デスクトップで接続を管理したいWindows、macOS、Linuxユーザー。
選ぶ順序:OS → サーバーの要件 → 実際に使うコア
まず端末にインストールできるクライアントを確認し、次にサブスクリプションが要求するプロトコルの組み合わせを確認します。最後に起動ログでコアを特定しましょう。クライアント名に「v2ray」が含まれているからといって、V2Flyコアが動作しているとは限りません。
GUIクライアントの更新とコアの更新も別々です。新しい画面でサブスクリプションの解析が改善されても、接続を処理するのは実際に読み込まれたコアです。問題を調べる際は、ウィンドウタイトルだけでなく、クライアント名、現在のコア名、ログに表示されるコアのバージョンを記録してください。
VMess、VLESS、REALITY:プロトコル名だけでは設定は分からない
VMessとVLESSはプロキシプロトコル、WebSocketなどはトランスポート方式、TLSとREALITYは接続のセキュリティ機構、XTLS Visionは特定のフロー制御設定に関わるものです。それぞれ異なるレイヤーに属するため、インポートに失敗したからといって安易に置き換えてはいけません。VMessの設定をVLESSに変更すれば、サーバー側が自動で対応するというわけではありません。
| 設定の組み合わせ | 確認するパラメーター | 選択時のポイント |
|---|---|---|
| VMess + WebSocket + TLS | アドレス、ポート、ユーザーID、パス、Host、サーバー名 | 一般的なコアは関連機能に対応していますが、各フィールドをサーバー側の設定と一致させる必要があります。 |
| VLESS + TLS | ユーザーID、トランスポート方式、サーバー名、フロー制御の要件 | VLESSという表示だけで判断せず、利用中の実装が対応する具体的な組み合わせを確認してください。 |
| VLESS + REALITY + Vision | サーバー名、公開鍵、short ID、フィンガープリント、flow | 通常はXray向けの設定として扱い、クライアントとサーバー双方の対応状況を確認します。 |
たとえば、リモートポートが443でも、接続先のポートが443であることしか分かりません。通常のHTTPS通信だとは限らず、それを理由にTLSやREALITYのパラメーターを省略することもできません。VMessのユーザーIDが正しくてもWebSocketのパスが間違っていれば、ハンドシェイクに失敗することがあります。VLESSで接続先に到達できても、公開鍵やサーバー名が一致しなければ、ルーティングモードを切り替えても解決しません。
- まずサーバーの説明を確認:共有リンクの先頭だけを見るのではなく、必要なクライアント、コアの機能、パラメーター一式を確認しましょう。
- 次にインポート結果を確認:ノードの編集画面を開き、トランスポート、接続のセキュリティ、フロー制御の各項目が失われていないか確認してください。
- 最後にログを確認:設定の解析エラー、ハンドシェイク失敗、接続タイムアウトを区別し、すべての失敗をコアの非互換性のせいにしないようにしましょう。
REALITYは「Xrayをインストールすれば自動で有効になる」機能ではありません。サーバー側で対応する設定を行い、クライアントにも一致するパラメーターを設定する必要があります。同様に、サブスクリプションにVMessの項目があっても、特定のコアを必ず使わなければならないわけではありません。実際の対応状況と接続結果を基準に判断しましょう。
デスクトップとAndroidでサブスクリプションを共有:設定を揃えるには
1つのサブスクリプションURLを複数の端末で使えますが、「同じURL」だからといって、インポート後のすべての項目やレコードが同じになるとは限りません。クライアントの解析機能、フィルター設定、更新時刻、コアの対応範囲によって結果が変わります。まず1つの設定を検証してから、残りをまとめて更新しましょう。
手順:同じサブスクリプションを使い、各端末のローカル接続先を確認
デスクトップ:v2rayN
- サブスクリプションをインポートしたら、代表的な設定を1つ選び、プロトコル、トランスポート、セキュリティの各パラメーターを確認します。
- 接続を開始し、実際に呼び出されたコアをログで確認します。
- システムプロキシを使う場合は、アプリがシステムのプロキシ設定に従っているか確認してください。
Android:v2rayNGまたはv2flyNG
- サーバー側の要件に合わせて、対応するコアを搭載したクライアントを選びます。
- 初回の接続時に、システムのVPN利用許可を行います。
- アプリごとの設定を確認し、対象アプリが通信の処理対象に含まれていることを確認してください。
サブスクリプションで共有されるのはリモート設定の取得元です。ローカルポート、システムプロキシ、VPNの許可、アプリごとの対象範囲は、端末ごとに設定する必要があります。
デスクトップのシステムプロキシとAndroidのVPN経由の通信は、接続の仕組みが異なります。前者は通常、アプリがプロキシ設定を参照します。後者はシステムから許可された仮想ネットワークインターフェースを通して通信を処理します。同じリモート設定を選んでも、どのアプリの通信がコアに渡るか、DNSをどこで解決するか、プライベートアドレスにどう直接接続するかは異なる場合があります。
- 両端で同じ設定を使い、アドレス、リモートポート、プロトコル、トランスポート、セキュリティ方式を記録します。ユーザーID、サブスクリプションURL、鍵は公開しないでください。
- 端末ごとにサブスクリプションを更新し、更新時刻を確認します。フィルターによって非表示になっている項目がないかも確認してください。
- 同じ接続先のWebサイトで検証し、まず通信が接続先に届いているか確認してから、コアのアウトバウンド接続とDNSのログを確認します。
- 接続できることを確認してからルーティングを調整しましょう。コア、DNS、ルールを同時に変更すると、変化の原因を特定できなくなります。
エコシステム選びでよくある疑問:確認ポイント
v2rayNを使っているのに、ログにXrayと表示されるのはなぜ?
クライアントとコアの役割が異なるため、正常な表示です。まず起動ログの冒頭でコア名を確認し、次に現在の設定で選択されているコアを確認してください。パラメーターを確認するには、v2rayNの「設定」→「パラメーター設定」から該当する設定を開きます。項目の分類名はリリースによって変わる場合があるため、現在の画面を確認してください。
v2rayNGとv2flyNGの間で、データフォルダーを丸ごとコピーしても大丈夫?
内部データフォルダーを直接上書きせず、移行先のクライアントでサブスクリプションや共有リンクを再インポートしてください。インポート後に設定を1つ開き、重要な項目を確認してから、VPNの利用許可とアプリごとの設定をやり直します。サブスクリプションから設定を取得できても、システム権限までは移行されません。
サブスクリプションをインポートできたのに、起動時にエラーが出るのはなぜ?
インポートの成功は、クライアントがサブスクリプションの形式を解析できたことを示すだけです。実行ログを開き、「未知のフィールド」や「設定が無効」と表示された場合は、現在のコアとプロトコルの組み合わせを確認してください。「アドレスが使用中」と表示された場合は、ローカルの待ち受けポートを確認します。たとえば、10808を別のプロセスが使用している場合は、そのプロセスを停止するか接続先のポートを変更し、その接続先を使うアプリの設定も更新してください。
Xrayに切り替えれば、必ず通信速度が上がる?
コアの名前だけでは判断できません。同じリモートサーバー、同じネットワーク、同じ接続先を使い、設定を1つずつ変更して、接続できるかとログのエラーを記録しましょう。サーバーの負荷、ネットワークのパケットロス、トランスポート方式、ルーティングなども使用感に大きく影響します。互換性のない設定は、性能を比較する前に修正してください。
コアを切り替える前に、元に戻せる状態を保つ
系譜を理解する目的は、手当たり次第に試すのを避けることです。接続できているなら、名称が新しいという理由だけでコアを入れ替える必要はありません。サーバーが新しい機能を要求している場合も、GUIだけを更新して済ませず、必要な機能を確認しましょう。元の設定を残したままテスト用の設定を追加し、動作を確認してから普段使う設定を切り替えるのが安全です。
- バックアップ対象:クライアント設定をエクスポートし、サブスクリプションのグループ、現在のルーティングモード、DNS設定、ローカル接続先のポートを記録します。
- テスト対象:まず1つの設定と1つの接続先で試し、直接接続が必要なプライベートネットワークのアドレスが想定どおり処理されることを確認します。
- ログの記録:コアの起動情報と最初に発生した関連エラーを保存します。ログを共有する前に、サブスクリプションのトークン、ユーザーID、鍵を伏せてください。
- 復元の判断基準:新しい設定で起動できない、または重要なアプリが使えない場合は、まず元の設定に戻し、互換性のない項目を個別に確認します。
まとめると、Project Vは技術の出自、V2FlyとXrayはコアの開発の流れ、3つのクライアントは各プラットフォームでの接続管理を示しています。選ぶ際に確認するのは、端末に何をインストールできるか、サーバーが何を要求するか、実行時に何のコアが読み込まれているかの3点です。接続先やルーティングをさらに設定する場合は、入門ガイドまたは設定の応用ガイドをご覧ください。