v2rayN・v2rayNG・v2flyNGの選び方|V2Rayクライアントの対応OSとコアを比較

v2rayN・v2rayNG・v2flyNGの対応OS、搭載コア、サブスクリプションとルーティング機能を比較。デスクトップとAndroid、それぞれの用途に合った選び方を解説します。

この記事のポイント

デスクトップでは、まずv2rayNが対応するOSとアーキテクチャを確認しましょう。AndroidでXrayノードを使うならv2rayNG、V2Flyコアが必要ならv2flyNGを検討します。この記事ではクライアント、コア、ノードのプロトコルの違いを整理し、同じサブスクリプションでもインポート結果が異なる理由や、複数端末での設定、ポート確認、移行手順を解説します。名前の似ているかどうかではなく、必要な機能を満たすかを確かめてから、実際の通信状況を比較しましょう。

対応OSとコア:まずインストールするものを確認

v2rayN・v2rayNG・v2flyNGはいずれもクライアントであり、ノードサービスではありません。クライアントはサーバー情報を管理して設定を生成し、コアを起動して、システムやアプリにプロキシの接続先を提供します。プロトコルや通信方式、DNS、ルーティングルールを処理するのはコアです。クライアントをインストールしても、利用可能なサーバーが自動で手に入るわけではありません。サブスクリプションURLも信頼できる提供元から入手する必要があります。

名前は似ていますが、「デスクトップ版とAndroid版が完全に対応する」とは限りません。v2rayNはデスクトップ向けで、画面や利用できるコアは配布パッケージによって異なります。v2rayNGはAndroid向けで、Xrayコアを使用します。v2flyNGもAndroid向けですが、V2Flyコアを使用します。画面が似ていても、Android向けの2つのクライアントであらゆる設定をそのまま共有できるわけではありません。

クライアント 対応OS コアの確認 選ぶ前に確認すること
v2rayN Windows、macOS、Linux Xrayやsing-boxなどのコアを管理可能。対応状況は配布パッケージによって異なります OS、プロセッサーアーキテクチャ、デスクトップ画面、実際に呼び出されるコア
v2rayNG Android Xrayコア ノードのプロトコル、通信パラメーター、Androidのシステム要件
v2flyNG Android V2Flyコア ノードのプロトコルと設定形式が、そのコアでサポートされているか

Windows版は画面の違いだけで別のノードプロトコルになるわけではありません。macOSとLinuxも、それぞれに対応したインストールパッケージを選んでください。ダウンロードページでOSとx64、arm64などのアーキテクチャを確認し、クライアントの実行ログでコア名とバージョンを確認します。クライアントとコアのバージョンは別々の情報です。トラブルシューティングの際は、それぞれ記録しておきましょう。

ノードのプロトコル:同じV2Rayクライアントでも設定を共有できるとは限らない

「V2Ray対応」という表現だけでは、具体的なパラメーターまでは分かりません。インポート前に、プロトコル、サーバーアドレス、ポート、認証情報、通信方式、安全設定を確認しましょう。VMessとVLESSはプロキシプロトコル、WebSocketとgRPCは通信方式です。TLSとREALITYは接続のセキュリティ設定に関わります。それぞれ異なる階層の項目なので、相互に置き換えることはできません。

v2rayNG:AndroidでXrayの設定を使う

おすすめ

AndroidでXray対応のVLESS・REALITY設定を使う場合は、まずv2rayNGを確認しましょう。接続できるかどうかは、搭載されているコアのバージョンと、公開鍵、serverName、shortIdなどのパラメーターが正しくそろっているかによって決まります。

おすすめの用途:Androidでの日常利用、Xrayノードのパラメーターが分かっている場合

v2flyNG:AndroidでV2Flyの設定を使う

既存のV2Fly設定を使う場合や、V2Flyの動作を確認したい場合に適しています。VMessとWebSocketなどの組み合わせも項目ごとに確認してください。XrayのREALITY設定をそのままこのコアに適用することはできません。

おすすめの用途:V2Fly環境の指定、既存の互換設定の維持

v2rayN:デスクトップで設定を管理

デスクトップでサブスクリプション、ノード、ルーティングをまとめて管理できます。インポートできてもノードが起動しない場合は、ノード一覧に表示されているかだけでなく、実際に呼び出されるコアを確認しましょう。

おすすめの用途:デスクトップのブラウザーや開発ツール、複数サブスクリプションの管理

たとえば、サーバーのポートが443だからといって、必ずTLSを有効にする必要があるわけではありません。ドメイン名を任意に入力してよいわけでもありません。WebSocketのpath、リクエストのHost、TLSのserverNameにはそれぞれ役割があり、同じ値の場合も異なる値の場合もあります。サーバー側で指定されたパラメーターを入力し、ノード名から推測しないでください。

結論:まずコアを確認し、インポート結果を切り分ける

