クライアントを選ぶ際、「Xrayコア」「V2Flyコア」と表示されると、同じプログラムの別名にすぎないと思いがちです。実際には、GUIクライアントが担当するのはサブスクリプションのインポート、ノード選択、システムプロキシ、画面操作です。設定の解析、接続の確立、ルーティングの実行、通信の処理を担うのがコアです。特定のプロトコル構成を利用できるかは、実行中のコアが対応する項目を認識できるかで決まります。
XrayとV2FlyはいずれもProject Vの設定思想を受け継いでおり、一般的なインバウンド、アウトバウンド、ルーティング、DNS、ポリシーの構造は今も似ています。VMess、標準的なトランスポート、基本的なルーティングでは共通部分が多い一方、開発方針は分かれています。XrayはVLESS、XTLS Vision、REALITYなどの機能を積極的に拡張し、V2Flyは独自のバージョン系列でV2Rayコアと設定体系を保守しています。
そのため、コアを比較するときは「どちらが速いか」だけで判断できません。まずサブスクリプションのノードがどのプロトコルとセキュリティ層を使うかを確認し、次にクライアントが実際にどのコアを組み合わせているかを見て、最後に端末と回線の条件を比較します。プロトコルに互換性がなければ速度測定の数字に意味はなく、互換性がある場合はコア名より回線品質のほうが体感を左右します。
この記事は、v2rayN、v2rayNG、v2flyNGの選定中の方や、サブスクリプションを取り込めても接続できない方に適しています。XrayとV2Flyの対応範囲を整理し、VLESS、XTLS Vision、REALITY、VMessなどのノードに必要なコアを見分け、デスクトップとAndroidの各環境で適切なクライアントを選べるようになります。
派生元が同じでも設定を完全に共用できるわけではない
V2FlyはV2Rayコミュニティが継続して保守するコア実装の系統で、モジュール型プロキシ基盤の全体設計を引き継いでいます。Xrayは初期のV2Rayコード体系から発展し、既存の設定思想との互換性を一部保ちながら、独自プロトコル、トランスポートの選択肢、セキュリティ機構を追加しました。どちらもプロキシコアとして利用できますが、現在は別々にリリースされ、それぞれ独自に進化するプロジェクトです。
共通点は主に設定モデルにあります。たとえば一般的な設定では、ローカルのインバウンドポート、リモートのアウトバウンド、ドメイン名の解決、ルーティング規則を記述します。SOCKSインバウンドはローカルの10808番ポート、HTTPインバウンドは10809番ポートで待ち受け、ルーティングでドメイン名やアドレス範囲に応じてダイレクト、プロキシ、遮断のアウトバウンドを選択できます。このような構造上の概念は、両方の系統に共通しています。
違いは具体的な項目と実装の細部に現れます。サブスクリプションに含まれる `security=reality`、`flow=xtls-rprx-vision`、公開鍵、短い識別子、サーバー名などのパラメーターは、XrayのREALITYとVisionに対応する機能です。これらの項目に対応しないコアへノードを渡すと、インポート時にパラメーターが失われたり、起動時に未知の設定としてエラーになったり、接続確立直後に切断されたりします。
Xrayコア
おすすめVLESS、XTLS Vision、REALITYなどの最新構成に対応し、現在よく使われるサブスクリプションや、新機能を継続的に利用したい方に適しています。
適した用途:日常利用のメイン環境、VLESSノード、REALITYノード
V2Flyコア
V2Rayの設定体系を引き継ぎ、VMess、WebSocket、TLS、成熟したルーティング規則を中心とする既存環境に適しています。
適した用途:VMessノード、既存のV2Ray設定、安定運用環境
対応プロトコルの違い:VLESS・XTLS・REALITYを重点的に確認
VMessは、両方の技術系統で歴史的に代表的なプロトコルの一つです。VMess + TCP、VMess + WebSocket + TLSのような成熟した構成なら、通常はXrayとV2Flyのどちらでも処理できます。サーバーのパラメーター、ユーザーID、ポート、トランスポート経路、TLSドメインが一致していれば、クライアント側の互換範囲は広くなります。この場合は、サーバーに到達できるか、時刻が同期しているか、サブスクリプションの項目が完全かを確認するほうが重要です。
VLESSはコア選びの重要な手がかりです。特にノードに `xtls-rprx-vision` やREALITYのパラメーターが同時に含まれている場合は、Xrayコアを使用してください。Visionは単純にTLSを置き換えるものではなく、適用可能な通信経路で不要な重複処理を減らすことを目的とします。REALITYは、Xrayが実装するハンドシェイクと認証の仕組みです。両者は組み合わせて使われることが多いものの、「有効にすれば速度が上がる」万能スイッチではありません。サーバーとクライアントの設定を厳密に一致させる必要があります。
トランスポート名が同じでも、設定をそのまま共用できるとは限りません。WebSocketのパスとHost、gRPCのserviceName、TLSのserverName、REALITYのpublicKey、shortId、fingerprintはいずれも接続に影響します。項目が一つ欠けるだけで、見た目が同じノードでも結果がまったく変わることがあります。サブスクリプション変換や手動でのノードコピーでは、サーバーアドレスとポートだけを残さず、各項目を一つずつ照合してください。
| プロトコルまたは機能 | Xrayコア | V2Flyコア | 選択の目安 |
|---|---|---|---|
| VMess + TCP | 利用可能 | 利用可能 | ユーザーID、ポート、時刻を重点的に確認 |
| VMess + WebSocket + TLS | 利用可能 | 利用可能 | パス、Host、SNI、証明書ドメインを確認 |
| VLESSの基本構成 | 一般的な機能 | Xrayの設定をそのまま流用できない | サーバー側の実装とクライアントの解析結果を基準にする |
| XTLS Vision | 対応 | V2Flyには対応する機能がない | xtls-rprx-visionがあればXrayを選ぶ |
| REALITY | 対応 | V2Flyには対応する機能がない | 公開鍵、短い識別子、SNIを必ず完全に保持 |
| ドメインとアドレスのルーティング | 対応 | 対応 | 規則の構文とリソースファイルをコアのバージョンごとに確認 |
性能差:コア名よりプロトコル経路が重要
同じサーバー、同じ回線、同じプロトコルであれば、XrayとV2Flyに目で見て分かるほどの速度差が出るとは限りません。接続速度はサーバーのCPU、回線の混雑、往復遅延、パケットロス率、TLSハンドシェイク、トランスポートのカプセル化、ローカルのルーティング規則にも左右されます。コアだけを替えたつもりでノードも同時に替えてしまえば、その結果からコアの性能は判断できません。
再現性のある比較テストでは、サーバー、ポート、ユーザーパラメーター、テスト時間帯を固定します。たとえばローカル回線が300 Mbps、基本往復遅延が42 ms、パケットロスが0.3%未満の条件で、同じVMess + WebSocket + TLSノードを5回連続して測定すると、ダウンロード速度は184〜197 Mbpsと181〜195 Mbpsになる場合があります。範囲が重なっているため、どちらかのコアが常に速いとは断定できません。
Xray専用のVLESS + Vision + REALITYへ変更した場合、比較条件はすでに対等ではありません。V2Flyでは同じ設定経路でテストできないためです。この場合のXrayの優位性は「その機能を利用できること」であり、同じ機能で固定の何%速いという話ではありません。技術の選定では、まずプロトコルが利用可能かを満たし、その後にスループットとリソース消費を検討します。
比較テストの方法:回線を固定し、変更する変数は一つだけ
ネットワーク側の固定項目
- 同じサーバーと同じポート
- 同じ時間帯に5回連続で測定
- 基本遅延、ジッター、パケットロス率を記録
- バックグラウンドのダウンロードとシステム更新を停止
クライアント側の固定項目
- 同じプロトコルとトランスポート設定を使用
- DNSとルーティング規則を一致させる
- 初回接続時間と継続時のスループットをそれぞれ記録
- ログで再試行やフォールバックが発生していないか確認
性能を直接比較できるのは、プロトコルの対応機能が重なる場合だけです。REALITYやVisionの環境では、無理に速度ランキングを作るのではなく、機能が一致しているかを判断してください。
結論:互換性を確認してから速度を測定
ノードにREALITYまたは `xtls-rprx-vision` が含まれていればXrayを選びます。通常のVMessノードはサーバー、ルーティング、DNSを固定して5回測定し、差が10%未満ならまず回線の揺らぎと考えてください。
クライアントの対応関係:v2rayN・v2rayNG・v2flyNGの選び方
v2rayNはデスクトップ向けのGUIクライアントで、サブスクリプション、ノード管理、システムプロキシ、ルーティング、コアの呼び出しを担当します。現在のVLESS、Vision、REALITYノードは通常、Xrayコアと組み合わせて動作します。Windowsでは、v2rayNの「設定」→「パラメーター設定」でコア関連の項目を確認し、起動ログで実際に読み込まれたコア名とバージョンを確認してください。クライアント名だけで推測してはいけません。
v2rayNGはAndroidでよく使われるクライアントで、Xrayコアの系統を採用しています。VMess、VLESS、REALITYパラメーターを含むサブスクリプションのインポートに適しています。初回接続では、システムのVpnService許可も必要です。ノードが接続済みになってもブラウザーに通信がない場合は、まず通知領域のVPN状態を確認し、次にアプリごとのプロキシ設定で対象アプリが除外されていないか確認してください。
v2flyNGはV2Flyコアの系統に対応し、V2Rayコア体系を使い、VMessと成熟したトランスポート設定を中心とするAndroid環境に適しています。v2rayNGと画面操作が似ている場合でも、基盤となる機能は同じではありません。REALITYを含む共有リンクをv2flyNGにインポートしてノード名が表示されても、重要なパラメーターがコアに受け入れられたとは限りません。
- デスクトップではまずノードのプロトコルを確認:サブスクリプションにVLESS、REALITY、Visionが含まれている場合は、v2rayNでXrayコアが使用されていることを確認します。
- Androidではコアの系統で選択:Xrayの機能が必要ならv2rayNG、V2Flyの設定体系を明確に使用するならv2flyNGを選びます。
- インポート後にノードの詳細を開く:アドレス、ポート、ユーザーID、トランスポート方式、TLS、SNI、Flow、公開鍵、短い識別子を確認します。
- 接続後に実行ログを確認:ログに表示されるコアのバージョン、設定の読み込み結果、実際のアウトバウンドを確認し、画面上の遅延値だけで接続を判断しないでください。
おすすめ構成:プロトコルに合わせてデスクトップとAndroidを統一
最新プロトコルのサブスクリプション
- デスクトップはv2rayN + Xrayコアを使用
- Androidはv2rayNGを使用
- REALITYとVisionのパラメーターを完全に保持
既存のV2Fly設定
- 元の設定バージョンに合わせて項目を管理
- Androidはv2flyNGを使用
- アップグレード前にルーティングとDNSの規則をバックアップ
同じサブスクリプションを複数のクライアントで使えるかは、実際に含まれるプロトコル項目で決まります。ノード一覧が同じように見えても、基盤の設定が完全に同等とは限りません。
サブスクリプションは取り込めるのに接続できない場合の確認手順
サブスクリプションはノード情報を配布する方法にすぎず、コアの違いを自動的に解消するものではありません。クライアントは取得後、共有リンクや構造化データを解析し、パラメーターをコア設定へ変換します。どこか一つでも項目を認識できなければ、「ノードは一覧にあるのに接続できない」状態になることがあります。確認は、サブスクリプション解析、コアの読み込み、ネットワーク接続、プロトコルハンドシェイクの4段階に沿って進めてください。
1段階目はノードの詳細確認です。プロトコルがVLESS、セキュリティ項目がREALITY、Flowが `xtls-rprx-vision` なら、現在のクライアントが確実にXrayを使用しているか確認します。2段階目はログに `unknown field`、`failed to load config`、`failed to dial`、またはハンドシェイク失敗がないか確認します。設定の読み込みエラーは項目またはコアの不一致を示すことが多く、ダイヤルのタイムアウトはアドレス、ポート、回線、サーバー状態に関係する可能性が高いです。
3段階目はローカルプロキシポートの確認です。v2rayNでよく使われるSOCKSとHTTPの待ち受けポートはそれぞれ10808、10809ですが、変更している場合は「設定」→「パラメーター設定」に表示される実際の値を基準にします。ブラウザーに10809を手動設定していても、クライアントが10808で待ち受けていれば、コアが正常に接続していてもブラウザーの通信は正しいインバウンドに入りません。
4段階目は、一時的に基本的なルーティングでテストします。複雑な規則によってテスト対象のドメインがダイレクトのアウトバウンドへ送られ、「ノードが機能していない」と誤認することがあります。まずグローバルプロキシまたは最小限の規則で接続を確認し、成功後にドメイン分割へ戻して規則の順序を一つずつ確認します。ルーティングは通常、設定順に照合されます。広すぎるダイレクト規則を前に置くと、後続のプロキシ規則を先に奪ってしまいます。
- 設定の読み込み段階でログが失敗:コアの種類、設定バージョン、ノード項目を確認。
- ログにリモートへの接続タイムアウトが表示される:サーバーアドレス、ポート、ファイアウォール、現在の回線を確認。
- ハンドシェイク直後に切断:ユーザーID、SNI、Flow、REALITY公開鍵、短い識別子を確認。
- コアは正常に動作しているのにWebページへ通信がない:システムプロキシ、VpnServiceの状態、ローカル待ち受けポートを確認。
- 一部のWebサイトだけ利用できない:DNS、ドメイン規則、アドレス規則、規則の順序を確認。
切り分けの原則:まずエラーが発生した層を確認
設定がまだ正常に読み込まれていない段階で、DNSを何度も変更する必要はありません。リモートポートに到達できていない場合も、分割ルーティングを調整する必要はありません。ログを使って問題を設定、ダイヤル、ハンドシェイク、ルーティングのどの層に分類できるか確認すれば、無駄な操作を大幅に減らせます。
バージョンアップと設定移行で注意する点
コアのアップグレードは実行ファイルを置き換えるだけではありません。バージョンの進行に伴い、設定項目、デフォルト動作、ルーティング用リソース、プロトコル実装が変更される場合があります。長期運用する環境では、利用中のバージョン、クライアントのバージョン、ノードの種類、カスタム規則を記録し、アップグレード後は同じテスト項目で確認してください。コアが起動したことだけを確認して終わりにしてはいけません。
固定したテスト基準の例として、Xray 25.6.8とV2Fly 5.30.0を別々のバージョン系列として記録し、テスト日、設定の入手元、使用プロトコルも併記します。これらの数字は実験を再現するためのもので、リリース時期や機能レベルが対応していることを示すものではありません。Xrayの日付形式のバージョンとV2Flyの5.xバージョンは、数字の大小で新旧を比較できません。
V2Fly環境からXrayへ移行する場合、VMess、基本的なインバウンド、一般的なルーティングは個別に変換できますが、DNS、ポリシー、トランスポートパラメーター、リソースファイルも確認が必要です。逆方向へ移行する場合は、まずXray専用の設定を削除または置き換えます。REALITYやVisionなどの項目を含むアウトバウンドを、そのままV2Flyに渡すことはできません。最も安全なのは元の設定を残し、コピーを作って移行し、一度に一つのモジュールだけを変更する方法です。
| 移行項目 | 確認内容 | 検証方法 |
|---|---|---|
| インバウンドポート | 10808、10809がシステムプロキシと一致しているか | 起動ログで待ち受けアドレスを確認 |
| ノードのプロトコル | VMess、VLESS、セキュリティ層が対象コアに対応しているか | ノードの詳細を開き、読み込みログを確認 |
| トランスポート設定 | パス、Host、serviceName、SNIが完全か | 接続後にハンドシェイクエラーを確認 |
| ルーティング規則 | 規則の順序、ドメイン照合、アドレス照合 | ダイレクト用ドメインとプロキシ用ドメインを個別にテスト |
| DNS設定 | 問い合わせ先、ドメインポリシー、ローカルフォールバック | システムの名前解決とコアのログを比較 |
よくある選択の疑問
多くのユーザーは2種類のコアを同時に管理する必要はありません。サブスクリプションに含まれる最も複雑なノード機能を基準に選べば十分です。REALITYまたはVisionがあればXray、検証済みのVMessと一般的なトランスポートだけで、既存のV2Fly設定が長期間安定しているなら、そのまま使い続けられます。コアを頻繁に切り替えると、設定差分とトラブル対処のコストが増えるだけです。
サブスクリプションにVMessとREALITYの両方がある場合、どのコアを選ぶべき?
Xrayを選びます。一般的なVMessノードを処理できるうえ、VLESS、Vision、REALITYのパラメーターも認識できます。インポート後も、REALITYノードの公開鍵、短い識別子、SNI、Flowを一つずつ確認してください。
ノードのインポートに成功したなら、コアの互換性も確実?
いいえ。インポートの成功は、クライアントがノード情報の一部を解析できたことを示すだけです。接続前にノードの詳細を開き、接続後にコアのログを確認してください。未知の項目や設定読み込みエラーが出た場合は、速度測定を繰り返すのではなく、まずコアを確認します。
VMessノードはXrayとV2Flyのどちらが速い?
環境を離れた固定の答えはありません。サーバー、トランスポート、DNS、ルーティングを固定して5回連続で測定し、遅延とパケットロスも記録します。差が10%未満なら、まず回線の変動を確認し、すぐにコアが原因だと決めつけないでください。
v2rayNGとv2flyNGですべてのノードをそのまま共用できる?
「すべてのノード」と考えることはできません。一般的なVMess設定は両方で使える場合がありますが、Xray専用の項目がV2Flyの機能へ自動変換されるわけではありません。サブスクリプションを共用する前に、REALITYやVisionなどのパラメーターが含まれていないか確認してください。
コアを替えたらWebページが開けない場合、まずどこを直す?
まず起動ログで設定が読み込まれていることを確認し、次に10808と10809の待ち受け状態を確認します。その後、システムプロキシまたはVpnServiceの状態を確認してください。コア、インバウンド、システム通信の入口がすべて正常になってから、DNSとルーティングを確認します。
まとめると、XrayとV2Flyの本質的な違いはブランド名の置き換えではなく、機能の進む方向です。XrayはVLESS、XTLS Vision、REALITY、最新のサブスクリプション互換性が必要な環境に適しています。V2FlyはV2Rayの設定体系と成熟したVMess環境を継続して保守したい場合に向いています。クライアントは、デスクトップではv2rayNでXrayコアを確認し、Androidでは系統に応じてv2rayNGまたはv2flyNGを選びます。
信頼できる選定基準は、ノードの項目、実行ログ、再現可能なテストです。まずプロトコルが対応しているかを確認し、次にトランスポート、セキュリティ層、ルーティングを照合し、最後に同じ条件で性能を比較します。これにより、「ノードをインポートできれば互換性がある」「コアを替えれば必ず速くなる」という2つの典型的な誤解を避けられます。