ノードのプロトコル、通信方式、セキュリティ層、flowを確認してからクライアントを選びましょう。VLESS + REALITYやXTLS Visionが必要なら、Androidではv2rayNGが第一候補です。VMessやWebSocket + TLSのノードを利用中で、サーバー側もV2Flyの設定を採用している場合は、v2flyNGも選択肢になります。この記事では両者の派生関係、設定の互換性、インポート後の確認手順を解説します。Androidクライアントを比較したい方や、PCとAndroidで同じサブスクリプションを使いたい方におすすめです。
1. Project V・V2Fly・Xrayの関係
Project Vはネットワークプロキシ関連のツールや技術をまとめたプロジェクトで、V2Rayはその中核となるソフトウェアです。V2FlyコミュニティはV2Rayコアの開発を引き継ぎ、Xrayは2020年にV2Rayのコードを基に分岐しました。共通の歴史を持っていますが、現在は別々に開発されているコアです。設定ファイルが似ているからといって、すべての機能を相互に置き換えられるわけではありません。
コアは接続の確立、ルーティング、DNS処理、データ転送を担います。クライアントはノード一覧やサブスクリプションを管理するほか、設定画面を提供してコアを起動します。Android版のv2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。デスクトップ版のv2rayNはクライアントであり、同名の別プロトコルでも、特定のコアを指す別名でもありません。
- プロジェクト名:XrayとV2Flyは、異なるコア開発の系統を指します。
- クライアント名:v2rayN、v2rayNG、v2flyNGは、ユーザーが操作するアプリを指します。
- プロトコル名:VMess、VLESSは、クライアントとサーバー間でプロキシデータをやり取りするためのプロトコルです。
- 通信方式・セキュリティ層:WebSocket、TCP、TLS、REALITYなど、接続を構成する要素を指します。クライアント名とは別のものです。
つまり、「ノードにV2Rayと書いてあるが、どのアプリを入れればよいか」という情報だけでは選べません。提供元が複数の設定をまとめてV2Rayノードと呼んでいる場合もあります。ノードの詳細と、サーバー側で必要とされるコアの機能を確認しましょう。
2. プロトコル対応を比較:VLESSとREALITYは別物
混同しやすいのが、VLESS、REALITY、XTLSを同じ機能として扱うことです。VLESSはプロキシプロトコルであり、接続全体を保護する暗号化層は備えていません。TLSやREALITYは、別途選択するセキュリティ層です。XTLS Visionはフロー制御とデータ処理方式に関わり、一般的な設定項目はflow=xtls-rprx-visionです。
| ノードの機能 | Xrayコア | V2Flyコア | 選ぶ際の確認項目 |
|---|---|---|---|
| VMess | 対応 | 対応 | 通信方式、TLS、パス、サーバー側の互換性要件 |
| 基本的なVLESS | 対応 | 基本的なVLESSを実装。使用するバージョンと設定形式を確認してください | vless://の形式だけで判断せず、セキュリティ層とflowも確認 |
| WebSocket + TLS | 一般的な組み合わせに対応 | 一般的な組み合わせに対応 | Host、パス、サーバー名、証明書の検証 |
| REALITY | 対応 | XrayのREALITY設定には対応しない | サーバー名、公開鍵、short ID、フィンガープリント |
| XTLS Vision | 互換性のあるVLESS構成に対応 | XrayのVision flowには非対応 | xtls-rprx-visionがサーバー側の要件と一致しているか |
「基本的なVLESSに対応」していても、あらゆるVLESS共有リンクが使えるとは限りません。リンクにはsecurity=reality、type=tcp、flow=xtls-rprx-visionが同時に含まれることがあります。必要な機能のどれか一つでも合わないと、インポートできても起動しない、あるいは起動後のハンドシェイクに失敗する可能性があります。
結論:REALITYまたはVisionが必要ならXray対応を選ぶ
ノードの詳細でセキュリティ層とflowを確認しましょう。REALITYまたはxtls-rprx-visionが明記されている場合、Androidではv2rayNGを優先し、アプリ内のコアが十分に新しいことも確認してください。VLESSという表示だけを根拠にv2flyNGを試すのは避けましょう。
3. v2rayNGとv2flyNG:利用中のノードからクライアントを選ぶ
アプリ名は似ていますが、選び方は難しくありません。まずノード提供元の設定要件を優先し、次に自分の管理方法を考えましょう。対応範囲が広いからといって、すべての回線が速くなるわけではありません。同じ一般的なVMess回線なら、クライアント名より回線品質、出口の混雑、ルーティング設定の影響が大きいことがほとんどです。
v2rayNG · Xrayコア
おすすめVLESS + REALITYやXTLS Visionが必要な場合、またはXray互換ノードが複数混在するサブスクリプションを使う場合におすすめです。インポート後もセキュリティ層、flow、コアのバージョンを確認してください。リンクを認識できても、サーバーへの接続が成功するとは限りません。
おすすめの用途:初めてのクライアント選び、REALITYノード、Xray固有の機能を日常的に使う場合
v2flyNG · V2Flyコア
VMessや一般的なWebSocket + TLSの設定を問題なく使えていて、サーバーの案内や設定管理もV2Flyを前提としている場合は、そのまま利用できます。別系統のコアを使うアプリであり、無理にXrayへ置き換えるべき「旧版アプリ」ではありません。
おすすめの用途:既存のV2Fly環境、動作確認済みの設定、現在の設定体系を維持したい場合
現在のクライアントが正常に動いているなら、切り替えで何を解決したいのかを先に確認しましょう。新しいノードでREALITYが必要、現在のコアがflowを認識しないといったケースは、明確な機能上の要件です。一方、特定のコアが「速いらしい」というだけでは、移行する理由として不十分です。アップデートや端末変更の前にサブスクリプションURLと必要なルーティング設定を保存してください。ただし、アカウント情報を含むリンクを公開の掲示板に投稿してはいけません。
- サブスクリプションURLしか分からない:インポート後にノードの詳細を確認するか、推奨コアと必要な最低バージョンを提供元に問い合わせます。
- 一般的なVMessノードのみ:どちらのコアも候補になります。現在の設定と実際の接続結果を見て選びましょう。
- 複数の方式が混在するサブスクリプション:各ノードが正しく解析されているか確認します。特にREALITYとVisionの項目に注意してください。
- 独自のJSON設定が必要:使用するコアの設定形式に合わせてください。Xrayの設定ファイル全体をV2Flyの設定としてそのまま読み込ませないでください。
4. 共有リンクのどの項目が互換性を左右するか
サブスクリプションはノード一覧の配布方法であり、接続プロトコルではありません。Base64は一覧全体のエンコードによく使われ、vmess://とvless://はノード共有用の形式です。Base64で解決できるのはテキストの表現方法だけです。REALITY非対応のコアにREALITY機能を追加するものではなく、情報を保護する手段としても使えません。
VLESSノードを確認するときは、項目を次の4グループに分けて考えると分かりやすくなります。以下は各パラメーターの意味を示したもので、実際に使えるノードリンクではありません。具体的な値はノード提供元から入手し、推測で組み立てないでください。
| 項目グループ | 一般的な項目 | 確認ポイント |
|---|---|---|
| 接続先・認証情報 | サーバーアドレス、ポート、UUID | サーバー側の設定と一致させます。ポートが443でも、ほかの項目が正しいとは限りません。 |
| 通信方式 | type=tcp、type=ws、path、host |
WebSocketのパスとHostは、任意に削除・変更しないでください。 |
| セキュリティ層 | security=tlsまたはsecurity=reality、sni、fp |
サーバー名と接続先アドレスを区別し、フィンガープリントは提供元の指定に従います。 |
| REALITY・フロー制御 | pbk、sid、flow=xtls-rprx-vision |
公開鍵、short ID、flowを確認します。通常のTLS用パラメーターに置き換えないでください。 |
REALITYクライアントでは、サーバーから提供された公開鍵情報を使います。秘密鍵はサーバー側に保管されます。バージョンによって編集画面の項目名が異なる場合があるため、該当バージョンの説明を参照して対応関係を確認してください。共有リンクの公開鍵は、ユーザーが新たに生成する値ではありません。適当に変更すると、ハンドシェイクに必要な対応関係が崩れます。
- クエリパラメーターの欠落を防ぐため、リンク全体またはサブスクリプションからインポートします。
- ノード編集画面を開き、プロトコル、通信方式、セキュリティ層、flowがすべて保持されていることを確認します。
- ノードが読み飛ばされた場合は、まずインポート形式とアプリのバージョンを確認します。「表示されない」だけでサーバーの停止と判断しないでください。
- ノードが表示されるのに接続できない場合は、実際のコアログとサーバー側のパラメーターを確認します。
5. Androidでのインポートと接続確認:ポートの役割を区別する
一般的な日本語UIのv2rayNGでは、サブスクリプション管理は通常、サイドメニューの「サブスクリプショングループ設定」にあります。URLを追加したら、メイン画面のメニューから「サブスクリプションを更新」を実行します。単体の共有リンクは、通常、右上の「+」→「クリップボードからインポート」で追加できます。バージョンによって表示が多少異なる場合があり、v2flyNGも現在の画面表示を確認してください。特定のバージョンのメニューを、すべてのバージョンで共通する手順として扱わないようにしましょう。
上記は速度測定の結果でも、すべてのバージョンの初期値でもありません。サーバー側ポートは接続先サーバーへの入口、ローカルリスナーポートはアプリからクライアントへ通信を渡すためのポートです。混同して設定しないでください。バージョンによっては混合リスナーポートが使われます。実際の設定を確認し、解説記事をそのまま再現するために存在しないHTTPの入口を追加しないでください。
- バージョンを記録:「このアプリについて」画面または起動ログで、アプリとコアそれぞれのバージョンを確認します。問題を報告するときは両方を伝えてください。アプリのバージョン番号はコアのバージョン番号の代わりにはなりません。
- ノードを確認:インポートしたノードを選択し、サーバーポートとセキュリティ層を確認します。10808などのローカルポートをサーバーポートに入力しないでください。
- サービスを起動:VPNモードで初めて起動するときは、Androidのシステム画面に従って許可します。テスト前に、システムのVPN接続を使用しているほかのサービスを停止してください。
- 接続先を確認:プロキシ経由でアクセスする対象を開き、ログに接続とルーティングの記録があるか確認します。実行中と表示されるだけでは、対象の通信がプロキシを経由しているとは限りません。
- テスト結果の見方:TCP遅延で分かるのは特定の接続テストの結果だけです。認証、TLS、REALITY、実際のアプリでのアクセスをすべて検証できるわけではありません。
6. PC版v2rayNとAndroidでサブスクリプションを共有
サブスクリプションを共有すればノードの再入力を減らせますが、各端末のローカル設定までは同期されません。PCのシステムプロキシとAndroidのVPN許可、アプリ別ルール、DNS設定はそれぞれ独立しています。同じ名前のノードを選んでいても、ルーティングルールが異なれば、同じ接続先に対して別の出口を使うことがあります。
おすすめの方法:ノードの取得元は共有し、端末ごとの設定は個別に確認
PC版 · v2rayN
- 同じサブスクリプションURLを追加し、手動で更新してノードを確認します。
- REALITYやVisionが必要な場合は、該当機能に対応したXrayコアで現在の設定が実行されていることを確認します。
- システムプロキシまたはTUNが有効か、対象がプロキシルールに一致しているかをそれぞれ確認します。
Android · v2rayNGまたはv2flyNG
- ノードの機能に合わせてクライアントを選び、同じサブスクリプションをインポートします。
- 対象アプリがアプリ別ルールで除外されていないか確認します。
- VPNサービス、DNS設定、バックグラウンドでの動作状態を確認します。
同じサブスクリプションから同じノードを取得できますが、更新のタイミング、インポートできる形式、ローカルルールは異なる場合があります。各端末で個別に確認してください。
ネットワークを切り替えた後に「PCでは使えるがAndroidでは使えない」場合は、まず両端末で選択中のノードとコアの対応機能を比較し、次にAndroidのアプリ別ルーティングと名前解決の経路を確認します。サブスクリプションが同じだからといって、これらの手順を省略しないでください。サブスクリプションURLにはアクセストークンが含まれる場合があります。調査用のスクリーンショットでは、URL全体、UUIDなどのアカウント情報を隠してください。
7. インポート失敗・ハンドシェイク失敗・速度低下の確認手順
コア選びで解決できるのは機能の互換性であり、あらゆるネットワーク問題ではありません。「どのコアが優れているか」より、どの段階でエラーが起きたかのほうが診断に役立ちます。まずインポートできるか、次に起動できるかを確認し、その後サーバー側のハンドシェイクと接続先へのアクセスを調べ、最後に性能を比較しましょう。
| 症状 | 優先して確認する項目 | 次に行うこと |
|---|---|---|
| サブスクリプション更新後、一部のノードが表示されない | 取得した内容、共有形式、クライアントの解析対応状況 | 完全な共有リンクを1件使って確認し、アプリのバージョンも調べます。 |
| 起動直後に設定エラーが表示される | 未知の項目、未対応のflow、独自の設定構造 | 起動ログを確認し、実際に動作しているコアを特定します。 |
| REALITYのハンドシェイクに失敗する | 公開鍵、short ID、サーバー名、フィンガープリント、システム時刻 | サーバーから提供された元のパラメーターと照合し、一つずつ元に戻します。 |
| ブラウザーは使えるが、特定のアプリは使えない | アプリ別プロキシ設定、ルーティング、DNS、接続先のプロトコル | コアをすぐ変更するのではなく、該当アプリの通信がクライアントに届いているか確認します。 |
| アクセスできるが速度が遅い | 回線の混雑、パケットロス、出口の制限、端末の負荷 | ノードと接続先を固定して繰り返しテストし、異なる回線同士の比較は避けます。 |
速度向上のためにV2FlyからXrayへ切り替えるべき?
一概には言えません。Visionの処理方式は適用条件によって異なる結果をもたらす可能性がありますが、どのネットワークでも速くなるとは限りません。有効な比較には、同じ端末、同じネットワーク、同じサーバー、同種の設定が必要です。ハンドシェイク時間、ダウンロード速度、安定性を分けて記録しましょう。プロトコルや回線が変わったテストでは、その差をすべてコアの違いによるものとは判断できません。
ノードにVLESSとしか書かれていない場合、まず何を確認する?
- セキュリティ層は通常のTLSですか、それともREALITYですか?
xtls-rprx-visionが必要ですか?通信方式は何ですか?- どのコア系統が推奨されていますか?必要な最低コアバージョンはいくつですか?
- サーバーアドレスとUUIDだけでなく、完全な共有リンクを提供してもらえますか?
結論:設定を合わせてから性能を比べる
REALITYまたはVisionのノードには、まずv2rayNGを選びましょう。既存のV2Fly設定を使う場合は、先にv2flyNGとの互換性を確認してください。接続できた後でルーティング、DNS、回線の状態を調べ、機能に基づくクライアント選びと速度テストを分けて進めます。