まずノードのパラメーターに合わせてコアを選び、クライアントが設定を正しく生成できるか確認しましょう。REALITYまたはxtls-rprx-visionを使うノードには、対応機能を備えたXrayコアが必要です。既存のVMess、WebSocket、TLSノードでは、伝送方式とセキュリティの各パラメーターを個別に確認してください。デスクトップとAndroid間でサブスクを移行する方向けに、引き継げる設定と再確認が必要な項目を解説します。
クライアント・コア・ノードのプロトコルを区別する
v2rayNはデスクトップ用クライアントで、サブスク管理、ノード編集、システムプロキシ、コアプロセスの管理を行います。XrayとV2Flyは、実際にプロキシ通信を処理するコアです。クライアントをインストールしただけでは、接続に使われるコアは特定できません。実行ログでコア名、バージョン、起動結果を確認してください。
V2FlyコミュニティはV2Rayプロジェクトを保守しています。XrayはV2Rayプロジェクトから派生し、その後、伝送方式やセキュリティ機構、設定項目を独自に発展させてきました。共通の起源があっても、新機能が両方に同時に追加されるとは限らず、JSON設定全体をそのまま相互に利用できるわけでもありません。
- クライアント層:v2rayN、v2rayNG、v2flyNGが操作画面を提供し、サブスクを読み込んでコアを起動します。
- コア層:XrayまたはV2Flyが設定を解析し、インバウンド/アウトバウンド接続を確立してルーティングルールを適用します。
- プロトコル層:VMess、VLESS、Trojanなどはプロキシ通信の方式を示すもので、クライアント名とは異なります。
- 伝送・セキュリティ層:TCP、WebSocket、TLS、REALITYなどの設定が接続条件を決めます。ノード一覧のプロトコル表示だけで判断しないでください。
Android版ではv2rayNGがXrayコア、v2flyNGがV2Flyコアを使用します。デスクトップ版v2rayNでは、現在のバージョンで選べるコアと、そのノードが実際に呼び出すコアを確認してください。画面にノードを保存できても、それは入力チェックを通過しただけで、コアによる接続の成功を意味しません。
REALITY・XTLS Visionと主要プロトコルを比較
REALITYとXTLS Visionは、解決する課題が異なります。REALITYはXrayが提供する伝送セキュリティ機構です。Visionはxtls-rprx-visionで指定するフロー制御モードで、VLESS設定でよく使われます。両者は組み合わせて使われることがありますが、同じ設定項目ではありません。条件を満たすTLS設定でもVisionを利用できます。
| 確認項目 | Xrayコア | V2Flyコア | 移行時の対応 |
|---|---|---|---|
| VMess | 対応。ただし伝送パラメーターの適合が必要 | 対応。ただし伝送パラメーターの適合が必要 | UUID、セキュリティ設定、伝送方式、TLSを確認 |
| VLESS | 対応。REALITYまたはVisionとの併用が一般的 | VLESSの実装はあるが、Xrayの拡張機能すべてに対応するわけではない | VLESSという名称だけで判断せず、securityとflowも確認 |
| REALITY | 該当機能に対応したバージョンで処理 | XrayのREALITY設定をそのまま利用できない | Xrayを使い続けるか、サービス提供元から別形式のノード設定を入手 |
| xtls-rprx-vision | 該当するフロー制御に対応したバージョンで処理 | 同名のXrayフロー制御設定をそのまま移行できない | サービス側の要件を確認し、flow項目を削除するだけで済ませない |
| WebSocket + TLS | 一般的な組み合わせに対応 | 一般的な組み合わせに対応 | パス、Host、SNI、証明書検証を確認 |
REALITYノードでは通常、サーバーから提供される公開鍵関連のパラメーター、serverName、shortId、クライアントフィンガープリントなどが必要です。サーバーの秘密鍵をクライアントに設定してはいけません。共有リンク、クライアントの入力欄、コアのJSONでは項目名が異なる場合があります。項目名を機械的にコピーせず、使用中のバージョンの説明に従って対応付けてください。
ノードの要件に合わせてXrayまたはV2Flyを選ぶ
サブスクにREALITYまたはVisionのノードが含まれている場合は、これらの機能に対応したXrayクライアントを優先してください。V2Fly環境で既存の設定を長期間使っており、双方が対応するプロトコルと伝送方式を使用しているなら、まず動作を確認してから移行を検討できます。コアの選択は速度ランキングではありません。実際の通信品質は回線の混雑、サーバー負荷、ローカルネットワークにも左右されます。
Xrayコア
おすすめREALITYやxtls-rprx-visionを必要とするノード向けです。選ぶ前に、クライアント内蔵コアのバージョンと入力画面の対応状況を確認してください。コアは対応していても、画面から必要な項目をすべて読み込めない場合があります。
向いている環境:REALITYまたはVisionを含むサブスク、デスクトップとv2rayNGを併用する場合
V2Flyコア
動作確認済みのV2Fly設定や、一般的なVMessノード向けです。既存のルーティングやDNS設定を維持する場合も、設定形式と使用中のバージョンが一致しているか確認してください。
向いている環境:既存のV2Fly設定があり、v2flyNGを使用し、ノードのパラメーターが合致している場合
「新しいコアなら、古いノードもすべてそのまま読み込める」とは限りません。クライアントのサブスク解析機能も変換に関わるため、同じ共有リンクでもクライアントによって異なる項目として解析され、一部の拡張パラメーターが無視されることがあります。クライアントを切り替えたら、サブスクを何度も更新するより、まずノード編集画面で各項目を確認するほうが問題を特定しやすくなります。
設定移行時に確認したい5つの項目
移行時は、まずノードを1つだけ読み込み、接続できることを確認してからサブスク全体を読み込みましょう。設定全体にはリモート接続だけでなく、ローカル待ち受け、DNS、ルーティング、アウトバウンドタグも含まれます。ノード情報だけの移行なら変更箇所を絞り込めます。JSON全体を上書きすると、アプリの接続方式や振り分け結果まで変わる可能性があります。
- 現在の環境を記録する。クライアントのログでコア名とバージョンを確認し、元の設定を保存します。v2rayNでは「設定」→「パラメーター設定」を開き、ローカル待ち受けに関する項目を確認できます。タブ名はバージョンによって異なる場合があるため、現在の画面に従ってください。
- 接続先の情報を確認する。サーバーアドレス、ポート、UUIDまたはパスワードを確認します。ポートはサーバー側の指定に従うものです。別のノードが443を使っているからといって、現在のノードも443に変更してはいけません。
- 伝送設定を確認する。WebSocketのpathとHost、TLSのserverName、REALITYの各パラメーターは、サーバー側の設定に合わせる必要があります。HostとserverNameは用途が異なります。値が同じでも、1つの項目にまとめることはできません。
- セキュリティとフロー制御を確認する。TLSまたはREALITYの選択と、
xtls-rprx-visionが必要かどうかを確認します。読み込み後にVLESSと表示されても、これらの追加条件がすべて保持されているとは限りません。 - ローカルのルールを再設定する。DNS、ルーティングの順序、アウトバウンドタグ、システムプロキシを再確認します。存在しないoutboundTagを参照すると、設定の起動に失敗したり、意図しない振り分けになったりすることがあります。
V2Flyには複数の設定形式と独自の開発方針があり、Xrayでも設定項目や検証ルールが変更されます。そのため、どちらもJSONだからといって構造が同じとは限りません。不明な項目、無効な伝送方式、未対応のflowに関するエラーが出た場合は、まず設定を読み込んでいるコアと形式を確認し、エラーが示す項目を調べてください。エラー項目を一括削除するのは避けましょう。
この3つの数値はそれぞれ異なる役割を示しており、そのまま使う推奨設定ではありません。リモートポートはサーバーへの接続に使い、ローカルポートはアプリからプロキシへ接続する際に使います。たとえばブラウザーがローカルのHTTPポートを指定する場合、コアが実際にその待ち受けを提供している必要があります。混合ポートを使用中なら、実際の待ち受け方式に合わせて設定し、以前のクライアントのポート記録をそのまま使わないでください。
デスクトップとAndroidでのサブスク利用方法を整理する
1つのサブスクに複数のプロトコルが含まれることがあります。デスクトップで読み込みに成功しても、Androidがすべての項目に対応しているとは限りません。サービス提供元がクライアントの種類に応じて異なる内容を返すこともあるため、両方の端末でノード名が同じでも、プロトコル、伝送方式、セキュリティの項目を確認してください。
設定例:コアの対応状況に合わせてノードを使い分ける
デスクトップ:v2rayN
- REALITYまたはVisionを使う場合は、実際にXrayが呼び出されているか確認する。
- まずノードを1つテストし、その後システムプロキシとルーティングを確認する。
- 元の設定を保存し、ローカル待ち受けポートを個別に記録する。
Android:v2rayNGまたはv2flyNG
- Xrayの機能が必要な場合はv2rayNGを選ぶ。
- v2flyNGを使う場合は、V2Flyに適合するノードを選ぶ。
- 初回接続時はシステムVPNの許可を確認してから、アプリの通信をテストする。
サブスクを共有しても、実行時の設定すべてが共有されるわけではありません。ノードのパラメーター、DNS、ルーティング、システムへの接続方式を個別に確認してください。
Macのシステムプロキシは、主にシステムプロキシ設定に従うアプリに影響します。一方、Androidクライアントは通常、システムVPNインターフェースを通じて通信を処理します。接続方式が異なるため、AndroidでWebページを開けても、Macのシステムプロキシが正しく設定されている証拠にはなりません。トラブル時は、まずコアの起動を確認し、次にアプリの通信がコアに届いているか調べてください。
読み込みは成功するのに接続できない場合の対処
「設定を起動できるか → リモートとのハンドシェイクが成功するか → アプリの通信がプロキシに入っているか」の順に確認してください。一度に変更するのは1つの項目群に限定し、最初に出た具体的なエラーを記録します。ノード一覧のテスト結果は特定のテスト先に対するものです。ブラウザー、DNS、ルーティングを含む全体の確認には代わりません。
REALITYノードをv2flyNGに読み込めたのに、接続できないのはなぜ?
インポーターが一部の項目しか保存していない可能性があります。ノード編集画面を開き、セキュリティの種類とflowを確認してください。サーバーがREALITYまたはVisionを要求する場合は、対応機能を備えたv2rayNGを使うか、サービス提供元からV2Flyに対応したノードを入手してください。セキュリティの種類をTLSに変更するだけで再試行するのは避けましょう。
Xrayに切り替えたら、以前のWebSocketノードが使えなくなったのはなぜ?
まず、ログ上でコアが正常に起動しているか確認し、WebSocketのパス、Host、TLSのserverName、リモートポートを照合してください。ローカルポートの使用中というエラーが出た場合は、別のプロキシプロセスを停止します。ハンドシェイクエラーなら、DNSやルーティングを同時に変更せず、まず元のノード設定に戻してください。
ログでは起動成功なのに、MacのブラウザーでWebページを開けないのはなぜ?
v2rayNのシステムプロキシ状態を確認し、「設定」→「パラメーター設定」で実際の待ち受けポートを確認してください。次に、macOSの「システム設定」→「ネットワーク」→現在のネットワークサービス→「詳細」→「プロキシ」で、プロキシのアドレスとポートを照合します。クライアントで自動プロキシ設定を使っている場合は、その設定が適用されているかも確認してください。
どちらのコアのほうが低遅延?何度も切り替えて試すべき?
両方のコアが対応する同じノード、同じ伝送方式、同じテスト先を使い、近い時間帯に繰り返し測定してから、実際のページ読み込みや継続的な通信も確認してください。地域の異なるノード同士の結果では、コアの速度を比較できません。既存の設定が安定していて必要な機能を満たしているなら、1回の遅延値だけを理由に移行する必要はありません。