XrayとV2Flyのコアの違い|対応プロトコル・通信機能・クライアントの選び方

XrayとV2Flyの開発経緯や、XTLS Vision・REALITYへの対応状況を比較。v2rayNGとv2flyNGの選び方も解説します。

この記事の要点

ノードの要件を確認してからコアを選びましょう。サブスクリプションにREALITYやxtls-rprx-visionが含まれる場合は、該当機能に対応したXrayコアを優先してください。VMess、WebSocket、TLSのみのノードでも、通信設定と実際の接続結果の確認が必要です。Androidクライアントの選定、デスクトップのコア切り替え、「インポートできたのに接続できない」といった問題に向けて、互換性の範囲と確認手順を解説します。コアの名称だけで速度を判断することはできません。

クライアント・コア・ノード設定の違い

まずv2rayNでノードを選び、右クリックして「サーバーを編集」を開き、プロトコル、通信方式、トランスポートのセキュリティ設定を確認します。画面上で設定を編集・表示するのがクライアントで、実際に接続を確立するのはバックグラウンドで動くコアです。クライアントを更新しても、使用中のコアが切り替わるとは限りません。ノードをインポートできても、現在のコアがすべての設定項目に対応しているとは限りません。

V2FlyコミュニティはV2Rayコアを保守しています。Xray-coreは2020年にV2Rayのコードを基に分岐し、その後はそれぞれ独自に開発が進みました。共通の歴史はありますが、ファイル名だけを置き換えれば使えるわけではありません。新機能の設定項目やデフォルト動作、対応時期が異なる場合があるため、一方の設定ファイルを他方にそのまま渡して同じ結果になるとは限りません。

対応プロトコルの比較:VMessやVLESSの名称だけで判断しない

「プロキシプロトコル」「通信方式」「セキュリティ機能」の3層に分けて確認します。VMessとVLESSはプロキシプロトコル、WebSocketやgRPCは接続を運ぶ通信方式、TLSとREALITYは別の層のセキュリティ機能です。両方にVLESSと表示されていても、どちらかのコアがノード指定のセキュリティ機能に対応していなければ接続できません。

確認項目 Xrayコア V2Flyコア 選び方の目安
VMess 対応 対応 認証情報、システム時刻、通信設定を引き続き確認してください。
VLESSの基本プロトコル 対応 基本プロトコルに対応。具体的なバージョンと設定形式の確認が必要です。 基本機能への対応だけでは、Xray独自の拡張機能との組み合わせに対応するとは限りません。
WebSocketとTLS 一般的な組み合わせに対応 一般的な組み合わせに対応 コアを切り替えるだけでなく、パス、Host、SNI、証明書を確認してください。
XTLS Vision 対応。サーバー側の設定との一致が必要です。 XrayのVisionフロー制御には非対応です。 ノードがxtls-rprx-visionを要求する場合はXrayを選んでください。
REALITY 対応。対応する認証パラメーターが必要です。 XrayのREALITY実装には対応していません。 通常のTLSに変更するだけでは、そのまま利用できません。
DNSとルーティングによる振り分け 関連機能を提供 関連機能を提供 ルールの構文や動作は、それぞれのバージョンで確認してください。

この表は選択の目安であり、すべてのバージョンを網羅した互換性一覧ではありません。特に新しい通信拡張では、同じ名前の設定項目でも実装が異なる場合があります。サーバー側からコアや最低バージョンが指定されている場合は、まず要件を満たし、クライアントがノードの設定をすべて保持しているか確認してください。

XTLS VisionとREALITY:それぞれの役割

ノードのflowとセキュリティ設定を確認します。flow=xtls-rprx-visionなら、Visionのフロー制御が必要です。security=realityなら、REALITYを使用します。両方が同時に使われることはありますが、別々の機能であり、常にセットで有効にする設定ではありません。

共有リンクのインポート後にフロー制御やREALITYの設定が欠けている場合は、まずクライアントとコアのバージョンを確認し、ノードの提供元にリンク形式を問い合わせてください。サブスクリプション変換時に拡張設定が失われることがあります。Short IDやサーバー名を適当に入力しても、元の設定は復元できません。

クライアントの選び方:デスクトップはv2rayN、Androidはノードに合わせて選択

まず実際に使うノードの種類を確認します。サブスクリプションにREALITYやVision必須のノードが含まれる場合、AndroidではXrayベースのv2rayNGを優先してください。既存のノードや運用手順がV2Flyの設定を前提としているなら、v2flyNGを選べます。推奨の基準は機能の適合性であり、クライアント名の新旧ではありません。

v2rayNG:Xrayのノードを優先する場合

おすすめ

Androidで使うノードがREALITY、XTLS Vision、その他のXray機能を明確に要求する場合は、対応するクライアントを選び、内蔵コアのバージョンを確認してください。ここでの推奨は、こうしたノード要件がある場合に限ります。

おすすめの対象:AndroidでVLESS、REALITY、Visionを組み合わせたノードを使うユーザー。

v2flyNG:V2Flyの設定を継続する場合

動作確認済みのV2Flyノードと設定環境を引き続き使う場合に適しています。VMess、WebSocket、TLSなどの組み合わせで接続できるかは、バージョンとパラメーターの確認が必要です。プロトコル名だけでは判断できません。

おすすめの対象:ノードの提供元がV2Flyを明示しており、安定した設定を利用中のAndroidユーザー。

デスクトップでv2rayNを使う場合は、「設定」→「パラメーター設定」を開き、現在のバージョンに「Coreタイプ」などのコア選択設定があるか確認してください。バージョンによって項目の場所が異なります。該当項目が見つからない場合は、古いスクリーンショットの手順を無理に適用しないでください。切り替え後にノードを再度有効にし、起動ログに表示されるコア名とバージョンで最終確認します。