インポートに失敗した場合は、共有形式と項目の対応状況を確認します。インポート後にコアが起動しない場合は、プロトコルとコアの互換性を確認しましょう。AndroidのノードでREALITYが明示されているなら、v2rayNGのコアとパラメーターを先に確認してください。ノード名を変更したり、何度もQRコードを読み取ったりしても解決にはなりません。

サブスクリプション管理:URLを共有しても、すべての設定が共有されるわけではない

サブスクリプションは通常、複数のノードをまとめて取得するために使います。同じURLでも、クライアントによって結果が異なることがあります。配信側がクライアントの種類に応じて内容を返す場合や、クライアントのパーサーが未対応のプロトコルを除外する場合があるためです。ノード数の違いをすぐにネットワーク障害と判断せず、「ダウンロード失敗」「解析失敗」「一部ノードが未対応」を切り分けましょう。

  1. まず1つのノードで確認します。信頼できる提供元の共有リンクを使い、クライアントからクリップボードまたはQRコードでインポートします。接続できることを確認してからサブスクリプション全体を追加すると、問題の範囲を絞り込みやすくなります。
  2. 次にサブスクリプショングループを作成します。v2rayNでは通常、「サブスクリプショングループ」→「サブスクリプショングループ設定」から操作します。v2rayNGでは、サイドメニュー→「サブスクリプショングループ設定」が一般的です。グループ名とURLを入力してから更新してください。バージョンによって画面上の表記が異なる場合は、現在の画面にあるグループ管理の項目を確認しましょう。
  3. 直接接続とプロキシ経由の更新を使い分けます。URLに直接アクセスできる場合は、まず直接更新します。既存の接続を通さないとアクセスできない場合は、プロキシ経由で更新してください。プロキシ経由の更新には利用可能なノードが必要です。すべてのノードが使えない状態で、自力で復旧することはできません。
  4. サブスクリプションの認証情報を保護します。サブスクリプションURLにはアクセストークンが含まれる場合があります。URL全体を公開スクリーンショットやトラブルの記録に載せないでください。問い合わせ時は、エラーの種類、応答ステータス、ドメインの一部を伏せた情報だけを共有しましょう。

サブスクリプションの更新では通常、システムプロキシ、アプリごとの対象リスト、ルーティングの優先順位、ローカルの待ち受けポートは同期されません。パソコンとスマートフォンで同じサブスクリプションを使っていても、接続方法やDNSの設定は異なる場合があります。更新後は、現在選択中のノードが一覧に残っているかも確認してください。一覧が更新されても、選択状態が意図どおりに切り替わっているとは限りません。

複数端末で使う:同じ提供元のサブスクリプションを使い、接続設定は個別に行う

デスクトップ:v2rayN
  • サブスクリプションを追加し、対応するコアとノードを選択します。
  • まずシステムプロキシを使い、ブラウザーで接続を確認します。
  • 必要に応じて、開発ツールにローカルプロキシのアドレスを入力します。
Android:v2rayNG
  • 同じ提供元から案内された、対応するサブスクリプションURLを使います。
  • システムVPNの接続許可を完了します。
  • 利用するアプリに応じて、対象アプリのリストを設定します。

ノードの提供元は共通にできますが、一覧が一致するかどうかはサブスクリプションの応答内容とプロトコルの対応状況によります。ルーティングとアプリごとの設定は、各端末で個別に管理してください。

ルーティングと接続方式:デスクトップのシステムプロキシとAndroidのVPNモードの違い

v2rayNのシステムプロキシは、システム設定に従うアプリにローカルプロキシを使うよう通知する機能です。すべての通信を取り込むわけではありません。一部のコマンドラインツール、ゲーム、独自のネットワーク処理を行うプログラムは、システムプロキシを使わないことがあります。デスクトップのTUNモードでは、より多くの通信を取り込めますが、アクセス権限、仮想ネットワークアダプター、ルーティングの設定も必要です。通常のプロキシで接続できることを確認してから有効にしましょう。

Android版のv2rayNGとv2flyNGは、VpnServiceを使ってローカルVPNインターフェースを作成し、選択したアプリの通信をクライアントに渡せます。システムにVPNアイコンが表示されても、確認できるのはローカルインターフェースが作成されたことだけです。リモートノードに接続できているとは限りません。アプリごとのリストで、この経路に入るアプリを指定します。経路に入った後、プロキシを使うか直接接続するかはルーティングルールで決まります。

ローカルポート:接続先を指定してデスクトップの通信を確認

クライアントが起動中と表示されているのに、特定のツールで通信できない場合は、ポートの確認が役立ちます。ここでは手動設定の例として、SOCKSの入口を127.0.0.1:10808、HTTPの入口を127.0.0.1:10809にしています。すべての配布版で共通の初期値ではありません。現在のバージョンで混合ポートや別のポートを使う場合は、設定画面と起動ログを確認してください。

