V2Rayプロジェクトから広がるカーネル群
Project Vは、プロキシ通信を中心に構成されたプロジェクト群で、V2Rayはその中でも広く知られるツールです。コミュニティの発展に伴い、V2FlyコミュニティがV2Rayの保守と開発を引き継ぎました。一方、Xrayは関連するコードを基盤に独立したフォークとして発展し、独自の機能や設定への対応を進めています。この関係を知っておけば、3つの名称を同じソフトウェアの別名と誤解せずに済みます。技術的な背景には共通点がありますが、現在の対応機能はそれぞれ確認が必要です。あるフォークで追加された機能を、別のフォークでも使えると決めつけないでください。
「V2Rayサブスクリプション」は、日常的なやりとりではプロキシサーバー設定の集合を指す言葉として使われますが、その名称だけで、すべてのクライアントが内容を解析できるとは限りません。サブスクリプションには複数のプロトコル、トランスポート方式、セキュリティパラメーターが含まれる場合があります。クライアント側では、それらを使用するカーネルが認識できる設定に変換する必要があります。インポートに成功しても、それで完了ではありません。選択したサーバーのパラメーターが揃っていること、カーネルが正常に起動すること、実際の接続が想定したアウトバウンドを通ることも確認しましょう。
クライアントは管理、カーネルは通信処理を担当
v2rayNはデスクトップ向けGUIを提供し、サブスクリプショングループの整理、サーバーの選択、ルーティングの管理、プロキシモードの変更に使えます。実際のネットワーク機能は使用するカーネルや関連コンポーネントによって異なるため、選択肢は現在の配布パッケージと画面で確認してください。v2rayNGはXrayカーネルを採用したAndroid向けオープンソースクライアント、v2flyNGはV2Flyカーネルを採用したAndroid向けの選択肢です。いずれもGUIを主な操作手段としますが、メニューの位置、インポート形式、詳細設定は同じではありません。記事で説明されている設定名を、実際の画面と照らし合わせてください。
REALITY関連の設定では、プロトコル、トランスポート層、セキュリティ機能を区別する必要があります。REALITYは、任意のサーバーでボタンを押すだけで有効にできる汎用の高速化機能ではありません。接続する双方で、互換性のある設定と実装が必要です。サブスクリプションに含まれる重要なパラメーターを、経験だけを頼りに変更しないでください。必要な情報が不足している場合は、まず設定の入手元を確認しましょう。クライアントのアイコンを変えたり、UIのバージョンを切り替えたりしても、リモート側の設定が補われるわけではなく、サーバーのプロトコル対応も変わりません。
オープンソースライセンスで確認すべきこと
オープンソースとは、それぞれのライセンス条件のもとでコードを閲覧、利用、変更、再配布できることを意味します。関連するすべてのプロジェクトが同じライセンスを採用しているという意味ではありません。V2FlyのV2RayコアはMITライセンス、XrayコアはMPL 2.0で公開されています。GUIクライアント、カーネル、同梱コンポーネントには、それぞれ異なる条件が適用される場合があります。通常のインストールではクライアントのプロジェクト情報で構成要素を確認できます。コードの変更やソフトウェアの再配布を行う場合は、カーネルのライセンスをパッケージ全体のライセンスとみなさず、各ライセンスを個別に確認してください。
コードが公開されていても、ローカルのアクセス権限管理は別途必要です。サブスクリプションURLにアカウント情報が含まれる場合があり、設定にはサーバーアドレスや認証情報、ログにはアクセス先が記録される可能性があります。スクリーンショットを共有する際は、エラーの種類と必要な項目だけを残し、機密情報を隠してください。「LANからの接続を許可」を有効にする前に、待ち受けアドレス、認証方式、ファイアウォールの範囲を確認しましょう。この設定はほかの端末からローカルのプロキシポートに接続できるようにするもので、現在のPCの接続を安定させるために必須ではありません。
クライアント更新時は設定とルールも確認
クライアント本体、プロキシカーネル、サブスクリプションの内容、geoip・geositeルールデータは、それぞれ別の更新対象です。クライアントを更新するとUIや設定の生成方法が変わることがあり、カーネルの更新では対応する設定項目が変わる場合があります。サブスクリプションの更新ではサーバーパラメーターを取得し、ルールデータベースの更新ではドメインやIPアドレスの分類が変わります。ウェブサイトが想定どおりにルーティングされないときは、まず適用されたルールと順序を確認し、データファイルを更新すべきか判断してください。すべてのコンポーネントを一度に入れ替える必要はありません。
更新前にカスタムルーティングとDNSの設定をバックアップし、現在のプロキシモードを記録してください。更新後は、まず以前の設定で基本的な接続を確認してから、新機能を一つずつ有効にします。変更後に問題が発生した場合、最後に加えた設定だけを元に戻すほうが、ポート、DNS、ルーティングを同時に変更するより原因を特定しやすくなります。GUIクライアントによっては実行用の設定ファイルを再生成するため、生成済みファイルを直接編集しても次回起動時に上書きされることがあります。長期的に保持する設定は、クライアントが用意するカスタム設定欄に追加してください。
接続の問題を切り分けて確認する
サブスクリプションの更新失敗とサーバーへの接続失敗は、別の問題です。前者ではURLが完全で有効か、更新リクエストがどの経路を通るかを確認します。後者では、選択中のサーバー、プロトコルパラメーター、システム時刻、カーネルログを確認してください。サーバー一覧が表示されても、システムプロキシが有効とは限りません。ブラウザーから接続できても、すべてのアプリが同じプロキシ設定を使うとは限りません。「インポート、起動、通信の取り込み、名前解決、ルーティング」の順に確認すると、根拠のない再インストールを減らせます。
日常的な設定はまずシステムプロキシから始め、基本の接続を確認してからルーティングを追加しましょう。アプリの通信を取り込む必要がある場合に、TUNを有効にします。DNSやFakeDNSなどの詳細設定は、カーネルやルーティング方針とあわせて理解する必要があり、スイッチ一つをコピーするだけでは不十分です。使い方ガイドではサブスクリプションの追加、モードの選択、接続の確認を順に解説します。詳細設定マニュアルでは、フィルタールール、カスタムアウトバウンド、複雑なDNS構成を個別に扱います。具体的なエラーが発生している場合は、まずよくある質問で該当する手順を確認してから、変更する設定を決めてください。