デスクトップとAndroidで同じサブスクリプションを使う場合の確認方法

デスクトップ:v2rayN
  • 同じ提供元のサブスクリプションをインポートし、ノードのセキュリティ方式を確認する。
  • REALITYまたはVisionが必要なノードにはXrayを使用する。
  • 起動ログに表示されるコアのバージョンとエラー情報を記録する。
Android:コアの要件に合わせて選択
  • Xrayの機能が必要なノードにはv2rayNGを使用する。
  • 既存のV2Fly環境を使う場合はv2flyNGを選択できる。
  • サブスクリプション更新後、ノード数と主要な設定項目を照合する。

同じサブスクリプションを使っても、設定が必ず一致するとは限りません。設定の解析能力、更新タイミング、ルーティングはそれぞれ確認してください。

切り替え後の確認:起動状態からローカルの接続口まで

「コアの起動」「接続先とのハンドシェイク」「アプリの接続口」の順に確認します。起動に失敗したら、まずログを確認し、システムプロキシを何度も変更しないでください。コアは起動するのにアプリからアクセスできない場合は、接続先の問題とローカルの接続口の問題を切り分けます。以下のポート番号は接続の役割を示す例で、すべての環境のデフォルト値ではありません。

443
一般的な接続先TLSポート。実際の値はノード設定に従います。
10808
ローカルプロキシ接続口の例。まず待ち受けポートとプロトコルを確認してください。
  1. 現在の設定を保存します。使用中のノード、コア、システムプロキシの状態、ルーティングプリセットを記録してください。一度に変更する項目は一つにし、元に戻せる状態を保ちます。
  2. コアが正常に起動したか確認します。ノードを再度有効にし、ログのバージョン情報を確認してください。設定の解析エラー、未知の項目、非対応のフロー制御が表示された場合は、まず互換性の問題を解決します。
  3. 接続先のパラメーターを確認します。アドレス、ポート、認証情報、通信方式、SNI、REALITYの各設定を確認してください。接続先のポートと、ローカルのHTTP・SOCKSプロキシポートは別のものです。
  4. ローカルの接続口を確認します。「設定」→「パラメーター設定」で待ち受け情報を確認してください。例のアドレス127.0.0.1:10808がSOCKS、HTTP、混合接続口のどれを提供しているかを確認し、テストツールには対応するプロトコルを指定します。
  5. システムプロキシとルーティングを確認します。ブラウザーでテストする場合は、システムプロキシの状態を確認してください。ターミナルのプログラムがシステムプロキシを使うかどうかは、プログラムの仕様によります。ルーティングによって、テスト先への通信が直接接続に振り分けられる場合もあります。

速度を比較する場合は、同じノード、同じテスト先、近い時間帯に条件をそろえ、3回ずつテストして接続時間とダウンロード速度の推移を記録します。遅延を一度測っただけでは、そのときの通信経路と接続先の応答が分かるだけで、すべてのネットワークで特定のコアが速いとは証明できません。テストごとに異なる接続先経路を通っていた場合、結果を比較する意味もありません。

よくある質問:インポート・コアの切り替え・古いノードとの互換性

ノードはインポートできるのに、有効化するとflowが非対応と表示されるのはなぜですか?

まずノードの編集画面でxtls-rprx-visionが含まれているか確認し、起動ログでXrayが動作していることを確かめてください。すでにXrayを使用している場合は、コアのバージョンとクライアントが生成した設定を確認します。flowをすぐ削除しないでください。サーバー側で必須の場合は、削除してもハンドシェイクに失敗します。

古いVMessノードはVLESSに変更する必要がありますか?

コアが異なるという理由だけで、プロトコルを変更する必要はありません。まずシステム時刻、認証情報、通信パラメーターを確認してください。プロトコルはサーバー側の構成で決まります。クライアントのVMessをVLESSに変更するだけでは使えません。サーバー側から対応するノード情報を提供してもらう必要があります。

Xrayに切り替えれば、すべてのサイトが自動でプロキシ経由になりますか?

いいえ。まずアプリの通信がローカルのプロキシ接続口に入っているか確認し、次にルーティングプリセットを確認してください。システムプロキシは一部のアプリの接続口を担い、ルーティングは接続後にどの経路へ出すかを決めます。TUNは通信を取り込む別の方式です。コアを変更しても、これらの設定が自動で変更されることはありません。

同じサブスクリプションがPCでは使えるのに、Androidでは接続できません。何を確認すればよいですか?

まず両方の端末で同じノードに更新されていることを確認し、プロトコル、通信方式、セキュリティ方式、フロー制御を比較してください。REALITYノードには対応するv2rayNGを使い、VPN接続が確立していることと、テストするアプリがプロキシの対象になっていることも確認します。ノード一覧の名前が同じでも、設定内容が同じとは限りません。

REALITYを使っていても、DNSの確認は必要ですか?

必要です。ドメイン名でサーバーに接続する場合、ルーティングルールに照合する場合、接続先サイトにアクセスする場合にDNSが関係することがあります。ログに名前解決のタイムアウトが表示されたら、サーバーのドメイン名と接続先のドメイン名を個別にテストし、現在のDNS設定を確認してください。名前解決の失敗をすべてセキュリティハンドシェイクの問題と決めつけないでください。

選び方の結論:名称ではなく必須機能で判断する

まずサーバー側の要件を満たし、そのうえで移行コストを検討してください。XrayとV2Flyの違いは主に、機能の進化と設定の互換性にあります。「一方は常に速く、もう一方は古いノード専用」ということではありません。ノードが安定して使えているなら、まず既存の設定を維持してください。新機能が必要な場合は、対応するクライアントとコアに更新して、各層を順に確認します。

v2rayNをダウンロード対応OSとインストーラーを確認