まず結論:デバイスとノード形式で選ぶ

クライアントを選ぶときは、まずデバイス、次にサブスクリプションに含まれるプロトコルを確認します。デスクトップではv2rayN、Androidではノードの種類に応じてv2rayNGとv2flyNGを選びます。この順番はボタンの数を比べるより確実です。クライアントの画面は操作層にすぎず、実際にプロトコルを解析し、外向き接続を確立してルーティングを実行するのはコアだからです。

Windows、macOS、Linuxを使う場合は、v2rayNを第一候補にできます。サーバー一覧、サブスクリプション管理、遅延テスト、システムプロキシ、ルーティングルール、ログ確認を備え、複数の設定をまとめて管理するのに適しています。3つのデスクトップOSでは権限モデルやプロキシの接続方法が異なるため、利用できる機能はOS環境やパッケージによって変わりますが、日常操作の流れはほぼ共通です。

Androidで主にVLESS、REALITY、またはXrayエコシステムで生成されたサブスクリプションを使うなら、v2rayNGを優先します。サブスクリプションが明確にV2Flyベースで、VMessなどV2Flyで一般的な設定が中心であり、V2Flyコアに近い設定構造を求める場合はv2flyNGを検討できます。アプリ名だけで互換性を判断せず、プロトコル、伝送方式、セキュリティ層、必要なコアを確認してください。

対応プラットフォーム:v2rayNはデスクトップ、2つのNGはAndroid

3つのクライアントは同じプラットフォームで競合するものではありません。v2rayNはWindows、macOS、Linux向けで、v2rayNGとv2flyNGはAndroid向けです。まずデバイスで絞り込めば、選択肢はすぐに狭まります。デスクトップとモバイルでは、ネットワークの取り込み方、バックグラウンド処理、権限通知が大きく異なるため、一方の使用感をそのまま他方に当てはめることはできません。

クライアント プラットフォーム 主なコアの方向性 適した用途
v2rayN Windows、macOS、Linux 主にXrayエコシステムの設定に対応し、バージョンが提供する機能に応じてコアを管理 デスクトップでのサブスクリプション管理、システムプロキシ、ルーティング、ログ確認
v2rayNG Android Xrayコア モバイルでのVLESS、VMess、REALITYとサブスクリプション接続
v2flyNG Android V2Flyコア V2Fly設定体系に対応したモバイル接続

デスクトップでv2rayNが適している理由

デスクトップで必要なのは、ノードに接続することだけではありません。システムプロキシのモード切り替え、ローカルの待受ポート確認、サブスクリプショングループの編集、サーバーのテスト、コアのログ確認、ブラウザーや開発ツールごとのプロキシ経路設定なども行います。v2rayNはこれらをGUIにまとめており、複数の設定を長期的に管理するのに適しています。

システムプロキシと全トラフィックの取り込みは別物です。システムプロキシに従うアプリはリクエストをローカルプロキシポートへ送りますが、システムプロキシを無視するアプリは直接接続することがあります。より多くの通信を処理する場合は、OSの対応状況に応じてクライアントのTUN機能を使えますが、権限、ルーティングテーブル、DNS設定が関わるため、トラブル対処の手順は長くなります。

AndroidクライアントがローカルVPNインターフェースを使う理由

v2rayNGとv2flyNGは通常、Androidが提供するローカルVPNインターフェースでデバイスの通信を受け取り、ルールに合う接続をコアへ渡します。このインターフェースが端末内のトラフィック転送を担います。起動時にシステムの許可を求められるのは正常です。クライアントの切り替え、バックグラウンドタスクの回収、省電力設定による制限などで接続が切れることもあります。

そのため、モバイルではOSのバックグラウンド管理も選定条件になります。接続が頻繁に終了する場合は、すぐにノードの無効を疑うのではなく、まずバッテリー最適化、バックグラウンド動作の権限、常駐通知の状態を確認してください。同じノードがデスクトップでは使えてAndroidでは不安定な場合、モバイル回線の切り替えやバックグラウンド制限が原因の可能性もあります。

コアの系統:画面が似ていても設定が完全に共通とは限らない

クライアントは設定のインポート、表示、編集を担い、コアはプロトコルのハンドシェイク、伝送のカプセル化、TLS、DNS、ルーティングを実行します。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。両者は近い技術的系譜を持ち、一部の概念も共有しますが、その後の進化の方向は異なります。画面から設定をインポートできても、すべてのフィールドが現在のコアで正しく実行されるとは限りません。

