VMess プロトコル
VMessはProject Vエコシステムで早くから使われてきたプロトコルで、ユーザー識別子と時刻情報によって認証します。設定には通常、サーバーアドレス、ポート、UUID、追加ID、トランスポート方式が含まれます。
クライアントとサーバーの主要フィールドは一致していなければなりません。システム時刻の大きなずれ、ユーザー識別子の誤り、トランスポート設定の不一致があると、認証段階で接続が終了する場合があります。
V2RAY GLOSSARY
VMess、VLESS、REALITYから、サブスクリプション、ルーティングルール、TUNモード、FakeDNSまで。各用語が解決する課題、登場する場所、混同しやすい設定の関係を解説します。
まずカテゴリーから目的の項目を探し、用語の関連設定をたどってください。プロトコル名は「どの形式で接続するか」、コア名は「どのプログラムが設定を実行するか」、クライアント名は「どのGUIでコアを管理するか」を示します。
01 · PROTOCOL
プロトコルは認証とデータ交換の形式を定義し、TLSやREALITYなどの仕組みがトランスポート層の認証や暗号化を担います。設定をインポートする際は、プロトコル種別と対応パラメーターを一式で一致させる必要があります。
VMessはProject Vエコシステムで早くから使われてきたプロトコルで、ユーザー識別子と時刻情報によって認証します。設定には通常、サーバーアドレス、ポート、UUID、追加ID、トランスポート方式が含まれます。
クライアントとサーバーの主要フィールドは一致していなければなりません。システム時刻の大きなずれ、ユーザー識別子の誤り、トランスポート設定の不一致があると、認証段階で接続が終了する場合があります。
VLESSは軽量な認証プロトコルで、ユーザー認証とトランスポート層の設定を分離します。完全なトランスポート暗号化は単独で担わず、実際の設定ではTLSやREALITYと組み合わせることが多い方式です。
主なフィールドはUUID、flow、encryption、network、securityです。XTLS Visionを使用する場合、クライアントとサーバーのflow値を一致させる必要があります。
Trojanはパスワードでクライアントを認証し、通常はTLS接続上で動作します。クライアントにはサーバーアドレス、ポート、パスワード、証明書に対応するサーバー名を入力します。
接続に失敗した場合は、パスワード、SNI、システム時刻、証明書チェーンを個別に確認します。ポートに接続できても、TLSハンドシェイクとプロトコル認証が完了したとは限りません。
REALITYはXrayエコシステムのトランスポートセキュリティ方式で、VLESSと組み合わせて使われることが多い機能です。クライアント設定には通常、serverName、publicKey、shortId、spiderX、フィンガープリント種別が含まれます。
publicKeyとshortIdはサーバー設定から取得し、serverNameはハンドシェイクに使用します。いずれかの値が一致しないと、ハンドシェイクの中断や接続直後の切断につながる場合があります。
XTLS VisionはXrayのフロー制御方式の一つで、一般的な設定値はxtls-rprx-visionです。通常はVLESSのflowフィールドに記述し、コアが接続データを処理する方式を指定します。
単独で使用できるノードプロトコルではありません。サーバー、クライアント、使用するコアのバージョンが同じフロー制御設定に対応している必要があります。
TLSはネットワーク接続を暗号化し、サーバーを認証します。Webサイトやさまざまなプロキシトランスポートで広く使われ、V2Rayクライアントではsecurity、serverName、allowInsecure、フィンガープリントなどが関連設定です。
証明書のドメイン名、SNI、サーバーアドレスは必ずしも同じ値ではありませんが、サーバーの構成に適合している必要があります。システム時刻が誤っていると、有効な証明書が未発行または期限切れと判定されることもあります。
02 · CORE
コアは設定を読み込み、実際の接続を処理します。クライアントはサブスクリプション、ノード、ログ、システムプロキシなどのGUI操作を提供します。役割は異なるため、クライアントが設定項目に対応していても、コア側の処理能力が必要です。
Project Vはプロキシプロトコル、ルーティング機能、ネットワークツールを中心とするオープンソース技術エコシステムです。初期V2Rayの設定構造と中核概念は、後続の複数のコアやクライアントの重要な基盤になりました。
現在ドキュメントを読む際は、エコシステム名、コアプロジェクト、GUIクライアントを区別する必要があります。3者には関連がありますが、同じソフトウェア名の別表記ではありません。
XrayはV2Rayエコシステムのコア分岐の一つで、VLESS、REALITY、XTLS Visionなどに対応します。v2rayNとv2rayNGでは、接続、ルーティング、DNS設定の処理にXrayがよく使われます。
クライアント画面の「コアを切り替える」は、基盤となる実行プログラムを変更する操作です。切り替え前に、現在のノードのプロトコル、トランスポート、設定フィールドが対象コアに対応しているか確認してください。
V2FlyはProject Vコミュニティが継続的に保守するコアの系統です。V2Rayの設定構造を引き継ぎ、インバウンド、アウトバウンド、ルーティング、DNS、ポリシーなどのモジュールを提供します。
Xrayとは多くの基本概念を共有しますが、対応範囲や具体的なフィールドが異なる場合があります。設定をコピーする際は、実際に使用するコアのドキュメントと起動ログを基準にしてください。
v2rayNはWindows、macOS、Linux向けのGUIクライアントで、サブスクリプション、ノード、システムプロキシ、ルーティングルール、コアを管理できます。デスクトップ版と従来のWPF版ではUI技術が異なりますが、基本的な操作の流れは共通しています。
クライアント自体が設定を生成し、コアのプロセスを制御します。起動に失敗した場合は、ノードを何度も切り替えるだけでなく、クライアントの表示とコアのログを併せて確認してください。
v2rayNGはAndroid向けGUIクライアントで、通常はXrayコアと組み合わせて使用します。サブスクリプション、QRコードや共有リンクからのインポート、ノード切り替え、ルーティングモード、アプリ別プロキシに対応します。
システムの省電力制限、バックグラウンド実行ポリシー、ローカル仮想ネットワークの権限が、接続の継続性に影響します。接続が途切れるときは、ノード設定だけでなくこれらのシステム設定も確認してください。
v2flyNGはV2Flyコアを採用したAndroid向けGUIクライアントで、一般的なモバイルクライアントに近い操作感を備えています。V2Fly固有の設定動作やプロトコル互換性が必要な環境に適しています。
v2flyNGを選ぶ際は、ノードのプロトコルとトランスポート方式がV2Flyコアでサポートされているか確認してください。特定コア専用のフィールドを含む設定は、インポートしても起動できない場合があります。
03 · SUBSCRIPTION
サブスクリプションは設定をまとめて配布し、ノードは個別の接続情報を表します。更新するとリモートの内容を再取得するため、ローカルでの名前変更、フィルター、グループ設定は更新方針と併せて管理する必要があります。
サブスクリプションはサービス提供者が発行するノード一覧のURLです。クライアントが内容を読み込むと、共有リンクや構造化設定を解析し、更新可能なノード一覧を作成します。
サブスクリプションの更新失敗は、URLのコピー漏れ、リンクの変更、ネットワーク要求の失敗、非対応形式の返却などで発生します。更新ログを確認すれば、要求エラーと解析エラーを切り分けやすくなります。
ノードはクライアント内の個別サーバー設定で、通常はアドレス、ポート、プロトコル、ユーザー識別子、トランスポート設定を含みます。ノード名は識別用のラベルであり、基盤の接続認証には使われません。
同じサブスクリプション内でも、ノードごとにプロトコルやトランスポート方式が異なる場合があります。ノードのパラメーターをコピーするときは、サーバーアドレスとポートだけを移さないようにしてください。
共有リンクは単一ノードのパラメーターをインポート可能なテキストにエンコードしたものです。先頭のプロトコル接頭辞が、クライアントに解析方式を伝えます。フィールドを直接含むリンクもあれば、設定内容をエンコードしたリンクもあります。
共有リンクは単一設定のインポートに適し、サブスクリプションURLは変化し続けるノード一覧の管理に適しています。クライアントでは通常、異なるインポート入口を使用します。
遅延は端末から接続先までデータが往復するのにかかる時間で、通常はミリ秒で表示されます。ローカルネットワーク、経路、サーバー負荷、テスト対象の影響を受けます。
クライアントによって、ポート探測、HTTPリクエスト、完全なプロキシ接続などテスト方法が異なるため、結果を単純に比較することはできません。1回の測定値が長期的な接続性能を示すとも限りません。
実接続遅延はプロキシ経由で実際の接続を確立し、指定したテスト対象へアクセスして所要時間を測定します。サーバーポートの確認だけよりも、プロトコル認証、トランスポートハンドシェイク、外部アクセスが正常かを反映します。
テスト失敗は完全な経路のどこかが完了しなかったことを示しますが、結果だけで障害箇所を特定することはできません。クライアントログと併せてDNS、ハンドシェイク、ルーティング情報を確認してください。
サブスクリプショングループは、異なる提供元のサブスクリプションとノード一覧を分類するクライアント内の管理単位です。各グループに個別の更新URL、有効状態、フィルター条件、更新履歴を設定できます。
複数のサブスクリプションに似たノード名が含まれる場合、グループによって設定の提供元を確認しやすくなります。グループを削除すると、そのサブスクリプションから生成されたノードも削除されることが多いため、先にローカルの管理ルールを確認してください。
04 · ROUTING
ルーティングモジュールはプロトコル認証を行わず、リクエストをどのアウトバウンドへ渡すかを決定します。ルールの範囲と順序、ドメイン解決結果、クライアントの動作モードが最終的なマッチングに影響します。
ルーティングルールは、ドメイン、IP、ポート、ネットワーク種別、プロトコル、プロセス情報に基づき、接続先のアウトバウンドを決めます。代表的なアウトバウンドはプロキシ、ダイレクト、ブロックですが、具体的な名称はクライアントが生成する設定によって異なります。
ルールは通常、上から順にマッチングされます。より具体的な範囲のルールを汎用ルールより前に置かないと、先に広い条件へ一致してしまう場合があります。
トラフィック分岐は、異なるネットワーク要求を別々のアウトバウンドで処理する設定方式です。ドメインのカテゴリー、IP範囲、アプリのプロセス、接続先ポートなどに応じて経路を分けられます。
分岐結果はルールだけでなく、DNS解決と動作モードにも左右されます。切り分ける際は、リクエストがドメイン名とIPアドレスのどちらでルーティング判定に入ったか確認してください。
GeoIPはIPアドレスの地域やネットワーク種別ごとに整理されたデータ集合で、ルーティング設定のIPマッチング条件として利用できます。大量のネットワーク範囲を手作業で管理する負担を減らします。
GeoIPデータはアドレス割り当てが変わるため、定期的な更新が必要です。ルーティング段階で接続先IPを取得できる場合にのみ、該当ルールがマッチングに参加できます。
GeoSiteは用途やカテゴリー別に整理されたドメイン集合で、関連サイトをまとめてマッチングする際に使われます。完全なドメイン、サブドメイン、特定カテゴリーを対象にできますが、範囲はデータセットの内容によって決まります。
GeoSiteはドメイン情報をマッチングし、GeoIPのIPマッチングとは処理段階が異なります。複雑なトラフィック分岐では、両方のルールを組み合わせて使うことがよくあります。
TUNモードは仮想ネットワークインターフェースでシステム通信を取り込み、システムプロキシを参照しない一部のアプリにも適用できます。インターフェースに入ったデータをコアへ渡し、ルーティングルールに基づいてアウトバウンドを選択します。
有効化する際は、仮想インターフェースの権限、DNSの引き継ぎ、ルーティングテーブル、ローカルネットワークへのアクセスを確認してください。他のネットワークツールが同時にシステムルートを変更すると、ルールが上書きし合う場合があります。
システムプロキシはOSが提供するプロキシ設定の入口です。v2rayNで有効にすると、ローカル待受アドレスがシステム設定へ書き込まれ、その設定に従うアプリのリクエストがクライアントへ送られます。
すべてのプログラムがシステムプロキシを参照するわけではないため、適用範囲は通常TUNモードより狭くなります。クライアントを終了する前にシステムプロキシを元へ戻すと、停止したローカルポートへアクセスし続ける事態を防げます。
05 · NETWORK
DNS、SNI、ローカル待受ポートはそれぞれ異なる処理段階にあります。ドメインの解決方法、TLSがサーバー名を選ぶ仕組み、アプリがクライアントへ通信を渡す方法を理解すると、接続問題の切り分けに役立ちます。
DNSはドメイン名をIPアドレスへ変換する基本ネットワークサービスです。V2Rayコアはシステムの解決結果を使うことも、設定に応じてドメインごとに指定したDNSサーバーへ問い合わせることもできます。
DNS設定はドメインへのアクセスとルーティング判定に影響します。解決結果が想定外の場合は、問い合わせ先、問い合わせ経路、キャッシュ状態、DNS通信に対するルーティングルールの処理方法を確認してください。
FakeDNSはアプリにマッピング用アドレスを返し、コア内にそのアドレスと元のドメインとの対応関係を保持します。その後の接続がコアに入ると、ドメインを復元してドメインベースのルーティングルールを適用できます。
TUNモードと併用されることが多く、通常のパブリックDNSの解決結果を提供するのではなく、ドメイン情報を保持することが主な目的です。アドレスプールは実際のLANセグメントと重ならない範囲にしてください。
DNSリークは、指定した経路で処理されるはずの問い合わせが、実際にはシステムや別の名前解決経路から送信される状態です。ドメイン解決とトラフィック分岐の方針が一致しなくなったり、アプリが別の接続先アドレスを取得したりする可能性があります。
切り分けでは、システムDNS、クライアントDNS、ブラウザー独自の名前解決設定、TUNの適用範囲を確認します。サーバーアドレスを一か所変更するだけでは、すべての問い合わせ経路が変わるとは限りません。
SNIはTLSハンドシェイクで接続先サーバー名を示すフィールドで、クライアント設定では通常serverNameに対応します。サーバーはこの名前に応じて証明書とサイト設定を選択できます。
SNIが一致しないと、証明書のドメイン名エラーやハンドシェイク失敗が発生する場合があります。ノードの入力値とサーバー側の実際の設定を項目ごとに照合してください。
ローカル待受ポートは、クライアントが端末上で開いてアプリの通信を受け付けるポートです。SOCKS、HTTP、混合入口を別々のポートで待ち受けることも、クライアントで一括管理することもできます。
他のプログラムがポートを使用していると、コアは該当するインバウンドを起動できません。ログにaddress already in useといった表示がある場合は、使用中のプログラムを終了するかローカルポートを変更します。