PCではまずv2rayNを選び、OSに合わせてデスクトップ版またはWPF版を選択します。AndroidでXray設定を使うならv2rayNG、既存のV2Fly設定を使うならv2flyNGを検討しましょう。インストールや端末間の移行、プロトコルの互換性を確認したい方向けに、プラットフォームやコア、通信の取り込み方の違いに加え、サブスクリプションの登録、ルーティングの確認、移行手順を解説します。
プラットフォーム比較:PCとAndroidは分けて選ぶ
v2rayN、v2rayNG、v2flyNGはクライアントの名称であり、3種類のプロキシプロトコルではありません。クライアントはノード管理、サブスクリプションの更新、実行パラメーターの設定、画面操作を担い、実際の接続は通常コアが処理します。名前が似ていてもインストールパッケージを共用できるとは限らず、同じリンクを読み込んでも設定が完全に一致するとは限りません。
| 比較項目 | v2rayN | v2rayNG | v2flyNG |
|---|---|---|---|
| 主なプラットフォーム | Windows、macOS、Linuxのデスクトップ | Android | Android |
| 画面とバージョン | Avaloniaデスクトップ版は3種類のデスクトップOSに対応。WPF版はWindows専用 | Androidのノード一覧と設定画面 | Androidのノード一覧と設定画面 |
| コアの位置づけ | バージョンや設定に応じて対応コアを選択可能。Xrayがよく使われます | Xrayコア | V2FlyのV2Rayコア |
| 通信の取り込み方法 | ローカルプロキシポート、システムプロキシ。対応バージョンではTUNも利用可能 | 通常はAndroid VPNサービス経由で通信を取り込みます | 通常はAndroid VPNサービス経由で通信を取り込みます |
| 選ぶ際のポイント | OS、アーキテクチャ、配布パッケージ、デスクトップの通信取り込み方法 | Xrayのプロトコル対応、サブスクリプション形式、アプリごとの設定 | 既存のV2Fly設定とバージョンの互換性 |
Windowsでは画面の実装方式とコアの対応機能も区別しましょう。WPFとAvaloniaはデスクトップ画面のフレームワークであり、通信プロトコルではありません。画面の異なるバージョンに切り替えても、サーバーが新しいプロトコルに対応するわけではありません。macOSとLinuxでは対応するデスクトップ版を、Androidでは端末のCPUアーキテクチャに合ったパッケージを選びます。
- PCで普段使いする場合:まずv2rayNを選び、OSとCPUアーキテクチャを確認してから、配布パッケージの動作要件をチェックします。
- AndroidでXrayノードを使う場合:v2rayNGを候補にし、ノードが要求するセキュリティ方式と通信設定を確認します。
- Androidで既存のV2Fly設定を使う場合:v2flyNGを検討し、現在のコアで元の設定を読み込めるか確認してから移行を判断します。
コアの比較:プロトコル名だけでなくセキュリティと通信設定も確認
Project Vは関連技術体系の背景にあたり、V2FlyはV2Rayを、Xrayは別系統のコアを開発しています。v2rayNGとv2flyNGの違いは、画面の色や名前の長さだけではありません。互換性を判断するには、プロトコル、通信方式、セキュリティ設定、コアのバージョンをあわせて確認しましょう。クライアントにノードが表示されても、コアが接続できるとは限りません。
v2rayN:デスクトップでの設定・管理
デスクトップで複数のサブスクリプショングループを管理し、ルーティングを切り替えたりコアのログを確認したりする用途に向いています。コアはノードのパラメーターと現在のバージョンで選べる項目に基づいて選択してください。複数のコアに対応していても、あらゆる組み合わせが動作するわけではありません。
おすすめ:Windows、macOS、Linuxでの普段使いのプロキシ接続や設定のトラブルシューティング。
v2rayNG:AndroidでのXray設定
おすすめAndroidでXray設定を使う場合は、v2rayNGを優先して検討できます。ノードがVLESS、REALITY、特定のflow値を要求する場合は、付属コアの対応状況を項目ごとに確認しましょう。リンクの先頭がどの文字列かだけでは判断できません。
おすすめ:Androidでの普段使いや、Xrayの機能が必要なノード。
v2flyNG:AndroidでのV2Fly設定
動作確認済みのV2Fly設定を引き続き使う場合に適しています。VMessなどのプロトコルの互換性は、設定項目とコアのバージョンによって異なります。Xray固有のパラメーターが含まれる場合は、むやみに読み込んで何度も再試行するのではなく、まず対応状況を確認してください。
おすすめ:既存のV2Fly設定を使い続け、設定の意味を変えずに運用したいAndroidユーザー。
たとえば同じVLESSでも、TLSとREALITYでは設定要件が異なります。同じVMessでも、TCPとWebSocketでは通信設定の項目が違います。WebSocketのパス、TLSのサーバー名、サーバーの待受ポートのいずれかが一致しないと、接続に失敗することがあります。認識できない項目を削除すればリンクを読み込める場合がありますが、それだけで正しく接続できるとは限りません。
選び方の結論:ノードに必要な設定項目を洗い出してからAndroidクライアントを選ぶ
プロトコル、通信方式、セキュリティ方式、サーバー名、flowの要件を書き出しましょう。Xray固有の機能が必要ならv2rayNGでの動作を優先して確認します。既存のV2Fly設定が動作している場合は、まずv2flyNGの設定を残し、同じノードで移行をテストしてください。
サブスクリプションと画面:単一ノードの読み込みとサブスクリプション管理は別
3つのクライアントはいずれもノード一覧を中心に操作しますが、単一の共有リンクとサブスクリプションURLは用途が異なります。vmess://やvless://の共有リンクは通常、1つのノードを示します。サブスクリプションURLはノード一覧の取得と、その後の更新に使います。サブスクリプションURLを通常のテキストノードとして読み込むと、一覧が空になったり、形式を認識できないというメッセージが表示されたりすることがあります。
- v2rayNにサブスクリプションを追加:メイン画面の「サブスクリプショングループ」メニューから「サブスクリプショングループ設定」を開き、グループ名とサブスクリプションURLを追加して保存し、「サブスクリプションを更新」を実行します。バージョンによってメニュー名が多少異なる場合があります。サブスクリプションURLを管理する項目を選び、個別サーバーの編集画面は使わないでください。
- v2rayNGに単一ノードを読み込む:共有リンクをすべてコピーし、メイン画面右上の「+」→「クリップボードからインポート」をタップします。読み込み後、ノードの編集画面でアドレス、ポート、通信方式、セキュリティ設定を確認してください。
- v2rayNGにサブスクリプションを追加:メイン画面のメニューから「サブスクリプション設定」を開き、名前とURLを追加して保存します。一覧に戻り、「サブスクリプションを更新」を実行してください。現在のバージョンに複数の更新方法がある場合は、URLに直接接続できるかに応じて適切な項目を選びます。
- v2flyNGでサブスクリプションを管理:現在のバージョンのサブスクリプション設定からURLを追加し、更新を実行します。移行前に、取得した形式を解析できるか確認してください。別のクライアントのグループ設定までURLと一緒に読み込まれるとは限りません。
デスクトップ版のv2rayNは、マウスとキーボードでグループ、ノード、ログを確認するのに向いています。Androidでは一覧、メニュー、接続ボタンを中心に操作します。画面の使い勝手は管理効率に影響しますが、接続品質はサーバー、ネットワーク経路、コアの設定によって決まります。画面切り替えの滑らかさだけで、どのクライアントの通信速度が速いかは判断できません。
ルーティングとポート:接続後に通信経路を確認
ルーティングによる振り分けでは、通信をプロキシ経由、直接接続、または遮断のいずれにするかを決めます。ノードの速度測定やサブスクリプショングループとは別の機能です。デスクトップのシステムプロキシは、通常、システムプロキシ設定に従うアプリにのみ適用されます。TUNは通信を取り込む範囲が異なり、権限、ルーティング、DNSに影響する場合があります。AndroidクライアントでVPNサービス経由の通信を取り込む場合は、アプリごとの設定で対象アプリが除外されていないかも確認してください。
以下の数値はトラブルシューティングの例であり、3つのクライアントに共通する初期設定ではありません。デスクトップクライアントが実際に127.0.0.1:10808で待ち受けている場合、このポートはPC上のアプリがプロキシに接続するためのものです。一方、サーバーアドレスの:443はリモートサーバーのポートです。用途が異なるため、「同じ値にそろえる」目的で同一の数値に変更してはいけません。ローカルポートが使用中の場合は待受ポートを変更し、アプリ側のプロキシ設定も合わせて変更してください。
- デスクトップでの確認:v2rayNの「設定」→「パラメーター設定」でローカル待受設定を確認し、メイン画面でシステムプロキシの状態を確認します。バージョンによってメニュー構成が異なる場合は、現在の画面に表示されている待受アドレスとポートを確認してください。
- Androidでの確認:接続を開始したら、システムのVPN許可が完了していることを確認し、クライアントの設定でアプリごとのプロキシ設定を確認します。別のVPNサービスが動作中の場合は、通常、先に停止する必要があります。
- ルールの照合:現在のルーティングプリセット、ルールの順序、デフォルトの出口を確認します。ルールは通常、上から順に適用されるため、先頭のルールが広すぎると対象の通信が先に一致してしまうことがあります。
- DNSの確認:ドメイン名の解決、ドメインルール、IPルールは互いに影響します。IPアドレスを1つ試すだけでは、ドメインによる振り分けが正しいか確認できません。実際にアクセスするドメインを使い、ログを確認してください。
Androidのアプリごとのプロキシ設定とドメインルーティングは別々の設定です。前者はどのアプリの通信をクライアントに取り込むかを決め、後者は取り込んだ通信の出口を決めます。あるアプリをVPNの対象外にした後でクライアントのドメインルールを変更しても、通常、そのアプリの通信経路は変わりません。
PC・Androidの併用:サブスクリプションを共有し、ルーティングは個別に設定
デスクトップとAndroidで同じサブスクリプションURLを使うことはできますが、サブスクリプションサービスが各端末での利用を許可し、取得したノード形式を両方がサポートしていることが前提です。URLを共有しても、ルーティング、DNS、アプリごとのリスト、システムプロキシの状態は同期されません。更新タイミングが異なると、ノード一覧が一時的に異なる場合もあります。
おすすめの構成:デスクトップのv2rayNとAndroidのv2rayNGを個別に確認
デスクトップ:v2rayN
- OSとアーキテクチャに合ったパッケージを選び、サブスクリプショングループを追加したら一度手動で更新します。
- ノードのパラメーターに合うコアを選び、実際に使うローカル待受ポートを記録します。
- まずシステムプロキシでブラウザーの接続を確認し、必要に応じてTUNの利用を検討します。
- ルーティングプリセットとDNS設定は個別に保存し、サブスクリプションがローカル設定を代替すると考えないでください。
Android:v2rayNG
- 同じサブスクリプションURLを追加し、対象ノードのセキュリティ設定と通信方式を確認します。
- VPNの許可を完了し、まずはテスト用アプリを通信の取り込み対象にします。
- 基本の接続を確認してから、アプリごとのプロキシ設定やカスタムルーティングを有効にします。
- 既存のV2Fly設定がある場合は、まずv2flyNGで動作する構成を維持します。
サブスクリプションの共有で省けるのはノードの登録作業だけです。両端末で個別に更新し、設定と通信経路を確認してください。
移行時の確認:一度に変更するのは1項目だけ
- 元のクライアントで動作しているノードのプロトコル、アドレス、ポート、通信設定を記録し、元の設定も残します。
- 新しいクライアントに同じノードを読み込み、まずはシンプルなルーティング設定を使います。カスタムルールをすぐに追加しないでください。
- 同じテストページにアクセスし、名前解決、接続、コンテンツの読み込みが完了するか記録します。失敗した場合は該当するコアのログを確認してください。
- 基本接続を確認できたら、ルーティング、アプリごとの設定、DNS設定を戻します。変更のたびに再テストすると、問題の原因となる設定を特定しやすくなります。
速度を比較する場合は、できるだけ同じ端末、同じネットワーク、同じノード、同じ時間帯で複数回測定してください。デスクトップの有線ネットワークとスマートフォンのモバイル回線の結果を、クライアントの違いによるものと直接判断することはできません。この記事では、条件をそろえて測定していない速度の数値を選定基準にしません。
選び方のQ&A:読み込み失敗、Webページが開かない、移行時に引き継ぐ設定
v2rayNGとv2flyNGは自由に入れ替えられますか?
まずノードが必要とするコア機能を確認してください。同じ共有リンクを移行先のクライアントに読み込み、プロトコル、通信方式、セキュリティ方式、flowを項目ごとに確認します。移行先のコアが対応していないパラメーターが含まれる場合は、別のクライアントに切り替えるか、サーバー側が提供する互換設定を使ってください。項目をそのまま削除するのは避けましょう。
サブスクリプションURLを開けるのに、更新後の一覧が空なのはなぜですか?
追加したものがサブスクリプションURLであり、アカウントページのリンクではないことを確認し、更新時のメッセージも確認してください。ブラウザーにログインページやエラーページが表示されても、サブスクリプションが有効とは限りません。サービス提供元に、現在のクライアントで解析できる形式が返されているか確認してから、再度更新してください。
v2rayNは起動中なのに、ブラウザーでWebページを開けない場合は?
まずシステムプロキシの状態を確認し、ブラウザーがシステムプロキシに従っているか、独自のプロキシ設定を使っているかを確認します。127.0.0.1:10808を手動で指定している場合は、そのポートが実際に待ち受けていて、プロキシの種類も正しいことを確認してください。その後、コアのログで接続や名前解決のエラーを確認します。
Androidで接続後、特定のアプリだけ通信できない場合はクライアントを変えるべきですか?
まず設定を開いてアプリごとのプロキシ設定を確認し、そのアプリが除外されていないか、独自のネットワーク設定を使っていないか確認してください。同じノードを使ったままルーティングルールを一時的に簡素化して再テストします。設定がコアの機能に対応していないとログで確認できた場合に、クライアントの変更を優先して検討しましょう。
クライアントの変更時、サブスクリプションURLをコピーするだけで十分ですか?
URLをコピーした後、新しいクライアントで更新し、選択中のノードも確認してください。ルーティングプリセット、DNS、アプリごとのリスト、ローカルポート、手動変更した項目も記録しておきましょう。これらは通常サブスクリプションには含まれないため、ノード一覧と一緒に自動で移行されるとは限りません。
クライアント選びは3つの条件で整理できます。端末のプラットフォームでクライアントを決め、ノードのパラメーターでコアを選び、アプリの使い方に応じて通信の取り込みと振り分けを設定します。デスクトップではv2rayNから始め、AndroidでXrayを使う場合はv2rayNGを優先して確認します。既存のV2Fly設定がある場合は、v2flyNGで動作する状態を基準にしましょう。まず再現性のある接続を確立してから、複雑な設定を追加してください。