Xrayエコシステムでは、VLESS、REALITY、および関連するフロー制御設定がよく使われます。V2FlyはV2Rayの設定体系を引き継いでおり、VMess、伝送層の設定、DNS、ルーティングが重要です。出所が不明なサブスクリプションは、まず提供元が指定するコアを確認してください。Xrayが必要と明記されている場合、画面の好みだけを理由にV2Flyコアへ切り替えないでください。

共有内容から必要なコアを判断する方法

  • VLESSとREALITYが含まれている場合:まずXrayコア系のクライアントを使い、アドレス、ポート、ユーザー識別子、serverName、公開鍵、shortId、fingerprint、flowなどのフィールドがそろっているか確認します。
  • VMessが含まれている場合:一般的なVMess設定はどちらのエコシステムでも処理できますが、伝送方式、TLS、パス、Host、ユーザー識別子、追加パラメータを確認する必要があります。
  • サブスクリプション専用の説明がある場合:説明で指定されたコアを使ってインポートします。サブスクリプション変換でフィールドが書き換えられることもあるため、最終的に表示されるノード名だけを見て判断しないでください。
  • インポートできても接続できない場合:ログを開き、unsupported、invalid、missing、failedなどのキーワードを探して、まずフィールドや機能の違いを特定します。

v2rayNでも同じ判断基準を保つ必要があります。デスクトップ画面に複数の設定入口があっても、プロトコルを実行できるかどうかは、使用中のバージョンに付属または呼び出されるコアが決めます。クライアント更新後に設定の挙動が変わった場合は、画面のバージョン番号だけでなく、コアのバージョン、既定のルーティング、DNS設定も変わっていないか確認してください。

プロトコル対応:VMessとVLESSだけでなく組み合わせ全体を比較

ノードはプロトコル名1つだけでは完全に説明できません。たとえばVLESSでは、実際の接続にTCP、WebSocket、gRPCなどの伝送方式、TLSまたはREALITY、サーバー名、パス、Host、フィンガープリント、フロー制御パラメータが含まれることがあります。クライアントとコアが組み合わせ全体を理解する必要があり、重要なフィールドが1つ欠けてもハンドシェイクに失敗する可能性があります。

VMessでも、ユーザー識別子、伝送層、TLS、パス、サーバー時刻を確認する必要があります。端末の時刻が大きくずれていると認証に失敗することがあります。ネットワーク環境でドメイン名を解決できない場合は、サーバーがオフラインのように見えることもあります。選定時は、まず動作確認済みの設定1つで比較テストを行い、その後にサブスクリプション全体をインポートするのが安全です。

VLESSとREALITYを使う場合の選び方

デスクトップではv2rayN、Androidではv2rayNGを使うのが分かりやすい組み合わせです。インポート後、セキュリティ方式がrealityになっているか確認し、serverName、公開鍵、shortId、fingerprint、flowを1項目ずつ確認してください。サブスクリプションによってはこれらのフィールドが共有リンクにエンコードされていますが、画面上の表示名は地域や回線名だけの場合があります。備考だけでプロトコルを判断しないでください。

ログにreality、public key、short id、flowに関するエラーが出たら、まずサブスクリプションを再更新し、提供元のパラメータと照合します。手入力やコピーでは、大文字・小文字、前後の空白、文字の欠落に注意してください。複数のフィールドを一度に変更すると原因を特定しにくくなるため、1回につき1項目だけ変更して再テストすることをおすすめします。

VMessを使う場合の選び方

デスクトップでは引き続きv2rayNを選びます。Androidでは、サブスクリプションの説明がXray向けならv2rayNG、V2Flyベースと明記され、Xray固有の機能に依存しない設定ならv2flyNGを使えます。VMessという名前が同じでも、古い設定がいつまでも互換性を保つとは限りません。伝送層のパラメータとセキュリティ設定もサーバー側と一致させる必要があります。

ルーティングとDNSも互換性の対象

接続は確立したように見えるのに、一部のドメインしか開けないことがあります。これは通常、プロトコルのハンドシェイクではなく、DNSまたはルーティングルールが想定どおり動いていない状態です。クライアントはシステムDNS、リモートDNS、内蔵の名前解決ルール、分岐後の異なる解決経路を使うことがあります。複雑なルーティングをデスクトップからAndroidへ移す場合は、モバイル側のコアがそのルール構造に対応しているか確認してください。

トラブル対処では、まず変数を最小限にします。確実に使えるノードを1つ選び、基本ルーティングを使い、カスタムDNSルールを一時的に無効化してから、分岐を少しずつ戻します。これにより、ノード、名前解決、ルール適用のどこに問題があるか切り分けられます。クライアントを変えるだけで一時的にアクセスが戻ることもありますが、本当の設定差を隠してしまう場合があります。

