V2RayからV2Fly、Xrayへ
Project Vは、V2Rayのエコシステムを理解する出発点です。V2Rayは、インバウンド、ルーティング、アウトバウンド、通信方式などの機能を組み合わせ、プロキシを単一プロトコルの接続プログラムにとどめません。ユーザーが日常的に操作するサーバー一覧やスイッチは、多くの場合、外側のGUIクライアントが提供します。「V2Rayクライアント」と言うときは、GUIアプリ、実行コア、接続に使うプロトコルのどれを指しているか確認しましょう。関連はありますが、同じ層のものではありません。
V2FlyはV2Rayのコミュニティ開発を引き継ぎ、Xrayは関連するコードを基盤に独自の機能を発展させています。共通する設定の背景がある一方、独自の実装や進化を遂げた部分もあります。そのため、一部の基本項目が似ていても、どの設定でもそのまま相互に使えるとは限りません。VLESS、REALITY、通信方式の拡張、特定のセキュリティ設定を使う場合は、クライアント名だけで判断せず、実際のコアが対応しているか確認してください。
3つのクライアントの役割
v2rayNは、サーバー管理、サブスクリプションの更新、プロキシモード、ルーティング設定をGUIから行えるオープンソースのデスクトップクライアントです。v2rayNGはXrayコアを使用するAndroid向けのオープンソースクライアントです。v2flyNGもAndroid向けで、V2Flyコアを使う選択肢となります。クライアントを選ぶときは、まずOSを確認し、次に既存の接続で必要なプロトコル機能を確認しましょう。「インポートできる」ことと「すべての設定項目に対応している」ことは同じではありません。
GUIクライアントは画面上の設定をコアが実行する設定に変換するため、画面上の名称とネイティブJSONのフィールドが一対一で対応するとは限りません。また、コアが対応している項目でも、すべてがGUIの操作項目として公開されるとは限りません。高度な設定を行う場合は、使用中のクライアントの説明を確認してから、コアの各フィールドの意味を調べてください。他のクライアント向けの画面操作をそのまま当てはめると、似た名前の項目を同じ機能だと誤解することがあります。
オープンソースライセンスと設定の責任
オープンソースでは、各ライセンスに従ってコードを閲覧、使用、再配布できますが、関連するすべてのプロジェクトが同じライセンスを採用しているわけではありません。Xray-coreとV2FlyのV2Ray-coreはMPL-2.0を採用しています。クライアントのGUI、コア、同梱コンポーネントのライセンスは、それぞれ個別に確認してください。ソフトウェアを改変、配布、統合する場合は、該当プロジェクトのライセンス本文を参照し、エコシステム全体をまとめた呼び方だけで判断しないようにしましょう。
オープンソースであることは、設定の取得元を確認する必要がないという意味ではありません。接続パラメーターはサブスクリプションの提供元が決め、サービスの可用性はリモートサーバーに左右され、通信の入口や振り分けはローカルクライアントが担います。内容のわからない設定を使う場合は、ルーティングの宛先、DNS設定、待ち受け範囲を確認してください。特に、トラブル対応のためであっても、ローカルプロキシの待ち受けを他のデバイスからアクセスできるアドレスに安易に変更しないでください。
クライアント・コア・ルールは個別に更新
クライアントのGUI、コア、ルールデータの更新は、それぞれ異なる層に影響します。GUIの更新でメニューの位置が変わることがあり、コアの更新で対応フィールドや動作が変わることがあります。ルールデータの更新は、ドメインやIPアドレスの集合に対するマッチ結果に影響する場合があります。更新後の変化を調べるときは、まずどの層が変わったかを記録し、接続パラメーターとルーティング結果を比較しましょう。すべての不具合をサーバーのせいにしないことが大切です。
更新前に必要なローカル設定を保存し、更新後は以前に再現できたアプリの通信を使って確認してください。カスタムルールが多い場合は、具体的なルールが汎用ルールより前に並んでいるかも確認しましょう。ダウンロードページではクライアントへのリンクを案内し、プロトコルの参考ページでは設計上の違いを解説しています。個別フィールドの動作を確認する際は、実際に動作しているコアとログもあわせて参照してください。
プロトコルとコアの解説を読む → 3つのクライアントから選ぶ →