この記事の要点

Linux・Windows・macOSのデスクトップではv2rayN、AndroidでXrayの機能が必要ならv2rayNG、v2fly用の設定を使う場合はv2flyNGが候補です。クライアント、コア、ノードのプロトコルを分けて比較し、サブスクリプションのインポート、ルーティング設定、接続確認の手順を紹介します。サブスクリプションURLは取得済みでも、どのクライアントを使うか決めていない方に向けた内容です。

1. OSに合わせてクライアントを選び、ノードの要件を確認

この3つは、同じプログラムの見た目を変えたものではありません。v2rayNはデスクトップ向け、v2rayNGとv2flyNGはAndroid向けです。名前の大文字・小文字で対応OSが変わるわけではなく、Android用インストーラーをLinuxのデスクトップアプリとして実行することもできません。ダウンロード前にOSとCPUアーキテクチャ(x64、ARM64など)を確認し、ファイル名に「V2Ray」とあるかだけで判断しないでください。

v2rayN:デスクトップでの設定に

おすすめ

ノード一覧、サブスクリプショングループ、ルーティング、ログを管理できます。デスクトップで利用できるコアや通信の制御方法は、OS、インストーラー、バージョンによって異なります。あるOSの設定画面を別のOSでもそのまま使えるとは限りません。

おすすめの用途:Linux・Windows・macOSでの日常利用やトラブル対応。

v2rayNG:Android向けXrayクライアント

Xrayコアを使用し、AndroidのVPNサービスを通じて通信を制御します。サブスクリプション管理やアプリごとのプロキシ対象の選択に対応しています。ノードが使えるかどうかは、内蔵コアとサーバー側の設定が一致しているか確認してください。

おすすめの用途:Androidスマートフォンで、Xrayのプロトコルやトランスポートに対応したノードを使う場合。

v2flyNG:Android向けv2flyクライアント

v2flyコアを使用し、v2fly用の設定がある場合に適しています。選ぶ基準は設定との互換性です。名前がV2Rayに近いから、あるいは別のクライアントより速いはずだから、という理由で選ぶものではありません。

おすすめの用途:v2flyとの互換性を確認済みのノードや設定をAndroid端末で使う場合。

ここでの「おすすめ」はデスクトップでの選び方を示すもので、OSをまたいだ性能ランキングではありません。3つのクライアントはいずれも無料でオープンソースですが、それだけで特定の回線速度がわかるわけではなく、ノードの設定確認の代わりにもなりません。

2. コア・プロトコル・トランスポートの役割

クライアントは画面と設定を管理し、コアが実際の接続を処理します。VMessとVLESSはプロトコル名、WebSocketとgRPCはトランスポート方式です。TLSとREALITYは接続のセキュリティに関わります。VLESSのリンクを見ただけで、3つすべてのクライアントで使えるとは限りません。トランスポートやセキュリティの設定、コアの対応状況も確認してください。

比較項目v2rayNv2rayNGv2flyNG
主な対応OSWindows、Linux、macOSAndroidAndroid
コアの関係複数のコアを管理可能。ビルドと設定を確認Xrayv2fly
VMessノード選択中のコアとトランスポート設定を確認トランスポートとTLSの設定を確認トランスポートとTLSの設定を確認
VLESS + REALITY該当する組み合わせに対応したXrayコアを使い、各項目を確認内蔵Xrayのバージョンとノード設定を確認Xray向けのREALITY設定をそのまま適用することはできません
通信の制御方法システムプロキシとローカルプロキシポート。TUNはOS・バージョンによるAndroid VPNサービスを使用。対象アプリを設定可能Android VPNサービスを使用。対象アプリを設定可能

たとえば、VMess over WebSocket + TLSのノードでは、アドレス、ポート、UUID、WebSocketパス、Host、TLSのserverNameを確認します。VLESS + REALITYでは、公開鍵、shortId、フィンガープリント、flowが必要になる場合もあります。画面上の項目名が変わっても、サービス提供元が示す設定の意味は変わりません。項目が一つでも抜けると、「インポートできたのに接続できない」ことがあります。

選び方:ノード設定の組み合わせをすべて確認

