Windows、macOS、Linuxではv2rayNを優先します。AndroidでXrayのプロトコル機能が必要ならv2rayNG、v2flyのコア設定体系を継続するならv2flyNGを選びます。クライアントのインストール、サブスクリプションの移行、VLESS・VMess・Realityの互換性確認を行う方に適した内容です。読み終えれば、ノードのプロトコルと利用環境に応じて選択できます。
まずプラットフォームとノードの種類で候補を絞る
3つのソフトウェアは名前が似ていますが、用途は異なります。v2rayNはWindows、macOS、Linuxに対応するデスクトップクライアントです。v2rayNGとv2flyNGはAndroid向けです。使用するプラットフォームだけで多くの誤った選択肢を除外できます。デスクトップではv2rayNの設定に進み、Androidではコアの系統を見てどちらかを選びます。
2つ目の判断材料はノード設定です。サブスクリプションがVMess、Shadowsocks、一般的なVLESSだけなら、3つのクライアントに対応するコアで一般的な構成の一部を処理できます。設定にVLESS、XTLS Vision、Reality、Muxパラメータ、Xray専用のトランスポート項目が明記されている場合は、Xrayコアのクライアントを優先してください。リンクをインポートできることと、現在のコアがリンク内の全項目を完全に実行できることは別です。
3つ目の判断材料は設定の出所です。サービス提供元がXray、VLESS Reality、Visionを明記している場合、デスクトップではv2rayN、Androidではv2rayNGを使います。既存のv2fly JSON設定を使う場合、v2flyのルーティング仕様を維持したい場合、またはノード管理側がv2fly-coreで設定を生成している場合は、Androidではv2flyNGを選ぶのが直接的です。
v2rayN
おすすめデスクトップ用の統合エントリーとして、サブスクリプション、システムプロキシ、ルーティングルール、複数のコア設定を管理できます。日常のデスクトップ環境に適しています。
対象:Windows、macOS、Linuxのメイン端末
v2rayNG
Android向けのXrayコアクライアントです。VLESS、Reality、VMessや、アプリごとのプロキシ設定が必要なモバイル環境に適しています。
対象:Xrayノード、Androidでの日常利用
v2flyNG
Android向けのv2flyコアクライアントです。設定モデルはv2flyエコシステムと一貫しており、既存のVMessや標準的なルーティング構成に適しています。
対象:v2fly設定、既存ノードとの互換性
結論:機能数よりプラットフォームを優先
まず現在のOSに対応する候補へ絞り、その後サブスクリプションで使われるコアの機能を確認します。デスクトップでは3つを何度も比較する必要はありません。Androidでも画面が似ているという理由だけで、Xrayとv2flyの設定差を見落とさないようにしましょう。
コアの系統とプロトコル対応の違い
クライアントは画面、サブスクリプション、設定生成、システム連携を担当し、実際に接続を確立するのはコアです。v2rayNとv2rayNGの主な設定経路はXray-coreを中心とし、v2flyNGはv2fly-coreに対応します。どちらのコアもVMess、一般的なトランスポート、ルーティングルールを処理できますが、VLESS、XTLS Vision、Realityの組み合わせではXrayとのエコシステム上の対応が明確です。
バージョンはクライアント名だけで判断できません。たとえばv2rayN 7.xとv2rayNG 1.10.xの画面体系では、クライアントとコアがそれぞれ別に更新されます。クライアントをアップデートした後も、概要ページ、コア管理ページ、実行ログで実際に読み込まれているコアを確認してください。サブスクリプションリンクのプロトコル名は最初の情報にすぎず、トランスポート、安全層、フロー制御の項目も互換性に影響します。
| 比較項目 | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| 主なプラットフォーム | Windows、macOS、Linux | Android | Android |
| 主なコアの系統 | Xray-core。バージョンによっては他のコアも選択可能 | Xray-core | v2fly-core |
| VMess | 対応 | 対応 | 対応 |
| VLESS | Xray設定に適する | Xray設定に適する | v2flyコアと設定項目に基づいて確認 |
| RealityとVision | 優先して選ぶ | 優先して選ぶ | この種類のノードでは優先しない |
| システム連携 | システムプロキシやTUNなどのデスクトップ向け機能 | Android VPNインターフェースとアプリごとのプロキシ | Android VPNインターフェースとルーティング設定 |
サブスクリプション管理と複数端末での運用
サブスクリプション管理で重要なのはボタンの数ではなく、更新、グループ分け、失敗時の復旧手順が明確かどうかです。v2rayNは複数のサブスクリプション元の管理に適しており、ノードをグループごとに保存し、デスクトップ上で速度測定、絞り込み、アクティブサーバーへの設定まで行えます。更新後に一覧が空になった場合は、まずサブスクリプショングループが有効か確認し、次に更新ログのネットワークエラーと解析エラーを確認してください。
v2rayNGとv2flyNGはいずれもAndroidでのサブスクリプション管理に適していますが、同じサブスクリプションでも2つのコアにまったく同じノード項目が出力されるとは限りません。サービスによってはクライアントの種類に応じて内容を変えたり、Xray専用ノードと汎用VMessノードを同じ一覧に含めたりします。インポート後はノード詳細を開き、アドレス、ポート、トランスポート、安全層、SNIを確認してください。ノード名だけで判断してはいけません。
デスクトップとAndroidで同じサブスクリプションを使う場合、端末間でデータベースをエクスポートする必要はありません。同じサブスクリプションURLを各端末に追加し、それぞれで更新する方法が安定します。ノードの削除、並び順、現在の選択状態は通常ローカルデータなので、一方の端末で手動変更した順序がもう一方へ自動同期されるとは考えないでください。
おすすめの構成:デスクトップとAndroidで個別に購読
デスクトップ(v2rayN)
- サブスクリプショングループを追加し、元のURLを保存する
- 更新後にまず遅延を測定し、アクティブサーバーに設定する
- 「設定」→「パラメータ設定」でローカルポートを確認する
- 用途に応じてシステムプロキシまたはTUNを選ぶ
Android(v2rayNG)
- 同じサブスクリプションURLを追加する
- RealityノードのSNIとフィンガープリント項目を確認する
- 必要に応じてアプリごとのプロキシを有効にする
- ネットワークを切り替えた後、接続テストを再実行する
サブスクリプション元は統一し、クライアント設定は端末ごとに管理します。デスクトップのルールとモバイルのアプリ一覧が互いに上書きされないため、トラブルシューティングも明確になります。
結論:同じサブスクリプションでも実行設定は同じとは限らない
ノードサーバーは共用できますが、システムプロキシ、DNS、ルーティング、アプリごとの一覧は端末側の設定です。クライアントを変更するときはサブスクリプションURLを移行し、新しいプラットフォームで連携方法を設定し直してください。
ルーティング、システムプロキシ、アプリごとの設定
ルーティングによって、どの接続をプロキシへ送り、どれを直接接続するかが決まります。v2rayNの強みは、デスクトップのシステムプロキシ、ルールベースのルーティング、TUN環境を1つのクライアントでまとめて扱えることです。通常のブラウザやシステムプロキシに従うアプリは、まずシステムプロキシを有効にします。システムプロキシを参照しないプログラムでのみ、TUNを検討してください。両方を同時に有効にする場合は、DNSとルーティングが重複処理されていないか確認します。
Androidにはデスクトップのシステムプロキシと同じ操作体系はありません。v2rayNGとv2flyNGは通常、システムが提供するVPNインターフェースで通信を取り込み、アプリごとにプロキシへ送るかどうかを指定します。銀行アプリ、LANツール、業務アプリを直接接続のままにしたい場合は、ドメインを1つずつ記述するよりアプリごとのプロキシ設定が直接的です。サイトのドメイン、宛先IP、地域ルールで振り分ける場合は、コアのルーティングを使用します。
ルーティングルールは通常、上から順に照合されます。ドメインルールに一致すると指定した出口へ送られます。IPの解決が必要なルールはDNSの結果に影響される場合があります。一致しない接続は最終的なデフォルト出口へ進みます。広すぎるルールを先に置くと、後ろの細かなルールが実行されません。そのため、カスタムルールは具体的なドメインと宛先アドレスを先に置き、その後に範囲の広いgeosite、geoip、フォールバックルールを配置します。
- ステップ1:最小構成を作る。既知の動作するノードを1つだけ残し、追加のルーティングと複雑なDNSオプションを無効にして、まず基本接続を確認します。
- ステップ2:連携方法を確認する。v2rayNではシステムプロキシの状態と10808、10809などのローカルポートを確認し、Androidではシステムステータスバーに表示されるVPN接続状態を確認します。
- ステップ3:ルールを1つずつ追加する。一度に追加するドメインまたはIP条件を1グループに限定し、コアのログで宛先アドレス、アウトバウンドタグ、エラー原因を確認します。
- ステップ4:直接接続とプロキシをテストする。直接接続すべきサイトとプロキシを通すべき宛先にそれぞれアクセスし、1つのウェブページだけで全ルールを判断しないようにします。
- ステップ5:アプリの対象範囲を戻す。Androidではアプリごとの一覧を再び追加し、デスクトップではTUN連携が必要なプログラムを起動します。
移行と検証:接続できる状態から長期利用できる状態へ
クライアントを移行するときに最も起きやすい問題は、生成済みのJSONをそのままコピーすることです。クライアントは自身のバージョン、コア、画面オプションに応じて実行設定を再生成するため、古いファイルのアウトバウンドタグ、DNS構造、実験的な項目が新しい環境で使えるとは限りません。まずサブスクリプションURLと単一ノードの共有リンクを移行し、移行先のクライアントでルーティングとシステム連携を設定し直してください。
単一ノードの検証では、サーバーアドレス、リモートポート、プロトコル、トランスポート方式、安全層の5項目を記録します。VLESS RealityではserverName、publicKey、shortId、flowも確認します。VMess WebSocketではHostとパスを、TLS接続ではSNIを確認してください。サブスクリプション変換ツールが項目を1つでも省略すると、ノードは存在するのにハンドシェイクに失敗することがあります。
性能比較でも条件を統一する必要があります。同じネットワークで同じサーバーを選び、接続確立時間とダウンロード速度を3回連続で測定します。クライアントを切り替えるたびに、古い接続が終了するまで待ってください。一方がグローバルプロキシ、もう一方がルールベースの振り分けを使っている場合、結果をそのままコアの性能差とは判断できません。ログに出るタイムアウト、DNS失敗、接続拒否のほうが、単発の遅延値より問題の特定に役立ちます。
- v2rayNの確認項目:「設定」→「パラメータ設定」を開き、ローカル待ち受けポート、ログレベル、システムプロキシ関連の項目を確認します。その後、メイン一覧でアクティブサーバーを設定します。
- v2rayNGの確認項目:ノード詳細を開いてプロトコル項目を確認し、「設定」→「アプリごとのプロキシ」で対象アプリの範囲を確認してから接続を開始します。
- v2flyNGの確認項目:サブスクリプションがv2flyコアで実行できる設定を提供していることを確認し、VMess、トランスポート層、ルーティング項目を確認してから接続します。
- 共通の確認項目:まず他のローカルプロキシプログラムを終了し、10808、10809、またはカスタムポートで待ち受けが競合していないか確認します。
- ネットワークの確認項目:Wi-Fiとモバイルネットワークでそれぞれテストします。一方のネットワークだけで失敗する場合は、まずDNS、IPv6、ネットワーク側の制限を確認してください。
選定手順
1. OS:デスクトップ / Android
2. ノードプロトコル:VMess / VLESS / Reality
3. 必要なコア:Xray / v2fly
4. 連携方法:システムプロキシ / TUN / アプリごとのプロキシ
5. 検証結果:ログ、ポート、DNS、ルーティング出口
よくある選定の質問
名前が似ていても、設定の互換性が自動的に得られるわけではありません。インポート失敗、接続後の通信断、一部のアプリだけ利用できるといった場合は、プラットフォーム、コア、プロトコル、連携方法の4つの層に戻って確認してください。ここではインストール後によくある判断ポイントを取り上げます。
Windowsではv2rayNGをインストールすべきですか?
必要ありません。Windows、macOS、Linuxではv2rayNを使用し、v2rayNGはAndroid向けです。デスクトップにインストールしたら、まずサブスクリプションを更新し、「設定」→「パラメータ設定」でローカルポートを確認してください。
AndroidにRealityノードがあります。どれを選べばよいですか?
Xrayコアを使用するv2rayNGを選びます。インポート後にノード詳細を開き、VLESS、Reality、SNI、publicKey、shortId、flowがすべて揃っているか確認してから接続テストを実行してください。
VMessのサブスクリプションにはv2flyNGが必須ですか?
いいえ。VMessはXrayとv2flyのどちらの系統でも処理できます。AndroidでVLESS Realityノードも含まれる場合はv2rayNGを優先し、設定管理側がv2flyコアを明確に採用している場合にv2flyNGを選びます。
サブスクリプションのインポートは成功したのに、すべてのノードがタイムアウトする場合は?
まず端末の時刻と現在のネットワークを確認し、次にサーバーアドレス、リモートポート、安全層を確認します。デスクトップではコアのログにDNS失敗やポート使用中のエラーがないか確認し、Androidでは一度ネットワークを切り替えてから再接続します。
3つのクライアントを同時にインストールする必要がありますか?
必要ありません。端末ごとに対応するクライアントだけを残してください。デスクトップではv2rayN、Androidではコアの要件に応じてv2rayNGまたはv2flyNGを選びます。同種のクライアントを並行して動かすと、ポートやVPNの連携が競合する可能性があります。