Project Vのオープンソースエコシステム相関図:V2Fly・Xrayと3つのGUIクライアントの関係

Project VからV2Flyコミュニティによる開発継続、Xrayの独自進化までを整理。v2rayN・v2rayNG・v2flyNGが使うコアと、それぞれのメンテナンス体制を解説します。

この記事の要点

クライアント名、コア名、プロトコル名が混同しやすい場合は、まず3つの関係を押さえましょう。Project Vがプロジェクトの起点で、V2FlyとXrayはそれぞれ独自に発展したコアの系統、v2rayN・v2rayNG・v2flyNGは操作用のGUIクライアントです。この記事を読めば、端末やノードの要件、コアの対応状況をもとにツールを選べるようになります。「v2ray」という名前だけで判断する必要はありません。

Project Vから2つのコアの系統へ

Project Vは、初期のV2Rayを中心に形成されたオープンソースプロジェクトです。V2Rayはもともと、主にコアプログラムと設定ファイルによってプロキシ、ルーティング、トランスポートの機能を提供していました。GUIはコアプログラムそのものではありません。その後、V2FlyコミュニティがV2Rayの開発とメンテナンスを引き継ぎ、V2Flyはこのコミュニティ主導の系統を見分ける重要な名称になりました。

Xrayは別のメンテナーグループが、関連するコードを基盤に独自開発を進めています。V2Flyとは共通の歴史的な起点を持ちますが、その後はそれぞれ別にリリースされ、機能も個別にメンテナンスされています。Xrayを単に「V2Flyの新バージョン」と捉えると、クライアント選びを誤るおそれがあります。設定機能、機能開発の状況、互換性の範囲は、実際に使うコアごとに確認してください。

Xrayコア

おすすめ

独自に開発が進んでいます。REALITYなどXrayの機能を使う場合は、クライアントが実際にXrayを起動しているか確認してください。

おすすめの用途:ノードでXrayの機能が明確に求められる場合の日常的な設定

V2Flyコア

V2Flyコミュニティの系統でV2Rayコアをメンテナンスしています。利用前にノードのパラメーターと、該当バージョンの機能対応状況を確認してください。

おすすめの用途:V2Flyが対応するノードや設定を使う場合

ここでいう「フォーク」はプロジェクトの発展経緯を表すもので、2つのプログラムが同じサーバーに接続できないという意味ではありません。たとえばVMessはプロトコル名であり、特定のクライアント専用の名称ではありません。同じプロトコルでも、トランスポート方式やセキュリティ設定などの具体的なパラメーターがあります。一方、クライアントでリンクをインポートできても、現在のコアがリンク内のすべてのオプションに対応しているとは限りません。

GUIクライアントとコア、それぞれの役割

GUIクライアントはサーバー一覧の表示、サブスクリプションの保存、接続先ノードの選択、システムプロキシの設定、ログの表示を担当します。コアは設定に従って接続を確立し、インバウンド通信を処理して、アウトバウンドとルーティングのルールを実行します。問題を切り分けるときは、まずどの層で起きているかを確認しましょう。画面にサーバーが表示されない場合は、インポートやサブスクリプションを確認します。サーバーを選択しても接続できない場合は、コア、ノードのパラメーター、ログを確認してください。

名称種類コアとの関係メンテナンス体制
v2rayNデスクトップ向けGUIクライアント利用可能なコアはクライアントのバージョンやインストール済みコンポーネントによって異なります。名前だけで現在のCoreの種類を判断することはできません。クライアントと選択したコアは、それぞれ別のメンテナーが管理
v2rayNGAndroid向けGUIクライアントXrayコアの系統を採用クライアントとXrayコアはそれぞれ別にメンテナンス
v2flyNGAndroid向けGUIクライアントV2Flyコアの系統を採用クライアントとV2Flyコアはそれぞれ別にメンテナンス

この表でもうひとつ見落としやすいのは、クライアントの更新とコアの更新は別だという点です。GUIに表示されるアプリのバージョンだけでは、現在のコアプログラムがどの機能に対応しているか分からないことがあります。特にデスクトップ版でコアを切り替えたり、古い設定を移行したりした場合は、設定画面で実際のCoreの種類を確認し、ログで起動結果をチェックしてください。

v2rayNで実際に使うコアを確認する

v2rayNの特長は、サーバー管理とコア選択を1つのデスクトップ画面で行えることです。コアを選ぶ前に、ノードの設定で指定されている要件を確認してください。たとえばサーバー側がVLESSとREALITYを指定している場合は、該当機能に対応したコアとバージョンが必要です。一般的なVMessノードでは、プロトコル名だけでコアを推測せず、アドレス、ポート、ユーザーID、トランスポート、セキュリティ設定を順に確認しましょう。

  1. ノードの要件を確認する

    サーバーの編集画面を開き、「プロトコル」「アドレス」「ポート」と、トランスポートやセキュリティに関する項目を確認します。サーバーの説明でXrayの機能が明示されている場合は、ノードのパラメーターとあわせて要件を確認してください。

  2. コアの設定を確認する

    該当する設定項目があるバージョンのv2rayNでは、「設定」→「パラメーター設定」→「Coreタイプ」の順に開き、現在の選択を確認します。バージョンによって画面上の項目名や配置が異なる場合は、使用中のバージョンに表示されるコア設定を確認してください。

  3. 設定を反映して再接続する

    設定を保存し、サーバーを選び直して接続します。Coreタイプを切り替えた後は、一覧の遅延値だけで判断しないでください。コアが再起動したことと、システムプロキシが意図した状態になっていることも確認しましょう。

  4. ログを確認する

    クライアントログで起動情報とエラーを確認します。設定項目が未対応というメッセージが出た場合は、ノードの編集画面に戻り、プロトコルとトランスポートのパラメーターを確認してください。コア設定の誤りを隠すために、システムプロキシのモードを何度も切り替えるのは避けましょう。