10808
この例で手動設定したSOCKSの待ち受けポート
10809
この例で手動設定したHTTPの待ち受けポート

v2rayNの「設定」→「パラメーター設定」で、ローカルの待ち受けに関する項目を確認します。画面のバージョンによって項目名や分類が異なる場合があります。HTTPプロキシのみ対応するツールには、実際にHTTP接続を受け付けるポートを入力してください。SOCKSポートを適当に指定してはいけません。以下のコマンドで確認できるのは、この例のポートで待ち受けがあるかどうかだけです。リモートノードが利用可能かどうかは確認できません。

# Windows PowerShell:この例の2つのローカル接続先を確認
Get-NetTCPConnection -State Listen -LocalPort 10808,10809

# Linux:ローカルの待ち受けポートを確認
ss -lnt

# macOS:ローカルのTCP待ち受けを確認
lsof -nP -iTCP -sTCP:LISTEN

待ち受けがない場合は、まずコアが正常に起動したか、設定エラーがないか、ポートを別のプロセスが使用していないかを確認します。待ち受けがあるのに対象ツールで通信できない場合は、ツールで指定したプロキシの種類とアドレスを確認してください。入口はループバックアドレスに制限するのが基本です。LAN内の端末から使う必要がある場合は、待ち受けアドレス、ファイアウォール、アクセス制御を個別に検討してください。ローカルの入口をそのままインターネットに公開してはいけません。

移行とトラブル対処:パラメーターを記録し、1つずつ確認

v2rayNからAndroidクライアントに移行する場合は、デスクトップの実行設定一式ではなく、サブスクリプションURLか単一ノードの共有リンクを移行しましょう。生成された設定全体には、デスクトップ用のインバウンド設定、ファイルパス、ルール用リソースの場所、コア固有の項目が含まれる場合があります。元の端末で動作していても、スマートフォンにそのままインポートできるとは限りません。

  1. 元のノードのプロトコル、通信方式、安全設定、重要な項目を記録し、公開しない設定のバックアップを1つ保管します。
  2. 新しいクライアントにノードを1つだけインポートし、接続方法は初期設定のまま、実際のページ表示またはサービスへのリクエストをテストします。
  3. 次にサブスクリプションを追加し、ルーティングとアプリごとの対象リストを設定します。設定の種類を1つ変更するたびに再テストし、複数の要因を同時に増やさないようにしましょう。
  4. 速度を比較する場合は、ノード、接続先、ネットワーク、テスト時間帯をそろえてください。AndroidではWi-Fiまたはモバイルネットワークも統一し、接続ネットワークの違いをコアの性能差と混同しないようにしましょう。

パソコンでは使えるのに、スマートフォンにインポートするとノードが減るのはなぜですか?

まず両端のサブスクリプションURLと更新時刻を確認し、更新ログに解析エラーがないかを確認します。特定のプロトコルのノードだけが表示されない場合は、Androidクライアントのコアが対応しているか確認してください。すべて表示されない場合は、応答内容が有効なサブスクリプションデータかを確認します。ログインページやエラーページが返されていないかも確認しましょう。

v2rayNGは接続済みなのに、特定のアプリだけ開けない場合はどうすればよいですか?

設定内のアプリごとのプロキシ画面を開き、リストのモードと対象アプリが含まれているかを確認します。続いてルーティングルールとログを確認してください。他のアプリが正常に動作しているなら、まずアプリの接続設定の違いを調べましょう。すぐにすべてのノードを変更する必要はありません。

v2flyNGはXrayの設定全体をそのままインポートできますか?

設定全体に互換性があることを前提にしてはいけません。まずノードのプロトコルがV2Flyに対応しているか確認し、共有リンクまたは手入力でノードを作り直しましょう。REALITYなどXray固有の設定が必要な場合は、対応するクライアントとコアを選んでください。安全設定の項目を削除して無理に起動するのは避けましょう。

v2rayNGに変えれば、必ずv2flyNGより速くなりますか?

そのようには判断できません。両方が対応する同じノード構成を使い、同じネットワークで実際のリクエスト、接続の安定性、継続的なデータ転送を比較してください。プロトコルや回線が異なる場合、テスト結果だけではクライアントの性能差を判断できません。

選び方は3ステップにまとめられます。まずデスクトップかAndroidかでクライアントを絞り、次にノードのプロトコルに合わせてコアを選び、最後にアプリの対象範囲とルーティングを設定します。デスクトップではv2rayN、AndroidでXrayの機能が必要ならv2rayNGをまず確認し、V2Flyに依存する場合はv2flyNGを選びましょう。用語を確認するには用語集、接続方法や通信の振り分けを設定するには使い方ガイドをご覧ください。

クライアントをダウンロード