Project Vはプロジェクト群の名称、V2Rayはその中核ソフトウェアです。V2FlyとXrayは異なるコミュニティの保守ルートを指し、v2rayNなどはコアを操作するGUIクライアントです。サブスクリプションやコア選びに初めて取り組む方に向けて、各レイヤーの役割を整理し、サーバーの設定に合うクライアントを選び、実行ログで設定の反映を確認する手順を解説します。
まずは4つの層を整理:プロジェクト、コア、プロトコル、クライアント
「V2Ray ダウンロード」と検索すると、Project V、V2Fly、Xray、v2rayNなどが見つかりますが、それぞれ同じ階層の名称ではありません。Project Vは当初、組み合わせて使えるネットワークプロキシツールを中心に展開し、V2Rayはその中で接続処理を担うコアソフトウェアです。日常的な会話では「V2Ray」が関連ツール全体を指すこともあり、プロジェクト名、プロトコル名、デスクトップアプリを混同しやすくなっています。
| 階層 | 代表的な名称 | 主な役割 |
|---|---|---|
| プロジェクト群・コミュニティ | Project V、V2Fly | 開発の運営、ドキュメントの保守、コアプログラムや関連コンポーネントの公開を行います。 |
| 実行コア | V2Flyが保守するV2Ray、Xray-core | 設定を読み込み、インバウンド、ルーティング、DNS、アウトバウンド接続を処理します。 |
| プロキシプロトコル | VMess、VLESS | クライアントとサーバー間のプロキシ通信方式を定義します。 |
| GUIクライアント | v2rayN、v2rayNG、v2flyNG | ノードやサブスクリプションを管理し、設定を生成してコアを起動し、ログを表示します。 |
たとえば、v2rayNでサブスクリプション更新ボタンを押すと、GUIクライアントがデータを取得して解析します。VMess接続を確立するのは、設定に従ってプロトコルを処理するコアです。画面にノードが表示されても、現在のコアで実行できるとは限りません。プロトコル、トランスポート方式、セキュリティ層に加え、クライアントが対応する項目を正しく生成しているかも確認が必要です。
- サブスクリプションはコアではありません:ノード情報を配布するための入口であり、サブスクリプションURLだけから必要なコアを判断することはできません。
- プロトコルとトランスポートは別のものです:VMessやVLESSと、TCPやWebSocketは異なる設定項目です。互いに置き換えることはできません。
- クライアントはサーバーではありません:ローカルのソフトウェアを変更しても、リモート側の待ち受けポート、ユーザーID、セキュリティ設定は自動では変わりません。
Project VからV2Fly、Xrayへ:主な変遷
この歴史を理解するうえで大切なのは、バージョン番号を暗記することではなく、保守主体の違いが現在の互換性にどう影響するかを知ることです。初期に共有されていたコードや設定の考え方により、異なる系統でもよく似て見えますが、その後それぞれに機能が追加され、完全に置き換え可能なプログラムではなくなりました。
- 2015年前後:V2Rayが形づくられる。Project Vはモジュール型のネットワークプロキシ機能を基盤とし、インバウンド、アウトバウンド、ルーティングを軸に設定を構成しました。VMessはこのエコシステムで広く使われるプロトコルとなり、GUIクライアントによって設定を手書きする負担も軽減されました。
- 2020年:V2Flyコミュニティが保守を引き継ぐ。元のプロジェクトの保守体制が変わった後、コミュニティがV2Rayコア、ドキュメント、関連開発を継続しました。「V2Fly」は主に保守コミュニティを示す名称です。VMessの改称でも、別途インストールが必要なデスクトップ画面でもありません。
- 2020年末:Xrayが独立した系統に。Xrayは関連コードを基盤に独自のコア保守路線を築きました。V2Rayと共通の概念を多く持ちながら、機能の実装、設定の対応範囲、リリースのペースは徐々に独自のものになっています。
- その後:クライアントが異なるコアに対応。デスクトップやAndroid向けクライアントでは、サブスクリプション管理、ルールベースのルーティング、実行状態の表示が改善されてきました。メニューが似ていても、実際に利用できるノードはクライアントの設定生成機能とコアの実装の両方で決まります。
V2FlyとXray:共通概念があっても設定は共通とは限らない
どちらもインバウンド、アウトバウンド、ルーティング、DNSを処理できますが、同じモジュールがあることは、アーキテクチャ上の概念が似ているという意味にすぎません。VMessは両者に共通する代表的なプロトコルです。一方、VLESSを「Xrayだけが対応する」と単純に区切ることはできません。VLESSノードでは、REALITY、特定のflow、その他の実装に依存するパラメーターが組み合わされているかを確認してください。
REALITYはセキュリティ層に関わる機能であり、VMessやVLESSと並ぶプロキシプロトコルではありません。「VLESS + REALITY」と記載されている場合は、この組み合わせに明確に対応するXray構成を選び、サーバーから指定された公開鍵、サーバー名、short ID、flowなどのパラメーターを確認してください。ノードの種類をVLESSに切り替えるだけでは、必要な条件はそろいません。
| 確認項目 | 判断方法 | よくある誤解 |
|---|---|---|
| 一般的なVMessノード | アドレス、ポート、ユーザーID、トランスポート、TLSの設定を照合し、使用中のコアの対応状況を確認します。 | 接続できない原因をすべてコアの系統のせいにする。 |
| VLESSとREALITYの組み合わせ | この組み合わせに対応するXrayを使い、サーバーの説明に従って必要なパラメーターをすべて設定します。 | インポートに成功すればコアも対応していると思い込む。 |
| JSON設定一式 | 対象のコア、設定形式、各項目の説明を確認し、まず設定を検証します。 | 名前の似た項目は完全に互換性があると思い込む。 |
| ルーティングとDNS | ルールの順序、アウトバウンドのタグ、参照先のデータファイルが存在するかを確認します。 | ルールだけをコピーし、依存するアウトバウンドやリソースを用意しない。 |
まとめ:ノードの機能に合わせてコアを選ぶ
サーバーが指定するプロトコル、トランスポート、セキュリティ層、flowを一覧にしてから、クライアントとコアを選びましょう。ある系統の更新が速いという理由だけで、すでに適合して正常に動作している設定を置き換える必要はありません。
3つのGUIクライアント:対応プラットフォームとコアで選ぶ
v2rayNはデスクトップ向けで、サブスクリプション、サーバー選択、ルーティング、システムプロキシなどを操作できます。単に「V2Flyの画面版」と考えるのは正確ではありません。実際に呼び出されるコアは、クライアントのバージョン、設定の種類、選択したノードによって異なります。トラブルを調べる際は、画面に表示されるソフト名だけでなく、クライアントとコアのバージョンをそれぞれ記録してください。
v2rayN:デスクトップ向けクライアント
おすすめWindows、macOS、Linuxのデスクトップ環境でノード管理、ログ確認、ルーティング調整を行うのに適しています。この記事ではデスクトップ向けの入門用として紹介しますが、Androidクライアントの代わりになるという意味ではありません。対応するOSやアーキテクチャはダウンロードページのパッケージを確認してください。
おすすめの用途:デスクトップでの日常利用、サブスクリプション管理、ルーティングのトラブル対処。
v2rayNG:AndroidとXray
Xrayコアで接続を処理するAndroidクライアントです。Xray固有の機能を使う場合は、クライアントのバージョンと同梱コアのバージョンをあわせて確認してください。古いインストーラーがすべての新機能に対応しているとは限りません。
おすすめの用途:Android端末、Xrayに対応するプロトコル構成が必要なノード。
v2flyNG:AndroidとV2Fly
V2FlyのV2Rayコアを利用するAndroidクライアントです。V2Flyの機能に合わせて用意されたノードや設定を使う場合は、この系統を選べます。特定の拡張パラメーターを使う際は、対応状況を事前に確認してください。
おすすめの用途:Android端末、V2Flyコアを前提とする設定。
AndroidではシステムVPNインターフェースを使って通信を取り込み、ローカルプロキシに流します。これは通信をローカルに取り込む方法であり、リモートノードのプロトコルではありません。許可ダイアログで承認しても、確認できるのはローカルで通信を取り込む準備ができたことだけです。リモート側が使えるかどうかは、ノードの設定、ネットワークへの到達性、コアのログで判断します。
設定を一度確認し、画面・コア・ネットワークを順に切り分ける
以下では、v2rayNでよく使われるメニュー構成を例に確認の順序を説明します。デスクトップ画面のメニュー位置はバージョンによって異なる場合があります。現在のバージョンにコアの選択項目がない場合は、実際に表示される項目を基準にしてください。古い記事を見て、移動済みの設定を探し続ける必要はありません。テスト中は一度に変更する項目を1つに絞ると、影響した箇所を特定しやすくなります。
-
バージョンを記録する
「ヘルプ」→「バージョン情報」でクライアントのバージョンを記録し、コアの起動ログからコア名とバージョンを記録します。後で画面側の解析問題か、コアの実行問題かを判断できるよう、それぞれ別に控えてください。
-
コアを確認する
「設定」→「パラメーター設定」→「Core タイプ」を開き、現在の設定で選ばれているコアを確認します。画面上の項目名が異なる、または設定項目が表示されない場合は、実際に起動したコアを実行ログで確認してください。インストール先のフォルダー名から推測しないようにします。
-
サブスクリプションを更新する
「サブスクリプショングループ」→「サブスクリプショングループ設定」でURLを確認し、「サブスクリプショングループ」メニューから更新します。更新後、対象サーバーの編集画面を開き、アドレス、ポート、プロトコル、トランスポート、セキュリティ層を照合してください。
-
通信の入口を確認する
「設定」→「パラメーター設定」でローカルの待ち受けポートを確認し、メイン画面下部にある「システムプロキシ」の状態も確認します。まずはシステムプロキシに従うブラウザーでテストし、TUNとルーティングルールを同時に変更するのは避けてください。
-
実行ログを確認する
一度アクセスし、対応する接続とアウトバウンド情報がログに出るかを確認します。コアの起動時に項目エラーが出る場合は、まず設定を修正してください。正常に起動しても接続がタイムアウトする場合は、リモートアドレス、ポート、ネットワーク環境を確認します。
ポートは各レイヤーの違いを理解するのに役立ちます。以下の3つの数字はポートの役割を説明する例であり、すべてのクライアントが同じ値を初期設定にしているという意味でも、今回のネットワークで実測した結果でもありません。
ローカルの127.0.0.1:10808とリモートアドレスの443を同じにする必要はありません。ブラウザーからの接続はローカルの待ち受け先に渡され、コアがノードの設定に従ってリモートへ接続します。混合リスナーを使う場合は、1つのローカルポートで複数のプロキシプロトコルを受け付けることもあります。実際には起動していないHTTPポートを古い記事どおりに追加するのは避けてください。
エコシステムのよくある質問:系統の変更、サブスクリプション移行、設定の再利用
v2rayNをインストールした後、別のV2Ray用GUIも必要ですか?
同じ作業のために別のGUIを追加する必要はありません。まずv2rayNを起動し、必要なコアが正常に起動したかログを確認してください。コアファイルが見つからないと表示された場合は、ダウンロードページやガイドを参考に、必要なコンポーネントを含むパッケージを選びます。任意のコアプログラムを改名して代用するのは避けてください。
同じサブスクリプションをv2rayNGからv2flyNGに移せますか?
同じサブスクリプションをインポートすることはできますが、ノードの種類ごとに対応状況を確認してください。元のクライアントを残したままインポートし、パラメーターが明確なノードを1つだけ選んでテストします。REALITYなどXrayに依存する設定が含まれている場合、V2Fly系統に切り替えてもそのまま動くとは限りません。
サブスクリプションの更新に成功したのに接続できないのはなぜですか?
更新の成功が示すのは、データの取得と解析が完了したことだけです。ノードの編集画面を開き、サーバーアドレス、ポート、ユーザーID、TLSサーバー名を確認してから、コアのログを確認してください。接続ログがまったくない場合は、システムプロキシや通信の取り込み設定を確認します。接続ログがありエラーが出る場合は、その内容に沿ってリモート側を調べてください。
ネット上のルーティング用JSONはそのままコピーできますか?
まず現在の設定をバックアップし、対象のコアと設定形式を確認してください。アウトバウンドのタグ、ルールの順序、ルールが参照するデータファイルを1つずつ調べます。テスト用のルールを1つだけコピーして動作を検証し、問題がないことを確認してから少しずつ追加しましょう。設定全体を上書きするのは避けてください。
Project Vをエコシステムの背景、V2FlyとXrayをコアの保守系統、3つのクライアントを各プラットフォームの操作窓口として整理すると、選び方がわかりやすくなります。問題を報告するときは、「クライアントのバージョン、コアのバージョン、ノードの構成、エラーが起きる段階」の4点を伝えると、漠然と「V2Rayが使えない」と説明するより原因を特定しやすくなります。ログを共有する前に、サブスクリプションURL、ユーザーID、その他の認証情報を必ず隠してください。