サブスクリプション、グループ、ルーティング:ノード数より管理機能が重要

サブスクリプションは、サーバー設定を一括配布する仕組みです。クライアントが更新を実行すると、サブスクリプションURLへアクセスして返却内容を解析し、ノードを該当グループへ登録します。3つのクライアントは基本的にこの流れで動きますが、複数のサブスクリプション、まとめての絞り込み、複雑なメモの管理はデスクトップのほうが向いています。モバイルは素早い更新と切り替えを重視します。

v2rayNは複数のサブスクリプション整理に適している

サブスクリプションの提供元が多い場合は、提供元ごとに独立したグループを作り、メモに地域、用途、プロトコルを残すと便利です。すべてのサーバーを分類のない一覧に混在させないでください。更新に失敗したとき、グループを分けておけば、特定のサブスクリプションURLだけが失敗したのか、ネットワーク全体から配信サービスへアクセスできないのかをすぐ判断できます。

サーバーの遅延テストは、特定の探測方法による応答状況を示すだけで、すべてのアプリでの実際の使用感を表すものではありません。ノードを選ぶ際は、プロトコルの適合性、対象サイトへアクセスできるか、一定時間の安定性も確認してください。遅延が表示されなくてもノードが使えないとは限らず、テスト先、DNS、ネットワークポリシーが結果に影響することがあります。

Androidではまずグループをシンプルに保つ

v2rayNGまたはv2flyNGでは、まず1つのサブスクリプションをインポートして接続テストを完了してから、ほかの提供元を追加します。更新後にノードが消えた場合は、選択中のグループ、フィルター条件、サブスクリプションの返却内容を確認してください。古いノードが残って新しいパラメータで上書きされない場合は、手作業で作成した設定を保存したうえで、該当グループを削除して再インポートできます。

QRコード、クリップボード、サブスクリプションURLは入力方法が異なるだけです。最終的には、コアが理解できる設定に変換されます。QRコードからインポートした後もプロトコルの種類を確認し、クリップボードから取り込むときは説明文とリンクを一緒にコピーしないでください。サブスクリプションを使う場合は、アクセス情報を含むURLを不用意に公開しないよう注意しましょう。

ルーティングルールは少しずつ追加する

  1. まず、1つのノードで接続を確立でき、基本的なドメイン名解決ができることを確認します。
  2. 基本的な振り分けを有効にし、直接接続とプロキシ対象がそれぞれ正しい外向き接続に振り分けられるかテストします。
  3. その後、ドメイン、IP、プロセスのルールを追加します。一度に追加するのは1グループだけにしてください。
  4. 異常が発生したら、ログに記録された対象アドレス、外向き接続のタグ、DNS結果を確認します。
  5. デスクトップとAndroidではルールを別々に保存し、両端のルール形式が完全に同じだとは考えないでください。

更新頻度:クライアント、コア、設定形式をまとめて確認

クライアントのバージョンとコアのバージョンは別々に更新されます。画面側の更新では、サブスクリプション解析、権限処理、操作性が変わることがあります。コアの更新では、プロトコル機能の追加、伝送問題の修正、設定検証の変更が行われる場合があります。アップデートが必要か判断するときは、アプリ名の横に表示されるバージョン番号だけでなく、両方を確認してください。

v2rayNGはXrayエコシステムの機能に追随するため、比較的新しいVLESSやREALITY設定を必要とするAndroidユーザーに適しています。v2flyNGはV2Flyコアを中心に動作し、更新の重点はXrayの路線とは異なります。v2rayNはデスクトップの操作端末として、GUI、システムプロキシ、コアファイル、複数OSの実行環境を調整するため、OSによってリリース内容が異なることもあります。

更新したほうがよいタイミング

  • サブスクリプションに、現在のバージョンでは認識できない新しいフィールドやプロトコルの組み合わせが追加された。
  • ログに設定機能が未対応だと明確に表示され、より新しいバージョンで対応済みになっている。
  • OSのアップデート後に、プロキシ設定、権限、ローカルネットワークインターフェースで互換性の問題が発生した。
  • 現在のバージョンに、接続、サブスクリプション解析、ルーティング実行へ影響する既知の問題がある。

すぐに切り替えないほうがよいタイミング

