この記事の要点

コアを選ぶ際は、まずノードの要件を確認し、次にクライアントが設定値をすべて保持できるかを確認します。REALITYやVisionを使うノードにはXrayが適しています。既存のVMessノードでは、通信方式とTLSの設定も確認しましょう。この記事では、プロジェクト・コア・クライアントの違いを整理し、デスクトップとAndroidそれぞれの選び方、クライアント変更後の確認手順を紹介します。

系譜を整理:V2Ray、V2Fly、Xray

V2Rayは、プロキシツールのエコシステムを指す場合と、特定のコアプログラムを指す場合があります。Project Vはこのツール群のプロジェクトとしての背景にあたり、接続を実際に処理するコアは設定を読み込み、ローカルの接続口を作成し、出力先を選んでルーティングを行います。これらの名称を混同すると、名前の似たクライアントなら対応プロトコルも同じだと思い込む原因になります。

2つのコアの系譜を理解するうえで、2020年は重要な節目です。V2FlyコミュニティはV2Rayコアの開発と保守を引き継ぎました。一方、Xrayは当時のV2Rayのコードをベースに分岐し、その後独自に開発が進みました。両者には共通の歴史や設定の概念がありますが、同じプログラムの別スキンではありません。一方のバージョン番号から、もう一方の新旧を判断することもできません。

そのため、「サブスクリプションのインポートに成功」と表示されても、クライアントが設定を解析・保存できたことを示すだけで、実行中のコアがすべての項目を受け入れたとは限りません。互換性を判断するときは、クライアントのバージョン、実際に動作しているコア、ノードのプロトコル構成をあわせて確認してください。

プロトコル対応:VMessとVLESSだけで比べない

ノードの設定は通常、複数の層で構成されます。VMessとVLESSはプロキシプロトコル、TCP・WebSocket・gRPCなどは通信方式、TLSとREALITYは接続のセキュリティ層に関わる項目です。VisionはXrayのフロー制御機能に関係します。それぞれの役割は異なり、REALITYをVLESSと同列の、単独で置き換えられるプロキシプロトコルとして扱うことはできません。

ノードの特徴XrayコアV2Flyコア選び方の目安
VMess一般的な構成に対応一般的な構成に対応通信方式、TLS、サーバー側の設定を確認
VLESSの基本プロトコル対応基本機能を実装VLESSという名称だけで完全な互換性を判断できない
VLESS + REALITY対応。バージョンと設定値の一致が必要XrayのREALITY設定をそのまま利用できない該当機能に対応したXrayクライアントを選ぶ
Visionフロー制御対応。サーバー側との設定一致が必要XrayのVisionフロー制御には非対応サーバーが要求するflowの値を維持
WebSocket + TLS一般的な構成に対応一般的な構成に対応パス、Host、SNI、証明書を確認

ここでいう「対応」は、過去のすべてのバージョンで利用できるという意味ではありません。サブスクリプションに新しい通信方式や項目が含まれると、古いクライアントでは解析時に失敗することがあります。画面上で認識されても、コアが古ければ起動時にエラーになる場合もあります。使用中のバージョンの機能説明を確認し、同じプロトコル名だから常に互換性があるとは考えないでください。

結論:ノードの要件を維持し、項目を削除してコアを変えない

security=realityやflow=xtls-rprx-visionが設定されている場合は、該当機能に対応したXrayクライアントを優先してください。これらの項目を削除しても、通常のTLSノードとして使えるようになるわけではありません。サーバーが要求する接続方式が変わってしまいます。

クライアントの選び方:デスクトップとAndroidを分けて考える

v2rayNはデスクトップ向けのGUIクライアントです。名前に「v2ray」とあるだけで、実際に使われるコアを判断することはできません。利用できるコアや切り替え方法はリリースによって異なるため、端末の設定画面や起動ログで確認してください。REALITYを使う場合は、インストールフォルダーにXrayのファイルがあるかだけでなく、そのノードを実際にXrayが処理していることを確かめましょう。

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

おすすめ

Xrayの機能を使うノード向けです。選ぶ理由はプロトコルとの互換性であり、名称や画面デザイン、測定していない速度差ではありません。インポート後もREALITYとフロー制御の設定が保持されているか確認してください。

おすすめのユーザー:サービス提供元からXray、REALITY、Visionの利用を指定されたAndroidユーザー。

v2flyNG:Android向けのV2Fly対応クライアント

V2Flyコアを使用し、互換性を確認済みのノードに適しています。既存のVMess接続が安定しているなら、もう一方のコアのほうが機能が多いという理由だけで、すぐに移行する必要はありません。

おすすめのユーザー:V2Fly用の設定があり、ノードのパラメーターを確認済みのAndroidユーザー。

v2rayN:デスクトップ向けの設定管理

サブスクリプション、サーバー、ルーティングをまとめて管理できます。利用中の配布版で選べるコアを確認し、ノードの起動時にどのコアプログラムが実行されたかをログで確認してください。

おすすめの用途:Windows、macOS、Linuxのデスクトップでのサブスクリプション整理とルーティング設定。

ここでのおすすめは、記事で取り上げるXrayの機能が必要な場合を対象としており、あらゆるネットワーク環境での性能ランキングではありません。クライアントの画面とコアは別々に更新されます。入力欄が表示されても、実行中のコアがその設定を処理できるとは限りません。

サブスクリプションを確認:ノードの編集画面で設定値をチェック