VLESS + REALITYのノードを使う場合、デスクトップではv2rayNで現在選択中のノードが使用するXrayを確認し、Androidではv2rayNGをまず検討してください。サーバー側の設定がv2flyに対応すると明確に確認できた場合に限り、v2flyNGも候補に加えます。インポートできたことだけで接続確認を済ませないでください。

3. サブスクリプションは共用できても、ルーティングや端末設定は同期されない

サブスクリプションURLは通常、ノード一覧を取得するためのものです。端末設定全体のバックアップではありません。サーバー側の出力形式が両方のクライアントで読み取れ、ノードのプロトコルにも対応していれば、デスクトップとAndroidで同じURLを使えます。複数端末で同時に接続できるか、端末数に制限があるかは、サブスクリプションの提供元に確認してください。

設定例:両端末で同じ互換性のあるサブスクリプションをインポート

デスクトップ:v2rayN
  • 「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、グループを追加してURLを入力します。
  • 保存して更新を実行します。ノードを選択したら、システムプロキシの状態を確認します。
  • ルーティングルール、ローカル待ち受けポート、必要なDNS設定は個別に保存します。
Android:v2rayNG
  • サイドメニューから「サブスクリプショングループ設定」を開き、名前とURLを追加します。
  • ノード一覧に戻って「サブスクリプションを更新」を実行し、ノード名と件数を確認します。
  • 接続を開始するときにAndroidのVPN接続許可を確認し、プロキシを使うアプリを設定します。

ノード一覧は各端末で更新してから反映されます。ルーティング、対象アプリ、DNSはそれぞれ個別に設定してください。メニュー名はバージョンによって多少異なることがあります。

v2flyNGでも、まずサブスクリプションの解析結果を確認し、次にノード設定を確認します。同じURLでも2つのクライアントで表示件数が異なる場合は、未対応のノード形式、解析エラー、グループの絞り込みを確認してください。すぐにサブスクリプションを再購入する必要はありません。サブスクリプションURLにはアクセス情報が含まれることがあるため、スクリーンショット、ログ、問い合わせにはURL全体が写らないようにしてください。

4. デスクトップとAndroidでは通信制御の設定が異なる

v2rayNのデスクトップ画面では、ノード、ログ、ルーティングを並べて確認できます。初回は「設定」→「パラメータ設定」でローカルの待ち受け設定を確認し、適切なシステムプロキシモードを選びましょう。システムプロキシが適用されるのは、その設定に従うアプリだけです。ターミナル、一部のゲーム、独自のネットワーク機能を使うアプリには適用されない場合があります。TUNはより広い範囲の通信を扱いますが、ルーティング、DNS、権限、他のネットワークツールとの競合も関わるため、初回接続に必須ではありません。

v2rayNGとv2flyNGのAndroid VPNモードは、システムのインターフェースを使ってローカルトンネルを作成します。これによってノード提供元のプロトコルが別のものに変わるわけではありません。アプリごとの設定は、どのアプリの通信をトンネルに通すかを決めます。ドメインやIPアドレスなどのルーティングルールは、コアに届いた通信の出口を決めます。この2つの設定は分けて考えてください。

  1. まず対象を絞る:デスクトップでは指定したローカルプロキシを使ってテストし、Androidではまずブラウザー1つだけをプロキシ対象にします。一度に多くのアプリを変更しないでください。
  2. 次にルーティングを選ぶ:社内プリンターやLAN内のサービスにアクセスする場合は、プライベートIPアドレスが想定どおり直結されるか確認します。「LANをバイパス」という名前だけで、すべてのルールを推測しないでください。
  3. 最後に設定を増やす:基本の接続を確認してから、独自のドメインルール、アプリ別設定、TUNを追加します。一度に変更するのは1項目だけにし、結果を記録してください。

5. 同じ手順で接続を確認し、遅延の数字だけで選ばない

