Project Vは、V2Rayを中心としたプロジェクト理念や技術エコシステムを指す文脈で使われる言葉です。V2FlyとXrayは、それぞれ独自にコアや関連コンポーネントを保守しています。v2rayN・v2rayNG・v2flyNGは、設定のインポート、ノードの切り替え、プロキシ対象の管理を担うGUIクライアントです。選ぶ際はOSを確認し、サブスクリプションに含まれるプロトコル、伝送方式、セキュリティ層、クライアント機能を照合しましょう。名前に「V2Ray」が含まれるかだけで判断するのは避けてください。
エコシステム、コア、GUIクライアントをまず区別する
Project Vは、V2Rayを中心に形成されたプロジェクトの理念や技術エコシステムを指すことが多く、ダブルクリックして直接実行するWindowsソフトそのものではありません。歴史的な発展の中で、V2Flyコミュニティはv2ray-coreと関連ドキュメントの保守を続け、Xrayは独自に発展するXray-coreを形成しました。両者には共通する技術的背景がありますが、リリースの進み方、設定機能、プロトコル拡張は完全には一致しません。
プロキシコアは設定を解析し、アウトバウンド接続を確立し、DNSやルーティングルールを実行して、ローカルにSOCKS、HTTP、混合リスニングポートを開きます。GUIクライアントはコアの上位に位置し、サブスクリプション管理、ノード編集、コアの起動、システムプロキシの切り替え、ログ表示を担います。クライアント画面に「起動済み」と表示されても、ローカルプロセスが実行フローに入ったことを示すだけで、すべてのアプリがプロキシへ接続されたとは限りません。
プロキシ設定はさらに第三の層です。VMess、VLESS、サーバー名、伝送方式、TLSパラメータ、ルーティングルールは設定内容にあたります。同じクライアントでも異なる設定をインポートすれば、利用できる機能は大きく変わる可能性があります。同じサブスクリプションでも、異なるコアに読み込むと、対応フィールドの違いによって結果が変わることがあります。
| 階層 | 代表的な名称 | 主な役割 | これだけでは判断できないこと |
|---|---|---|---|
| プロジェクトのエコシステム | Project V、V2Fly、Xray | 技術方針、コア開発、仕様ドキュメントを整備する | 端末がプロキシに接続済みかどうかは直接判断できない |
| プロキシコア | v2ray-core、Xray-core | プロトコル、接続、DNS、ルーティングを処理する | サブスクリプション管理画面とは異なる |
| GUIクライアント | v2rayN、v2rayNG、v2flyNG | 設定を管理し、コアを呼び出し、プロキシ方式を切り替える | 名前が似ていても機能が完全に同じとは限らない |
| プロキシ設定 | サブスクリプション、単一ノード、ルーティングルール | サーバーパラメータとトラフィック処理方式を記述する | クライアントやコアの実行を代替するものではない |
V2FlyとXrayの違いをどう理解するか
V2FlyとXrayはいずれも一般的なプロキシ設定を処理できますが、同じコアに付けられた2つのダウンロード名と考えてはいけません。設定形式には共通点が多い一方、具体的なプロトコルフィールド、伝送オプション、拡張機能は、利用中のコアのドキュメントとクライアントの対応状況に照らして確認する必要があります。サブスクリプションをインポートできても、それはクライアントがテキスト構造を認識したことを示すだけで、コアが接続を確立できるとは限りません。
既存のサブスクリプションが主にVMess、WebSocket、TLSなどの一般的な組み合わせで構成されている場合、v2ray-coreとXray-coreのどちらでも要件を満たせる可能性があります。実際の選択ではサーバー側のパラメータも確認してください。設定にVLESS、Reality、Xray固有のフィールドが明記されている場合は、クライアントがXray-coreを呼び出していることを優先的に確認し、コアのログに未知のフィールドや未対応プロトコルの表示がないか確認します。
Xray-core
おすすめVLESS、RealityなどXrayの機能を確認する必要がある設定に適しており、一般的なVMess設定にも対応できます。インポート後は伝送方式、サーバー名、セキュリティパラメータも確認してください。
適しています:サブスクリプションがXrayを明確に要求する場合、または現代的なプロトコルを幅広く利用したい場合
v2ray-core
V2Flyコミュニティが保守しており、その設定仕様に合うVMessなどの構成に適しています。選ぶ前に、サブスクリプションのフィールドと利用中のコアのバージョンが対応していることを確認してください。
適しています:サーバー側がV2Fly設定を明示している場合、または既存設定の互換性を確認済みの場合
名前だけで判断する
クライアント名にv2rayと付いていても、呼び出せるコアが1種類だけとは限りません。同様に、サブスクリプション名から実際のプロトコル種別を判断することもできません。
適していません:選定方法にはせず、ノードのフィールドとコアのログを確認する
結論:まず設定要件を確認し、その後でコアを選ぶ
サブスクリプションに含まれるプロトコル、セキュリティ層、伝送フィールドを一覧化するほうが、プロジェクト名で選ぶより確実です。「インポートは成功したのに接続できない」場合は、サブスクリプションを何度も削除して再インポートする前に、コアが該当フィールドに対応しているかを確認しましょう。
v2rayN・v2rayNG・v2flyNGはどの端末に適しているか
v2rayNはデスクトップ向けのGUIクライアントで、主にWindowsで利用されます。macOSとLinux向けのデスクトップビルドも提供されています。サブスクリプション、サーバー一覧、ルーティングルール、システムプロキシ、TUNなどの入口をデスクトップ画面に集約できます。Windowsユーザーは通常まずv2rayNを選び、OSのアーキテクチャと画面形式に合うインストーラーを選択します。
v2rayNGとv2flyNGはいずれもAndroid向けですが、標準の技術方針が異なります。v2rayNGはXrayコアの機能を主な選択肢とし、サブスクリプションにVLESSが含まれる場合や、Xrayが明示的に要求される場合に適しています。v2flyNGはv2flyコアの設定を対象とし、サーバー側がV2Fly互換を明確に求める場面で利用できます。どちらもシステムのVPNサービス権限が必要です。この権限は端末内のトラフィックを引き受ける経路を作るだけで、サーバー設定自体を変更するものではありません。
デスクトップとAndroidで同じサブスクリプションを使える場合でも、ローカルでのプロキシ方式は異なります。v2rayNでは、システムプロキシ、アプリへの手動設定、TUNによってトラフィックをコアへ送れます。Androidクライアントは通常、システムVPNサービスでトラフィックを引き受け、アプリごとのプロキシも設定できます。そのため、「同じノードがスマートフォンでは使えるのに、PCでは使えない」からといって、直ちにノードパラメータの誤りとは判断できません。
| クライアント | 対応プラットフォーム | コアの方向性 | 優先して確認する項目 |
|---|---|---|---|
| v2rayN | Windows・macOS・Linuxデスクトップ | クライアントのバージョンと設定に応じて利用可能なコアを選択 | OSアーキテクチャ、コアの種類、システムプロキシ、TUN |
| v2rayNG | Android | Xray-core | VPN権限、アプリごとのプロキシ、バッテリー設定 |
| v2flyNG | Android | v2ray-core | ノードフィールド、コアの互換性、VPN権限 |
プロトコル、伝送方式、機能要件でクライアントを選ぶ
クライアントを選ぶ前に、実際のノードを1つ開き、プロトコル、アドレス、ポート、伝送方式、セキュリティ層、サーバー名、ユーザー識別子を記録します。VMessとVLESSはプロトコル層のフィールド、TCP・WebSocket・gRPCなどは伝送方式、TLSとRealityはセキュリティ層およびハンドシェイクパラメータに関係します。これらは異なる層に属するため、「TLSノード」とだけ書いて判断を終えることはできません。
次に、クライアントが必要なトラフィックの取り込み方式を備えているか確認します。ブラウザーがシステムプロキシを読み取れる場合、Windowsではシステムプロキシを有効にするだけで十分なことが多いです。ターミナル、ゲーム、システムプロキシを参照しないアプリでは、個別にプロキシアドレスを入力するか、ルーティングルールを確認したうえでTUNを使う必要があります。Androidで一部のアプリだけを接続したい場合は、サーバープロトコルを変更するのではなく、アプリごとのプロキシ対象リストを確認してください。
- まずプラットフォームを決める:デスクトップ端末ではv2rayNを選び、Androidではv2rayNGとv2flyNGのコア要件を確認します。
- 次にプロトコルを確認する:VMess、VLESSなど実際のプロトコルを記録し、サブスクリプションのグループ名でノードフィールドを代用しないでください。
- 伝送方式を確認する:TCP、WebSocket、gRPCに加え、パス、サービス名、サーバー名を項目ごとに照合します。
- 接続範囲を決める:システムプロキシ、アプリへの手動プロキシ、TUN、Androidのアプリごとのプロキシから使用方式を選びます。
- 診断しやすいサンプルを残す:まず1つのノードと1つのアプリでテストし、その後に完全なサブスクリプションや他のプログラムへ広げます。
選定確認メモ
プラットフォーム:Windows / macOS / Android / Linux
クライアント:v2rayN / v2rayNG / v2flyNG
プロトコル:VMess / VLESS
伝送:TCP / WebSocket / gRPC
セキュリティ層:TLS / Reality / 設定要件に従う
ローカル接続:システムプロキシ / 手動プロキシ / TUN / アプリごとのプロキシ
テスト範囲:1ノード + 1ブラウザー + 1ターミナルアプリ
一般的なv2rayN 7.xの画面では、「設定」→「パラメータ設定」からコア、インバウンドポート、その他の実行オプションを確認できます。ビルドによってメニュー名が多少異なる場合があるため、現在の画面表示を優先してください。SOCKSポートを10808、HTTPポートを10809に設定した場合、ブラウザー拡張機能、ターミナル環境、その他の手動プロキシアプリにも対応するポートを入力する必要があります。クライアントのリスニングポートを変更しても、外部アプリの古いポートは自動で同期されません。
結論:最小構成でテストすると問題を早く切り分けられる
まず1つのノード、1つの接続方式、1つのアプリに固定してテストします。コアが起動し、ローカルポートが待ち受け状態で、対象アプリが実際にそのポートを使っていることを確認してから、ルーティング分岐、TUN、追加のサブスクリプションを加えます。複数の変数が同時に変わるのを避けられます。
サブスクリプションのインポート後に確認すべき設定
サブスクリプションは設定を配布する方法であり、接続成功を保証するものではありません。クライアントが更新を完了すると、通常はサーバー一覧が生成されますが、ユーザーはアクティブなノードを選び、コアを起動し、システムプロキシまたはVPNで接続する範囲を決める必要があります。サブスクリプションURLは開けるのに一覧が空の場合は、クライアントの表示が解析失敗、内容が空、形式未対応のどれなのかを確認してください。3種類で対処方法が異なります。
デスクトップで調べる場合は、まずローカルの待ち受けを確認します。例として127.0.0.1:10808では、127.0.0.1は本端末からのみアクセスできること、10808はポート番号を示します。どちらもアプリ側のプロキシ設定と一致していなければなりません。ログにポートが使用中と表示された場合は、クライアントを二重起動していないか、別のプログラムが占有していないかを確認し、すぐにリモートノードを変更しないでください。
Androidでは「クライアントが接続済み」であることと、「対象アプリがプロキシ対象に含まれている」ことを区別する必要があります。アプリごとのプロキシを有効にすると、選択したアプリだけをプロキシするモードと、選択したアプリを除外するモードが存在する場合があります。モードを切り替えた後は、対象アプリがどの範囲に含まれるかを再確認してください。バックグラウンドで切断される場合は、システムVPN権限、他のVPNとの競合、バッテリー最適化設定を確認します。
サブスクリプションのインポートに成功したのに、なぜ接続できないのですか?
まずノードを1つ選んでコアを起動し、ログにプロトコルフィールド未対応、サーバー名の不一致、接続タイムアウトがないか確認します。インポート成功は、クライアントがサブスクリプションの内容を読み取れたことを示すだけです。
v2rayNではXrayとv2rayのどちらのコアを選ぶべきですか?
ノードの詳細を開き、プロトコルとセキュリティフィールドを確認します。設定にVLESS、Reality、またはXrayの指定が明記されている場合はXrayを選び、サーバー側がV2Fly設定を明確に要求している場合は、その説明に従ってv2ray-coreを選択します。
ブラウザーは使えるのに、なぜターミナルは接続されないのですか?
ターミナルアプリはシステムプロキシを参照しないことがあります。クライアントのローカルポートを確認し、ターミナルツールでHTTPまたはSOCKSプロキシを個別に設定するか、TUNが必要かを検討してください。
v2rayNGとv2flyNGは同時に実行できますか?
Androidでは通常、同じ時間帯にシステムVPN経路を使用できるアプリは1つだけです。テスト時は現在のクライアントを停止してから別のクライアントを起動し、VPNサービスの競合をノード障害と誤認しないようにしてください。
クライアントを変更すると、サブスクリプションを買い直す必要がありますか?
必ずしも必要ではありません。まず既存のサブスクリプションを対象クライアントが読み取れるか、含まれるプロトコルと伝送フィールドが対象コアに対応しているかを確認してください。クライアントの選択とサブスクリプションサービス自体は別の問題です。
よくある誤解と最終的な選び方
1つ目の誤解は、「V2Ray」を単一のソフトウェア名だと考えることです。実際の会話では、Project Vのエコシステム、v2ray-core、特定の設定形式、関連クライアント全般を指している場合があります。チュートリアルに「V2Rayの設定を開く」としか書かれていない場合は、具体的なクライアント、OS、画面バージョンを確認してください。そうしないとメニューの経路が一致しにくくなります。
2つ目の誤解は、クライアントの画面だけを比較し、コアの機能を確認しないことです。画面はユーザー操作を設定へ変換しますが、プロトコルを実際に処理するのはコアです。クライアントにノード名が表示されても、現在のコアがノード内のすべてのフィールドを認識するとは限りません。ログに出る未知の設定項目、ハンドシェイク失敗、ルーティングエラーのほうが、画面上のノード色より診断に役立ちます。
3つ目の誤解は、システムプロキシとルーティング分岐を混同することです。システムプロキシは、どのアプリがローカルプロキシへトラフィックを送れるかを左右し、ルーティングルールは、コアに入ったトラフィックがどの出口から出るかを決めます。前者で接続されていなければ、後者をどれだけ詳しく設定しても、そのアプリには影響しません。
- Windowsデスクトップでは、まずv2rayNから始め、サブスクリプションの要件に応じてコアとプロキシ方式を選びます。
- AndroidでサブスクリプションがXrayの機能に明確に依存する場合はv2rayNGを選び、v2flyコアが明示的に要求される場合はv2flyNGを選びます。
- macOSとLinuxでv2rayNのデスクトップビルドを使う前に、CPUアーキテクチャとインストーラー形式を確認します。
- 接続問題が発生したら、「コアの起動、ローカル待ち受け、アプリの接続、リモートハンドシェイク、ルーティング結果」の順に確認します。
- クライアントを移行するときは元の設定を保管し、まず単一ノードでテストしてから、すべてのサブスクリプションとルーティングルールをインポートします。