Windows、macOS、Linuxで使うなら、まずv2rayN 7.xを確認しましょう。Androidの主力候補はXrayコアを採用したv2rayNG 1.10.xです。VMess、WebSocket、TLSなど標準的な設定を使う場合や、v2flyコアとの互換性を切り分けたい場合は、v2flyNG 1.8.xを予備として残せます。ここから具体的な選び方、サブスクリプションのインポート方法、両端末の設定例を説明します。
まずプラットフォームで候補を絞る
3つのソフトは、同じプラットフォーム上で置き換えて使う関係ではありません。v2rayN 7.xはデスクトップ向けで、Windows、macOS、Linuxに対応します。v2rayNGとv2flyNGはAndroid向けです。最初に端末で絞れば、候補は3つから1つまたは2つになります。
デスクトップでは、システムプロキシ、トレイ操作、複数のサブスクリプショングループ、詳細なルーティング編集が必要になるため、v2rayNが適しています。Androidでは、システムのVPNインターフェースを通じてアプリ通信を制御するため、v2rayNGとv2flyNGの操作のほうがモバイル端末に合っています。
v2rayN 7.x
おすすめデスクトップ向けの設定項目が充実しており、複数のサブスクリプショングループを管理できます。システムプロキシの切り替えや、コアのログ、接続情報の確認も可能です。
おすすめ: Windows、macOS、Linuxでの常用
v2rayNG 1.10.x
Android向けでXrayコアを採用し、VLESS、VMess、Trojanや一般的なトランスポートの組み合わせに幅広く対応します。
おすすめ: Androidの主力、Xrayの機能を使うサブスクリプション
v2flyNG 1.8.x
Android向けでv2flyコアを採用。標準的なV2Ray設定の利用に適しており、Xray環境との互換性を比較する用途にも便利です。
おすすめ: 標準的なVMess設定、v2flyコアの予備
デスクトップ端末だけなら、v2rayNから始めれば十分です。Android端末だけなら、まずサブスクリプションにRealityなどXray系のパラメータが含まれるか確認しましょう。含まれていればv2rayNGを優先し、含まれていなければ2つのAndroidクライアントを次の段階で比較できます。
コア系列がプロトコルとパラメータの互換性を左右する
クライアントは画面、サブスクリプション、システム連携を担当しますが、ノード設定を解析して接続を確立するのはコアです。名前が似ていても、対応フィールドが完全に同じとは限りません。特にVLESS、Reality、フロー制御、トランスポートのセキュリティパラメータでは、ボタン配置よりコアがフィールドを認識できるかどうかが重要です。
v2rayNGはXrayコアを使用するため、VLESS、XTLS Vision、RealityなどXray拡張パラメータを含む設定に適しています。v2flyNGはv2flyコアを使用し、標準的なV2RayエコシステムのVMess、VLESS、WebSocket、gRPC、TLSなどの組み合わせに向いています。v2rayN 7.xはデスクトップ管理フロントエンドで、実際の接続機能は選択中のコアとバージョンに左右されます。
| 比較項目 | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| 主なプラットフォーム | Windows、macOS、Linux | Android | Android |
| 主なコア系列 | デスクトップでコアを管理。選択したコアに準拠 | Xray | v2fly |
| VLESS + Reality | 設定に対応するXrayコアを選択 | 主力に適する | この種の設定では第一候補にしない |
| VMess + WebSocket + TLS | 標準対応 | 標準対応 | 標準対応 |
| ルーティング編集 | デスクトップ画面の情報が充実 | ドメイン、IP、アプリ別の制御に対応 | 標準ルールと基本的な振り分けに適する |
結論: サブスクリプションのフィールドを確認してから画面を比較
ノードの詳細を開き、security=reality、flow=xtls-rprx-vision、またはRealityの公開鍵パラメータが表示される場合は、Androidではv2rayNGを選びましょう。VMess、WebSocket、TLSなど標準的なフィールドが中心なら、v2flyNGを予備として検討する価値があります。
サブスクリプション管理と更新方法を比較する
3つのクライアントはいずれもサブスクリプションをインポートできますが、デスクトップとAndroidでは管理の重点が異なります。v2rayNは仕事用、日常用、テスト用を複数のサブスクリプショングループに分けるのに適しています。Androidでは、素早い更新、使用ノードの選択、バックグラウンド接続の安定性が重視されます。
v2rayN 7.xでは、「サブスクリプショングループ」→「サブスクリプショングループ設定」からアドレスを追加し、「サブスクリプショングループ」→「すべてのサブスクリプションを更新」を実行します。クリップボードのリンクを使う場合は、チャットアプリでリンクが途中で切れていないことを確認してください。単一ノードの共有リンクをサブスクリプションアドレスに入力しないよう注意しましょう。
v2rayNG 1.10.xでは、サイドバーの「サブスクリプショングループ設定」からサブスクリプションを追加し、メイン画面に戻って「サブスクリプションを更新」を実行するのが一般的です。単一ノードの設定は、右上の「+」から「クリップボードからインポート」に進みます。v2flyNGもAndroid向けツールに近い構成で、インポート後は一度更新し、ノードを選択して接続を開始します。
おすすめ構成: 2台で1つのサブスクリプションを共有
デスクトップ(v2rayN)
- 用途が分かる名前で専用のサブスクリプショングループを作る
- 更新後にノードのプロトコルとトランスポートのフィールドを確認する
- ローカルの混合プロキシポートが10808であることを確認する
- まずは基本的な振り分けルールでルーティングを検証する
Android(v2rayNG)
- 同じサブスクリプションリンクをインポートする
- 更新後にノード名がデスクトップ側と対応しているか確認する
- 必要に応じて設定でアプリ別プロキシを有効にする
- ノードを切り替えたらVPN接続を再確立する
2台で共有できるのは、サーバー側が提供するノードとパラメータだけです。クライアント側のルーティング、アプリ別リスト、システムプロキシの状態は同期されません。
自動更新の間隔を短くしすぎないようにしましょう。サブスクリプションの内容は通常、分単位では変わりません。必要に応じて手動更新するか、1日1回に設定すれば十分です。更新後にノード名が変わらないのに接続できない場合は、サブスクリプションの更新を繰り返すのではなく、ログでプロトコルフィールドのエラーを確認してください。
ルーティング機能の実際の違い
ルーティングによって、プロキシ経由で送るリクエスト、直接接続するリクエスト、ブロックするリクエストを決めます。3つのクライアントはいずれもドメインとIPのルールを使えますが、完全なルール順を確認するならデスクトップが適しています。Androidでは、どのアプリをプロキシに通すかという選択も加わります。
v2rayNのローカルプロキシは通常、ループバックアドレスで待ち受けます。混合ポートが10808の場合、ブラウザの手動プロキシには127.0.0.1と10808を入力し、LAN内の端末アドレスは使いません。ポートが他のプログラムと競合する場合は、「設定」→「パラメータ設定」からローカルポートを変更し、保存後にコアを再起動します。
- まず全体の疎通を確認:一時的に対象トラフィックをすべて現在のノード経由にし、プロトコル、アドレス、ポート、トランスポートパラメータが正常に使えることを確認します。
- 次に基本的な振り分けを有効化:ドメインとIPルールによる振り分けモードに切り替え、古い接続を再利用しないよう対象サイトを開き直します。
- 最後にカスタムルールを追加:1つのルールは明確な目的だけを処理し、上から下へ評価されるルールの順序を確認します。
- Androidではアプリの対象範囲も確認:アプリ別プロキシを有効にした場合、対象のブラウザやアプリが選択したリストに含まれていることを確認します。
デスクトップのローカルプロキシ確認
アドレス: 127.0.0.1
ポート: 10808
ルールの順序: カスタムルール → よく使うドメインルール → IPルール → 最終アウトバウンド
変更手順: 設定 → パラメータ設定 → ローカルリスニングポート
v2rayNGのアプリ別プロキシは、指定したアプリだけをトンネルに通したい場合に便利です。ただし、アプリ別プロキシとコアのルーティングは別の層で制御されます。アプリが対象外ならリクエストはコアに入りません。コアに入った後で、ドメイン、IP、アウトバウンドのルールに従って振り分けられます。トラブル対応では、この順番で確認してください。
v2flyNGでも標準的な振り分けはできますが、選ぶ主な理由はv2flyコアとの互換性です。ルールが自動で移行されることを期待してはいけません。同じサブスクリプションを2つのAndroidクライアントにインポートしても、ローカルルール、DNS設定、アプリリストはそれぞれ設定する必要があります。
結論: モバイルはアプリの対象範囲、デスクトップは待ち受けポートを先に確認
Androidで「一部のアプリは使えるが、一部は使えない」場合は、まずアプリ別プロキシのリストを確認します。デスクトップのブラウザがまったく接続できない場合は、コアが起動していることを確認し、127.0.0.1:10808がブラウザまたはシステムプロキシの設定と一致しているか確認してください。
そのまま使える2つの選び方
すべての機能を項目ごとに採点する必要はありません。端末、サブスクリプションのプロトコル、ルーティングの要件を順に確認すれば、通常は1分以内に主力クライアントを決められます。
デスクトップの選び方: v2rayNを統合入口にする
- 端末がWindows、macOS、Linuxなら、v2rayN 7.xを選びます。
- サブスクリプションをインポートしたら、任意のノード詳細を開き、プロトコル、ポート、トランスポート方式、TLSパラメータが正しく解析されているか確認します。
- 「設定」→「パラメータ設定」でローカルの待ち受けポートを確認します。初期値の確認には10808を使えます。
- コアを起動してからシステムプロキシを設定します。クライアントを終了する前にシステムプロキシを元に戻し、ブラウザが閉じたローカルポートを使い続けないようにしてください。
- 複数の設定を使う場合は、用途ごとにサブスクリプショングループを作り、テスト用ノードと長期利用ノードを同じリストに混在させないようにします。
Androidの選び方: v2rayNGを主力に、v2flyNGで比較
- サブスクリプションにRealityやVisionなどのXrayパラメータが含まれる場合は、v2rayNGを選びます。
- サブスクリプションがVMess、WebSocket、TLS、標準的なVLESS設定を中心としている場合は、まずv2rayNGを使います。v2flyコアとの互換性を確認したいときに、v2flyNGへインポートしてください。
- 2つのクライアントを同時に接続状態にしないでください。切り替える前に、現在のVPNセッションを停止します。
- サブスクリプションを更新したら、対象ノードを選び直します。更新前の設定記録をクライアントが参照し続けるのを防ぐためです。
- 一部のアプリだけをプロキシに通す場合は、アプリ別リストを記録し、クライアント移行後に同じリストを再設定します。
v2flyNGを予備として使う場面
v2flyNGは、あらゆるXray環境を置き換えるためのものではありません。別の明確なコア系列を提供するクライアントです。サブスクリプションが標準的なV2Ray設定で、サーバー側がVMessまたは標準的なVLESSを長期利用しており、Xray拡張フィールドに依存しない場合、v2flyNGはAndroidの接続用として安定して使えます。
もう1つの用途は比較による切り分けです。同じ標準設定でもv2rayNGとv2flyNGで挙動が異なる場合、ログから問題がクライアント設定、コアの解析、サーバー側パラメータのどこにあるかを判断しやすくなります。比較時は、サーバーアドレス、ポート、ユーザー識別子、トランスポート方式、TLS、SNIを一致させてください。そうしなければ比較結果に意味がありません。
- 予備に適する:VMess + WebSocket + TLSなどの一般的な組み合わせで、設定フィールドがv2flyの仕様に準拠している場合。
- 比較用に適する:特定のエラーがXrayまたはv2flyコアだけで発生しているか確認したい場合。
- 独立環境に適する:日常用サブスクリプションとテスト用サブスクリプションを分け、主力クライアントを頻繁に変更したくない場合。
- 機械的に置き換えない:設定にRealityやVisionなどの拡張パラメータが含まれる場合は、これらのフィールドを正しく解析できるXray系列を使い続けてください。
比較テストでは、現在の接続を停止し、古いログを消去し、同じ単一ノード設定をインポートして1回接続し、エラー情報を保存してから、別のクライアントで同じ操作を繰り返すという順序が使えます。DNS、ルーティング、トランスポートのパラメータを同時に変更すると、どの変更で問題が解決したのか分からなくなります。
結論: 主力と予備をコアで使い分ける
AndroidでXray拡張設定に対応する主力が必要ならv2rayNGを選びます。v2flyNGは標準的なV2Ray設定とコアの比較用に残しておきましょう。2つを同時にインストールする意味は役割分担であり、同じ設定を長期的に二重管理することではありません。
よくある選択の疑問
ここでは「インポートは成功したのに使えない」場合と、「2つのAndroidクライアントを同時に設定する必要があるか」という疑問を取り上げます。具体的なフィールドとシステム連携の状態を確認し、ノード名だけで判断しないでください。
デスクトップとAndroidで同じサブスクリプションを使えますか?
使えます。v2rayNとv2rayNGに同じアドレスを追加して更新します。ただし、ローカルルーティング、DNS、システムプロキシ、アプリ別リストはそれぞれ設定が必要です。まず同じ名前のノードで、プロトコル、ポート、トランスポート方式、TLSフィールドが一致しているか比較してください。
v2rayNGにインポートしたら「設定が無効」と表示されます。どうすればよいですか?
ノード詳細を開き、アドレス、ポート、ユーザー識別子、トランスポート方式、セキュリティパラメータを確認します。Realityを含む設定では、公開鍵、shortId、serverName、flowフィールドを重点的に確認してください。フィールドが欠けている場合は、サブスクリプションの提供元で修正する必要があり、ルーティングモードの切り替えでは解決できません。
v2rayNのコアは起動しているのに、ブラウザでウェブページを開けません。
まずシステムプロキシが有効になっているか確認し、次にブラウザが127.0.0.1:10808を参照しているか確認します。ポートを変更した場合は、「設定」→「パラメータ設定」で実際の待ち受け値を確認し、ログからポート競合やDNS解析エラーを探してください。
v2rayNGをインストールした後も、v2flyNGを残す必要はありますか?
通常の利用では、2つを同時に管理する必要はありません。標準的なV2Ray設定が中心でv2flyコア環境が必要な場合、またはコアの互換性を比較している場合に限り、v2flyNGを残す明確な理由があります。
クライアントを変更したらサブスクリプションのノードが減りました。まず何を確認すべきですか?
まず、単一ノードのリンクではなく完全なサブスクリプションアドレスをインポートしたか確認し、手動で1回更新します。その後、更新ログに形式解析エラーがないか確認してください。特定のプロトコルのノードだけが欠けている場合は、クライアントとコアのバージョンが該当フィールドに対応しているか確認します。
最終的な選択は一言でまとめられます。デスクトップはv2rayN、Androidはまずv2rayNG、標準的なV2Ray設定やコア比較にはv2flyNGを使います。画面の好みよりプロトコル互換性が重要で、インポート後に実際に接続できるかどうかは、ローカルルーティングとシステム連携の設定で決まります。