ローカルの待ち受けポートも、原因を調べる手がかりになります。設定によってはローカルSOCKSポートに10808が使われますが、すべての環境で固定されているわけではありません。ブラウザーなどにプロキシアドレスを手動で入力する場合は、他人の設定にある10808をそのまま使わず、現在のv2rayNのローカルプロキシ設定を確認してください。ポートが他のプログラムに使われている場合は、ウェブページの接続エラー表示よりログのほうが原因を判断しやすいことがあります。

結論:コアの起動結果を確認する

Coreタイプを選んだら、まずログでコアが正常に起動したことを確認し、その後に目的のウェブページへアクセスします。コアが起動していなければ、速度測定の結果やシステムプロキシのスイッチだけでは、ノード設定が正しいとは判断できません。

Androidではv2rayNGとv2flyNGのどちらを選ぶ?

どちらもAndroid向けのGUIクライアントですが、採用しているコアの系統は異なります。v2rayNGはXray、v2flyNGはV2Flyに関連しており、同じアプリの名称違いではありません。選ぶ際は、まずサーバー側のプロトコル、トランスポート、セキュリティの各パラメーターがどちらのコアでサポートされているかを確認し、次に必要なインポート機能や日常の管理方法を検討してください。

サブスクリプションのインポートから接続成功までには、少なくとも2つの確認が必要です。1つ目は、クライアントがサブスクリプション内のサーバー情報を認識できるか。2つ目は、コアが記載されたすべてのパラメーターを使って接続できるかです。サブスクリプションの更新に成功しても、クライアントがリストを取得して処理できたことを示すだけで、リスト内のすべてのノードに接続できるとは限りません。クライアントを乗り換える場合も、サブスクリプションのグループ、ルーティング設定、ローカルルールが自動的に共有されるとは考えないでください。

サーバー情報が正常に表示されていても接続後にアクセスできない場合は、まず選択中のノードを確認し、次にクライアントの接続ログとシステムプロキシの状態を確認します。サブスクリプションの提供元をコア選びの基準にしないでください。互換性を決めるのは、個々のノードで使われているプロトコル、トランスポート方式、セキュリティパラメーターと、現在のコアがそれらに対応しているかどうかです。

混同しやすいポイント:プロジェクト、プロトコル、メンテナー

プロジェクトの沿革から分かるのは「コードがどこから来たか」、メンテナンス体制から分かるのは「クライアントとコアを誰がそれぞれ更新しているか」、プロトコルと設定から分かるのは「現在のノードにどの機能が必要か」です。この3つは別々に考える必要があります。たとえば、Xrayが同じエコシステムに由来することを知っていても、V2Flyの設定がXray独自の項目をそのまま使えるとは限りません。また、v2rayNがGUIクライアントだと知っていても、すべてのPCで同じコアが起動するとは限りません。

v2rayNは名前にv2rayが付いているから、V2Flyしか使えない?

いいえ。「設定」→「パラメーター設定」→「Coreタイプ」で、選択肢と現在の設定を確認してください。インストールしたクライアントのバージョンやコアコンポーネントによって、利用できる選択肢は異なります。

サブスクリプションをインポートできたのに、ノードに接続できないのはなぜ?

該当サーバーの編集画面を開き、プロトコル、アドレス、ポート、ユーザーID、トランスポート、セキュリティの各項目を確認し、ログに記録された具体的なエラーを確認してください。インポートに成功しても、コアがすべてのパラメーターに対応しているとは限りません。

v2rayNGからv2flyNGに乗り換える場合、サーバーの設定変更は必要?

サーバー側の設定をすぐに変更する必要はありません。まず、元のノードで使っている機能が移行先のコアでサポートされているか確認し、新しいクライアントに設定をインポートしてテストしてください。特定のコア機能が必要な場合、クライアント名を変えるだけでは移行できません。

VMessとVLESSは2つのクライアント名?

いいえ。どちらもノードのプロトコルです。クライアント名、コア名、ノードのプロトコルは分けて記録してください。サーバーを編集するときは、プロトコルだけでなくトランスポートとセキュリティの設定も確認が必要です。

コアを切り替えたら、ルーティングルールも自動で適用される?

自動で適用されるとは限りません。現在のクライアントが生成または使用しているルーティング設定を確認し、直接接続する宛先とプロキシを使う宛先をそれぞれテストしてください。設定の解析エラーが発生した場合は、まずログで該当項目を特定します。

設定を整理する際は、端末で使っているクライアント、現在のコア、ノードのプロトコル、トランスポート方式、特別なセキュリティ設定の有無を簡単に記録しておくと便利です。「V2Rayノード」という名前だけを覚えておくより役立ちます。トラブルが発生したら、この記録をもとにバージョンとパラメーターの不一致を確認してから、ネットワーク、サブスクリプションの有効性、ルーティングを調べると、原因を絞り込みやすくなります。

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