速度を比べるときは、ノード、ネットワーク、接続先サイト、テスト時間をできるだけそろえます。TCP遅延でわかるのは接続確立の一部であり、ダウンロード速度、動画の読み込み、複雑なWebページの表示を表すものではありません。スマートフォンとPCで接続するWi-Fiの周波数帯が違うだけでも、結果は変わります。テスト条件を示さない速度ランキングは掲載していません。

  1. 両方の端末で同じノードを選び、表示名だけで比べず、プロトコル、トランスポート、TLS、セキュリティ設定を確認します。
  2. クライアントの実接続テストまたは疎通確認を実行してから、同じHTTPSページにアクセスします。ミリ秒の数値だけでなく、どの段階で失敗したかを記録してください。
  3. アプリの通信がプロキシを通っているか確認します。デスクトップでは明示的なプロキシ指定コマンドでシステムプロキシ設定の影響を切り分け、AndroidではVPNの許可と対象アプリを確認します。
  4. ログで設定の解析エラー、接続タイムアウト、TLSハンドシェイク失敗、ローカルポートの競合を確認してから、DNS、ノード設定、端末設定のどれを見直すか判断します。

以下のコマンドは、SOCKSインバウンドが有効で、待ち受けポートが10808である場合にのみ使えます。このポートは設定例であり、すべてのバージョンで固定のデフォルト値ではありません。v2rayNの「設定」→「パラメータ設定」で実際の待ち受けポートを確認し、コマンド内の数字を置き換えてください。

curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

socks5hは接続先のドメイン名をSOCKSプロキシ側で解決するため、プロキシ経由でHTTPSリクエストを完了できるか確認するのに適しています。正常な応答が返っても、確認できるのはそのコマンドの通信が指定したプロキシを通ったことだけで、すべてのアプリがプロキシ対象になったとは限りません。127.0.0.1に接続できない場合は、まずコアの起動状態とポート番号を確認してください。リモートノードの設定を先に変更する必要はありません。

6. インストール前後によくある選び方の疑問

PCでv2rayNを使っています。スマートフォンにも同じ名前のクライアントが必要ですか?

必要ありません。PCではv2rayNを使い続け、Androidではノードの要件に応じてv2rayNGまたはv2flyNGを選びます。互換性のあるサブスクリプションをそれぞれインポートし、プロキシ対象を個別に設定してください。デスクトップのプログラムフォルダーをAndroid用設定パッケージとしてコピーすることはできません。

v2rayNGでは使えたサブスクリプションが、v2flyNGでは使えないのはなぜですか?

まずノードの詳細を開き、REALITYなどXrayに依存する設定が使われていないか確認してください。そのようなノードには、互換性のあるXrayクライアントが必要です。VMessなど両方で扱える組み合わせなら、パス、Host、serverName、ログのエラーを確認してください。

Linuxでコマンドラインからは接続できるのに、ブラウザーで開けません。クライアントを変えるべきですか?

まずクライアントを変える必要はありません。プロキシを明示したコマンドが成功する場合は、ブラウザーがデスクトップのシステムプロキシ設定に従っているか、別のプロキシが設定されていないか確認します。次にv2rayNのシステムプロキシの状態、ルーティング、DNSを確認してください。これは通信の制御経路の問題であり、コアに問題があるとは限りません。

Androidで2つのクライアントを同時に起動して、自動的に良い方を選べますか?

通常はできません。同じAndroidユーザーまたはプロファイルでは、通常1つのアプリだけがシステムVPNサービスを使用できます。テスト前にもう一方のクライアントを停止し、使用する方を起動して接続を許可してください。VPNトンネルが切り替わったことを、ノード切断と誤認するのを防げます。

サブスクリプションの更新がタイムアウトします。クライアントの選択を間違えたのでしょうか?

まずURLが完全か、期限切れでないかを確認し、直接更新しているのかプロキシ経由で更新しているのかを切り分けます。使えるノードがある場合は、クライアントの更新方法に従ってプロキシ経由で再試行できます。使えるノードがない場合は、アクセス可能なサブスクリプションURLまたは有効な設定を先に用意してください。

結論:まず対応OS、次にコアの互換性。接続後にルーティングを追加

デスクトップではv2rayNを設定します。AndroidでXrayノードを使うならv2rayNG、v2flyとの互換性が明確に必要な場合はv2flyNGを選びます。「サブスクリプション更新、ノード接続、アプリの通信制御、ログ確認」まで一度通してから設定を保存し、ルールを追加しましょう。3つを同時に試すより、問題を特定しやすくなります。