デスクトップならまずv2rayN、Androidならノードの要件に応じてv2rayNGかv2flyNGを選びましょう。名前が似ていてもコアは同じとは限らず、設定を丸ごと共有できるわけでもありません。この記事では対応OSとコアを整理し、VLESS、REALITY、VMessなどの設定項目を確認したうえで、両端末でのサブスクリプション利用、通信のプロキシ経由化、移行時のチェック方法を解説します。初めてクライアントを選ぶ方や、端末の変更を検討している方に向けた内容です。
まず対応OSで絞り込む:デスクトップとAndroidではインストールパッケージが異なる
v2rayNはWindows、macOS、Linuxに対応するデスクトップ用クライアントです。v2rayNGとv2flyNGはAndroid用で、前者はXrayコア、後者はv2flyコアを使用します。いずれも設定を管理するためのアプリで、サブスクリプションの読み込みやノードの選択、設定の生成は画面側が行い、接続やルーティングはコアが担います。名前に「G」が付くかどうかで、対応プロトコルや通信速度を判断しないでください。
| クライアント | 対応OS | コア | 優先して確認する項目 |
|---|---|---|---|
| v2rayN | Windows、macOS、Linux | 複数のコアを管理可能。実際に使うコアはノードの種類や設定、バージョンによって異なる | インストールパッケージのアーキテクチャ、実行中のコア、システムプロキシまたはTUN |
| v2rayNG | Android | Xrayコア | Xray固有の設定項目、VPNの許可、アプリごとの設定 |
| v2flyNG | Android | v2flyコア | ノードと使用中のv2flyバージョンの互換性、設定のインポート形式 |
Windows版v2rayN DesktopとWPFは画面の入口が異なるだけで、ノードのプロトコルが違うわけではありません。macOSではApple SiliconとIntel、Linuxではディストリビューションごとのパッケージ形式とCPUアーキテクチャを確認してください。Androidでは端末に合ったパッケージを選びます。アーキテクチャが分からない場合は、ダウンロードセンターのuniversal版を確認してください。インストールに失敗したら、サーバー設定を変更する前にOSとアーキテクチャを確認しましょう。
- デスクトップでの作業や多数のノード管理には、まずv2rayNを選び、OSに合ったインストール方法を確認します。
- AndroidでXray固有の設定を使う場合は、まずv2rayNGの対応状況を確認します。
- 動作確認済みのv2fly設定をすでに使っている場合は、従来の設定方法を維持しやすいv2flyNGを選べます。
コアとプロトコル:VMessやVLESSという名前だけで判断しない
ノードの設定には通常、プロトコル、転送方式、安全性に関わる設定が含まれます。たとえばVLESSノードでは、クライアントがvless://リンクを認識するだけでは不十分です。転送方式、TLSまたはREALITY、サーバー名、フィンガープリント、flowも確認してください。設定項目のどれかに対応していないと、インポートは成功しても接続できないことがあります。サブスクリプション一覧にノード名が表示されても、読み取れたのは一部の情報だけかもしれません。
| ノードの要件 | 選ぶ際の判断基準 | インポート後の確認項目 |
|---|---|---|
| VMess + WebSocket + TLS | いずれも実際に使用するコアのバージョンを確認してください。特定のクライアントが必ず速いとは限りません。 | アドレス、ポート、UUID、Host、パス、サーバー名 |
| VLESS + REALITY | 該当する組み合わせに対応したXray環境を選びます。Androidではまずv2rayNGを確認してください。 | 公開鍵、shortId、サーバー名、フィンガープリント。flowはサーバー側の指定に合わせます。 |
| Trojan + TLS | 使用中のクライアントとコアが、ノードの転送方式に対応しているか確認します。 | パスワード、サーバー名、証明書の検証、転送設定 |
| 既存のv2fly形式JSON設定 | まずv2fly環境で動作を確認し、Xray用の完全な設定としてそのままインポートするのは避けてください。 | 対応フィールド、inboundポート、ルーティングタグ、DNS設定 |
Xrayとv2flyには共通の技術的背景がありますが、それぞれ独自に進化しています。REALITYはXrayエコシステムの機能であり、この種の設定を汎用的なv2fly設定としてそのまま使うことはできません。一方、既存のVMessノードをクライアント変更だけを理由にVLESSへ移行する必要もありません。まず動作中の組み合わせを維持し、実際に移行が必要かを検討してください。
普段の使い方で選ぶ:ノード管理、アプリごとの設定、設定の互換性
3つのクライアントをプラットフォーム横断で順位付けする必要はありません。デスクトップではサブスクリプションのグループ管理、一括テスト、システムプロキシが重視されます。AndroidではVPNの許可、バックグラウンド動作、通信をプロキシ経由にするアプリの選択が重要です。以下のおすすめ表示は「Androidで一般的なXrayノードを使う」場合を想定したもので、他のクライアントが各プラットフォームで不適切という意味ではありません。
v2rayN:デスクトップでのノード管理
広い画面でノードを編集し、サブスクリプショングループを整理してログを確認したい方に向いています。システムプロキシとTUNは通信をプロキシ経由にする別々の方法です。まず簡単な方法で接続を確認し、その後でルーティングルールを追加してください。
おすすめ:Windows、macOS、Linuxでの日常的なデスクトップ利用
v2rayNG:AndroidでXrayノードを利用
おすすめXrayコアを使用します。VLESSやREALITYなどの組み合わせが必要な場合は、使用中のバージョンで各設定項目に対応しているか確認してください。接続後はAndroidのVPNインターフェースを使って通信を中継し、アプリごとの設定で対象範囲を決めます。
おすすめ:AndroidでXray設定を使い、アプリごとに通信を選びたい方
v2flyNG:Androidでv2fly設定を利用
v2flyコアを使用します。安定して動作するv2flyノードや設定をすでに使っている場合は、同じコア系列を維持することで設定項目の移行を減らせます。Xray固有の項目が含まれている場合は、インポート前に互換性を確認してください。
おすすめ:Androidで検証済みのv2fly設定環境を引き継ぎたい方
結論:動作確認済みのノードを1つ使って最初の接続を確認する
まず利用するクライアントにノードを1つインポートし、コアの起動、ウェブサイトへのアクセス、DNSが正常に動作するか確認します。その後でサブスクリプションやルーティングをまとめて移行しましょう。問題が起きたときに、クライアントの互換性、サブスクリプションの解析、追加したルールのどれが原因か切り分けやすくなります。
画面上の遅延順をクライアントの性能ランキングと考えないでください。同じノードでも、測定時刻によってネットワーク状況、サーバー負荷、テスト先の影響を受けます。比較する場合は、少なくともノード、ネットワーク、テスト先、プロキシモードをそろえましょう。TCP接続の遅延だけでは、実際のダウンロード速度は分かりません。
通信をプロキシ経由にする方法の違い:システムプロキシ、VPN、ローカルポート
v2rayNのシステムプロキシモードが対象にするのは、主にシステムのプロキシ設定に従うアプリです。すべてのプログラムが自動的にプロキシを通るわけではありません。TUNは仮想ネットワークインターフェースから通信を取り込み、より広い範囲をカバーできますが、権限、DNS、ルーティングの問題が加わります。初めて使う場合は、まずシステムプロキシで動作を確認し、TUNが必要かどうかを検討してください。複数の設定を同時に変更しないようにしましょう。
上記の2つの番号はトラブル対処用の例であり、3つのクライアントに共通する初期値ではありません。バージョンによっては混合リスニングポートを使うため、古い手順に従って2つのポートに分けないでください。v2rayNの「設定」→「パラメーター設定」でローカルのリスニング設定を確認します。画面上の項目名はバージョンによって変わることがあるため、起動ログで最終的なリッスンアドレスも確認してください。アプリに手動で設定する場合は、プロキシの種類、アドレス、ポートをリスニング設定と一致させます。
- コアの起動失敗やポートの競合がログにないことを確認してから、アプリをローカルプロキシに接続してください。
- 同じ端末から接続する場合は通常
127.0.0.1を使います。スマートフォンで指定したこのアドレスはスマートフォン自身を指し、デスクトップPCではありません。 - 接続の問題を解決するために、安易にLANからのアクセスを許可しないでください。別の端末から使う場合は、リッスンアドレス、ファイアウォール、アクセス制御も設定する必要があります。
- Androidで初めて接続するときは、システムのVPN接続許可を確認してください。v2rayNGとv2flyNGを切り替える際は、現在のVPN接続を停止してから行うと、どちらのクライアントが動作中か判断しやすくなります。
Androidの「接続済み」はVPNインターフェースが確立したことを示すだけで、接続先のノードが利用可能とは限りません。ブラウザーは使えるのに特定のアプリだけ接続できない場合は、アプリごとのプロキシ設定が「選択したアプリのみをプロキシ経由にする」か「選択したアプリを除外する」か確認してください。同じアプリ一覧でもモードによって意味が逆になります。まずモードを確認してからアプリを追加・削除しましょう。
デスクトップとAndroidで同じサブスクリプションを使う:ノードを同期し、設定一式は共有しない
サブスクリプションリンクは通常、ノード一覧を取得するためのもので、システムプロキシ、VPNの許可、アプリ一覧、すべてのルーティング設定を自動的に統一するものではありません。同じサブスクリプションを両端末で使うことはできますが、各クライアントが返された形式を認識し、ノードの設定がそれぞれのコアでサポートされている必要があります。一方の端末で生成した実行用JSON設定を、もう一方に丸ごと上書きしないでください。
設定方針:ノードの取得元は共通にし、通信の中継設定は端末ごとに管理する
デスクトップ:v2rayN
- 「サブスクリプショングループ」→「サブスクリプショングループ設定」でサブスクリプションのURLを保存します。
- 「現在のサブスクリプションを更新(プロキシを経由しない)」を実行します。ネットワーク状況に応じて、プロキシ経由での更新を選ぶこともできます。
- ノードを選択したら、システムプロキシのモードと現在のルーティングルールを確認します。
Android:v2rayNGまたはv2flyNG
- サブスクリプション設定に同じ取得元を追加し、使用中のバージョンのメニューから更新します。
- まず単一ノードで接続を確認してから、アプリごとのプロキシ設定を行います。
- 端末の状況に合わせてバックグラウンド動作の許可を設定し、切断時のログを残してください。
それぞれ更新した後、ノード名と設定項目を確認します。同じサブスクリプションURLでも、返される内容や端末側の設定が完全に一致するとは限りません。
サブスクリプションサービスは、クライアントの種類に応じて異なる形式を返したり、片方のクライアントがまだ対応していないノードを含めたりすることがあります。そのため、両端末でノード数が違っても、更新に失敗したとは限りません。まず現在のグループ、フィルターの有無、更新ログのエラーを確認し、表示されないノードのプロトコルや転送設定を比較してください。サブスクリプションURLはアクセス情報です。画面キャプチャやログを共有する前に、URL全体を隠してください。
- 移行前に、旧クライアントのグループ、ルーティング、DNS設定を記録し、動作中の設定をすぐに削除しないでください。
- まずノードを移行し、その後で通信の振り分け設定を移します。ドメインルール、IPルール、ルール用リソースファイルを個別に確認してください。
- サブスクリプションの更新にプロキシが必要な場合は、既存の利用可能なノードで接続してから更新します。新規インストールで使えるノードがない場合は、まずサブスクリプションURLにアクセスできる状態にしてください。
クライアントを選んでも接続できないとき:症状別の確認方法
クライアントの変更は、どんな問題にも効く解決策ではありません。接続の失敗は、サブスクリプションの取得、設定の解析、コアの起動、ローカルでの通信中継、接続先とのハンドシェイクなど、さまざまな段階で起こります。まず失敗している段階を特定し、本当にコアを変更する必要があるか判断してください。以下の4つのケースから、次に試す操作を確認できます。
同じサブスクリプションなのに、別のクライアントではノードが一部表示されないのはなぜ?
現在のグループを更新し、ノードのフィルターを解除してから更新ログを確認します。表示されないノードを1つ選び、REALITY、特定のflow、または使用中のクライアントが認識しない転送方式が含まれていないか調べてください。互換性が原因なら、該当する組み合わせに対応したクライアントを選ぶか、サブスクリプションの提供元に対応形式を問い合わせましょう。何度も上書きインポートする必要はありません。
v2rayNではノードが正常に見えるのに、ブラウザーがプロキシを経由しないのはなぜ?
まずコアが正常にリッスンしているか確認し、次にタスクトレイメニューのシステムプロキシの状態と、ブラウザーがシステム設定に従っているかを確認します。ブラウザーにプロキシを手動設定している場合は、127.0.0.1と実際のポートを確認してください。ログにaddress already in useと表示される場合は、リッスンポートが競合しています。使用中のプログラムを停止するか、ポートを変更してください。
Androidでは接続済みなのに、一部のアプリだけ開けないのはなぜ?
設定画面でアプリごとのプロキシモードと対象アプリ一覧を確認し、まず同じノードを使ってブラウザーで接続を試します。すべてのアプリで失敗する場合は、ノードのハンドシェイクとDNSのログを確認してください。画面ロック後に切断される場合は、システムのバッテリー管理とバックグラウンド制限を確認します。最初からプロトコル、DNS、ルーティングを一度に変更しないでください。
v2rayNGに切り替えたら、以前の設定項目でエラーが出る場合は?
まず、インポートしたものがノードリンクか、完全なJSON設定かを確認します。完全な設定に含まれるinbound、outbound、DNS、ルーティングの各項目は、コアをまたいでそのまま使えるとは限りません。元のファイルを残し、新しいクライアントで最小限のノードを手動作成してください。接続できたら設定を1つずつ追加し、ログで実際に動作しているコアを確認します。
クライアント選びは3段階で整理できます。端末のOSを確認し、ノードが必要とするコアと設定項目を調べ、普段使う通信の中継方法を試してください。デスクトップではまずv2rayNを検討し、AndroidではXrayかv2flyかに応じてv2rayNGまたはv2flyNGを選びます。安定して動作している組み合わせは、名前や画面が変わっただけで移行する必要はありません。設定を正しく反映できるか、ログから問題を特定できるか、端末上のアプリの通信が想定どおりになるかを重視しましょう。