V2RayはProject Vエコシステムを構成する主要プロジェクトの一つです。「クライアント、コア、プロトコル」の3層の関係を理解すると、設定名を覚えるより役立ちます。クライアントは操作画面を提供し、コアは接続処理を実行し、プロトコルは通信方法を定めます。デスクトップとスマートフォンで異なるクライアントを使うことはできますが、サーバーの設定値はそれぞれ正しく反映する必要があります。
プロジェクトの背景:コアからGUIへ
Project Vはモジュール型のネットワークプロキシツールを背景に持ち、V2Rayは受信、送信、ルーティング、トランスポートなどの機能を一つの設定体系にまとめています。V2FlyはV2Rayのコミュニティによる保守・開発を引き継いでいます。Xrayは関連するコードを基盤に発展し、一部のプロトコルやセキュリティ層で独自の実装を進めています。これらは同じプログラムの外観だけを変えたものではなく、名前が似ているからといって設定をそのまま相互利用できるとも限りません。
GUIクライアントはこうした機能に、サブスクリプショングループ、共有リンクの解析、メニュー設定、ログ表示などを加えます。画面で設定を選ぶと、クライアントがコアで処理できる形式に変換するのが一般的です。そのため、画面上で保存できても入力が受け付けられたことを示すだけで、起動や接続の成否はコアのログとサーバーの状態を合わせて確認する必要があります。
ガイドでクライアント名とコア名の両方を明記するのはこのためです。同じ「ルーティング設定」というメニューでも、利用できるプリセットは異なる場合があります。同じ共有リンクでも、実装によって設定項目の認識に違いが出ることがあります。端末を移行するときは、まず基本的な接続を確認し、その後にカスタムルールを移すと、過去の設定を一度にすべて移すより原因を特定しやすくなります。
コアの選択:設定の互換性を確認
XrayとV2Flyはいずれもさまざまなプロキシ設定を処理できますが、対応する設定項目、トランスポートの組み合わせ、拡張機能はそれぞれの開発に伴って変化します。REALITYなど特定の機能を使う場合は、その機能に明確に対応したコアを選んでください。既存のV2Fly設定も、対応する形式で使用する必要があります。プロトコル名を一つ変更するだけで同じ結果になるわけではありません。
接続の使い勝手はサーバーの負荷、ネットワーク経路、トランスポート方式、端末の性能にも左右されます。プロトコル名だけで低遅延、低消費電力、高速通信が保証されるわけではありません。特にモバイル端末では、バックグラウンド接続の安定性、頻繁な再接続の有無、不要な機能が有効になっていないかを確認しましょう。必要がなければ初期設定のままにし、一度に一つずつ変更すると、設定の影響を判断しやすくなります。
サブスクリプションに複数のプロトコルが含まれている場合、クライアントが対応する方法で設定を生成できます。ログに未知の項目、必須パラメーターの不足、セキュリティ層の非対応が表示されたら、読み込み結果とコアの対応状況を確認してから、設定の提供元にパラメーターを問い合わせてください。同じ誤った設定項目を残したままサーバーだけ切り替えても、起動時の問題は解決しないことがほとんどです。
オープンソース:ライセンスは階層ごとに確認
v2rayN、v2rayNG、v2flyNGはいずれもオープンソースのGUIクライアントで、中心となるコードにはGPL系ライセンスが採用されています。V2Flyのv2ray-coreとXray-coreは、コアコードにMPL 2.0を採用しています。クライアント、コア、同梱される依存関係のライセンスは必ずしも同一ではありません。各配布物に付属するライセンスとサードパーティーに関する表記を確認し、特定のコアのライセンスをインストーラー全体に当てはめないでください。
一般ユーザーにとって、オープンソースとはプログラムの実装を調べられ、コミュニティが問題報告、互換性の確認、機能改善に協力できることを意味します。ただし、設定の提供元を見極める必要がなくなるわけではなく、すべてのサブスクリプションサービスが信頼できるという意味でもありません。クライアントはあくまでツールです。サーバーの運営者、サブスクリプションURLの提供元、ログに記録される情報は、それぞれ確認してください。
問題を共有する際は、エラーの種類、関係する設定名、必要な環境情報だけを残すことをおすすめします。サブスクリプションURL、認証情報、設定全体にはアクセス用の情報が含まれている場合があるため、公開の場にそのまま貼らないでください。トラブルの調査に必要なのは通常、エラーの前後関係であり、個人の設定をすべて公開することではありません。
更新の仕組み:クライアントとサブスクリプションを分けて管理
クライアント、コア、サブスクリプションの更新はそれぞれ別の操作です。クライアントの更新では、画面、解析処理、機能連携などが変わります。コアの更新は低レベルのプロトコル処理や設定の動作に影響し、サブスクリプションの更新ではサーバー項目が同期されます。サブスクリプションの更新に失敗しただけでクライアントのインストールが壊れたとは限りません。コアが起動しない場合も、まずサブスクリプションをすべて削除して作り直すべきとは限りません。
更新前に、現在使える設定とカスタマイズ内容を控えておきましょう。更新後は接続方法を変えずに、通常のアクセスやよく使うアプリで動作を確認し、新しい機能は一つずつ試してください。コア、DNS、ルーティング、通信を取り込むモードを一度に変更すると、問題が起きても原因を特定しにくくなります。
このサイトのトップページではプラットフォーム別の案内と設定方法を紹介し、インストーラーの詳細はダウンロードページにまとめています。更新が必要かどうかは、現在の問題、必要な機能、リリースノートをもとに判断し、バージョン番号の変化だけで決めないようにしましょう。長く使える設定にするには、できるだけシンプルに保ち、それぞれのカスタムルールの用途を明確にし、不要になったルールは削除してください。
3つのクライアントの使い分け
v2rayN:デスクトップ向けで、複数のサブスクリプショングループの管理、ログの確認、よく使うルーティング設定のメンテナンスに適しています。デスクトップOSによって画面、システムプロキシの連携方法、権限の動作が異なる場合があるため、別のプラットフォームの手順をそのまま適用しないでください。既存の設定を使う場合は、まず常用するプロトコルとカスタムルールが正しく読み込めるか確認し、その後で画面やコアの設定を見直しましょう。
v2rayNG:Android向けで、Xrayコアを使用します。サブスクリプション、共有リンク、接続設定をモバイル向けの画面で管理できます。実際に使える範囲は、システムのVPN利用許可、アプリごとのプロキシ設定、バックグラウンド実行の制限によって変わります。特定のアプリで接続できない場合は、プロキシルールだけでなく、そのアプリが通信を取り込む対象から除外されていないかも確認してください。サブスクリプションを再度読み込むだけでは解決しない場合があります。
v2flyNG:V2Flyコアが必要なAndroid環境向けで、対応する設定をすでに使っている場合の選択肢です。v2rayNGと名前は似ていますが、同じ機能を持つと決めつけず、コアの対応状況を確認してください。プロトコルとトランスポートの設定を照合し、特定のコア拡張に依存する設定なら、その拡張に対応したクライアントを使いましょう。読み込み後に重要な設定項目を次々削除・変更しても解決にはなりません。
いずれのクライアントも、接続には有効な設定をユーザー自身で用意する必要があります。GUIは設定を管理するためのもので、インストールしただけでサーバーが自動的に用意されるわけではありません。初めて使う場合は設定ガイドをご覧ください。プロトコル、セキュリティ層、コアの互換性を比較する場合はプロトコルの解説を、サブスクリプション更新や接続の問題を調べる場合はよくある質問をご覧ください。