現在の設定が安定しているなら、更新前に現在のバージョン、コアの種類、待受ポート、DNSモード、ルーティング設定を記録してください。更新後に問題が起きても、項目ごとに比較できます。クライアント更新、サブスクリプション交換、ルーティング変更、ネットワーク環境の切り替えを同時に行わないでください。4つの変数が一度に変わると、ログから原因を1つに絞るのが難しくなります。

v2flyNGからv2rayNGへ、または逆方向へ切り替える場合は、元のサブスクリプションから改めてインポートすることをおすすめします。旧クライアントから書き出した完全な設定を、汎用形式だとそのまま考えないでください。共有リンクの標準フィールドは比較的移行しやすい一方、カスタムルーティング、DNS、受け入れ接続、外向き接続のタグは個別に確認する必要があります。

用途別の選び方:よくある6つのケース

ケース1:Windowsだけで使う

v2rayNを選びます。サブスクリプションをインポートしたら、まずサーバー一覧を更新し、ノードを1つ選んで、システムプロキシのモードとローカルポートを確認します。ブラウザーはアクセスできるのにターミナルだけ接続できない場合は、システムプロキシとターミナルのプロキシ環境を個別に確認し、すぐにクライアントの選択ミスだと決めつけないでください。

ケース2:macOSまたはLinuxのデスクトップでGUI管理が必要

v2rayNを選び、OSのアーキテクチャとパッケージ形式に合ったバージョンをダウンロードします。初回起動時は、実行権限、デスクトップ環境、システムプロキシを書き込む権限を確認してください。システムプロキシを自動設定できない場合は、クライアントに表示されたローカル待受アドレスを使って、OSまたはアプリに手動設定します。

ケース3:AndroidのサブスクリプションがVLESS・REALITY中心

v2rayNGを選びます。サブスクリプションを更新したらノードの詳細を開き、プロトコル、セキュリティ層、主要なハンドシェイクパラメータを確認してください。接続に失敗したときは、ノードを何度も切り替える前にログを確認します。同じサブスクリプションのREALITYノードがすべて同時に失敗する場合は、クライアントとXrayコアのバージョン、端末時刻、サブスクリプションのパラメータを優先して確認します。

ケース4:AndroidでV2Fly向け設定を使う

v2flyNGを選びます。ただし、設定の提供元がV2Fly向けと明確に説明しており、必要なプロトコルと伝送機能が現在のコアでサポートされていることが前提です。VMessを使う場合も伝送方式とTLSフィールドを確認し、リンクの先頭だけで設定が完全だと判断しないでください。

ケース5:デスクトップとAndroidで同じサブスクリプションを使う

デスクトップではv2rayNを使い、Androidではサブスクリプションのコア要件に応じてv2rayNGまたはv2flyNGを選びます。同じサブスクリプションを使っても、ローカル設定まで共通になるわけではありません。ノードのパラメータはサブスクリプションで同期できますが、システムプロキシ、VPNインターフェース、DNS、ルーティングルールはそれぞれ設定してください。入力の重複を減らしつつ、プラットフォーム固有の設定がサブスクリプションに混ざるのを防げます。

ケース6:サブスクリプションに複数のプロトコルが混在している

主要なプロトコルの組み合わせをカバーできるコアを選び、クライアントのフィルターまたはグループ機能で適さないノードを非表示にします。たまに使う設定1つを残すために、日常的に使うすべてのノードを合わないコアに合わせないでください。必要なら同じ端末に複数のクライアントを残せますが、ポートとルーティングの競合を避けるため、同時にローカルVPNインターフェースやシステムプロキシを制御するのは1つだけにします。

最終チェックリスト

  • デバイスがデスクトップOSかAndroidか。
  • サブスクリプションの主要プロトコルがVMessかVLESSか。
  • 設定にREALITY、flowなどXrayエコシステムのパラメータが使われているか。
  • サブスクリプションの説明でXrayまたはV2Flyコアが明確に指定されているか。
  • デスクトップで複数サブスクリプション、システムプロキシ、複雑なルーティング管理が必要か。
  • 現在のクライアントとコアのバージョンが、すべての重要フィールドを解析できるか。
  • 接続に失敗したとき、ノードの遅延だけでなくログも確認したか。

まとめると、v2rayN、v2rayNG、v2flyNGの役割分担は明確です。v2rayNはデスクトップ、v2rayNGはAndroidでXray設定、v2flyNGはAndroidでV2Fly設定を担います。まずプラットフォームで候補を絞り、次にコアとプロトコルで互換性を確認し、最後に画面操作や更新方針を比べます。この手順なら安定して動くクライアントを選びやすく、後のトラブル対処にも明確な出発点ができます。