v2rayNでは、「サブスクリプショングループ」→「サブスクリプショングループ設定」からURLとグループを確認し、「サブスクリプショングループ」メニューから対象のグループを更新できます。更新コマンドの表記はバージョンによって異なることがあるため、使用中のメニューから選んでください。更新後はサーバーの項目をダブルクリックし、プロトコル、アドレス、ポート、通信方式を確認します。ノード名だけで判断しないでください。

  1. まずプロトコルを確認。項目がVMessかVLESSかを確かめます。ノード名にある「高速」「専用回線」などの文言はプロトコルのネゴシエーションに関係せず、コアを選ぶ根拠にはなりません。
  2. 次に通信方式を確認。WebSocketではパスとHost、gRPCではサービス名を重点的に確認します。サーバー側の通信方式に合わせて、クライアントにも対応する設定を入力してください。
  3. セキュリティ層を確認。TLSではサーバー名と証明書の検証を確認します。REALITYでは、サーバーから指定された公開鍵やshort IDなども確認してください。項目名は使用中の画面に表示されるものを基準にします。
  4. 最後にフロー制御を確認。サーバーがVisionを要求する場合は、flowがxtls-rprx-visionになっていることと、対応するコアを使っていることを確認してください。

v2rayNGやv2flyNGでも、サブスクリプショングループから更新してから、対象ノードの編集画面で設定を確認します。同じURLでも、クライアントのバージョンやフィルター設定、配信側の応答によって一覧が異なることがあります。

デスクトップとAndroidの併用:まずノードを確認し、設定を個別に合わせる

デスクトップとAndroidで同じサブスクリプションを使うことはできますが、実行設定一式をそのままコピーするのは避けてください。デスクトップのシステムプロキシ、AndroidのVPN接続、アプリごとの設定、ローカルの待ち受けアドレスは端末環境に依存します。ノードと一緒にコピーするのではなく、サーバー情報だけを共有してください。

手順:同じノードで両端の互換性を確認

デスクトップ:v2rayN
  • 対象のサブスクリプショングループを更新し、ノードを1つ選ぶ。
  • REALITYを使う場合は、起動ログでXrayが使用されていることを確認する。
  • 「設定」→「パラメーター設定」でローカルの待ち受けポートを確認する。
  • まずシステムプロキシを確認し、その後ルールを個別に確認する。
Android:ノードに合わせてクライアントを選択
  • Xrayの機能を使うノードにはv2rayNGを使用する。
  • V2Flyと互換性のあるノードにはv2flyNGを使用できる。
  • 同じグループを更新し、アドレス、ポート、セキュリティ設定を確認する。
  • AndroidのVPN接続を許可し、アプリごとのプロキシ対象を確認する。

両方の端末でサブスクリプションを更新し、接続を確認してください。同じサブスクリプションを使っても、端末の設定は自動で同期されません。

パソコンでは使えるのにスマートフォンでは使えない場合は、まずノードの具体的な設定値を比較し、次に端末の時刻、VPNの許可、アプリごとの対象範囲を確認してください。一部のアプリだけで問題が起きるなら、2つのコアのプロトコル対応の違いと決めつけず、通信の対象範囲やDNSを先に確認しましょう。

ポートとトラブルの切り分け:ローカルの接続口とサーバー側を区別

ポート番号は具体的な設定値であり、コアの種類を示すものではありません。ここでは、ローカルのSOCKS接続口の例として10808、リモートサーバーのポートの例として443を使用します。どちらも必須のデフォルト値ではなく、相互に置き換えることもできません。実際の値はクライアントの設定とノードの編集画面で確認してください。

2020
2つのコアの系譜を理解するうえで重要な年
10808
ローカルSOCKS待ち受けポートの例
443
リモートサーバーポートの例

たとえば、アプリにSOCKSプロキシを手動で設定する場合、クライアントが実際にそのポートで待ち受けていることを確認したうえで、アドレスに127.0.0.1:10808を指定できます。ノードの編集画面にあるリモートポートは、提供元の指定値を使用してください。通常のローカル利用ではループバックアドレスで待ち受ける設定にし、トラブル調査のためだけにすべてのネットワークインターフェースへ公開しないでください。

症状まず確認する項目次の手順
サブスクリプションを更新してもノードが表示されない更新時の通知、グループの有効状態、形式、フィルター条件サブスクリプションが解析できるか確認してから、コアとの互換性を調べる
起動直後に未知の項目が報告されるクライアントのログ、コアのバージョン、設定形式互換性のあるクライアントに更新し、ノードの設定値は維持する
接続がタイムアウトするサーバーアドレス、リモートポート、現在のネットワークからの到達性同じ端末でネットワークを切り替えて再確認し、複数の項目を同時に変更しない
TLSまたは認証に失敗する端末の時刻、SNI、UUID、REALITYの設定値提供元の指定値と項目ごとに照合する
ログは正常だがアプリからアクセスできないシステムプロキシ、VPNの許可、ルーティング、DNSアプリの通信が実際にローカルの接続口へ届いているか確認する

移行の判断:再現できる設定を基準として残す

コアを変更する前に、現在使えているノードとルーティング設定を保存してください。GUIクライアントは、起動時やノード切り替え時にconfig.jsonを再生成することがあります。そのため、この記事では一時生成ファイルを直接編集せず、画面から設定を変更して記録を残す方法を推奨します。XrayとV2Flyには共通する設定項目もありますが、設定全体を含むJSONファイルをそのまま相互利用できるわけではありません。

結論:プロトコル要件を満たし、変更する要素を絞る

コアを選ぶ際に最優先すべきなのは、ノードが元の設定値のまま動作するかどうかです。互換性を確認したうえで、普段の接続状況を比較しましょう。問題が起きたときは設定を一度に1つだけ変更すれば、原因がサブスクリプション、コア、通信の振り分けのどこにあるかを特定しやすくなります。