V2Ray用語集:
プロトコル・サブスクリプション・ルーティング
まずプロトコル、コア、クライアントの違いを整理し、リクエストがどの設定を通るのか確認しましょう。各用語カードでは意味や使われる場面、混同しやすいポイントを解説。カテゴリから直接探せます。
用語の見分け方:VLESSはプロキシプロトコル、REALITYはセキュアなトランスポート方式、Xrayはコアです。3つとも同じ接続設定に含まれることがあります。
プロトコル・トランスポート
プロトコルはプロキシリクエストのやり取りを定め、トランスポート設定はデータの運び方を定めます。接続のトラブルを調べる際は、ノード名だけでなく、この2つを分けて確認してください。
- VMess
- VMessはProject Vのエコシステムで使われるプロキシプロトコルで、ユーザーIDなどのパラメーターを使って認証します。接続をインポートしたら、アドレス、ポート、ユーザーID、トランスポート設定がサーバー側と一致しているか確認してください。システム時刻のずれが認証に影響する場合もあります。認証に失敗したときは、関係のないルーティングルールを変更する前に、まず時刻を同期しましょう。
- VLESS
- VLESSは軽量なプロキシプロトコルで、データの暗号化は行いません。TLSやREALITYなどのセキュリティ層と組み合わせて使うことが一般的です。ユーザーID、フロー制御、トランスポートの各設定にはそれぞれ役割があり、VLESSというだけで異なるノード間の設定を使い回せるわけではありません。インポート後はサーバー側が指定した値を維持し、特にフロー制御の値を独自に追加・削除しないでください。
- Trojan
- Trojanは通常、TLS接続上で動作するプロキシプロトコルで、パスワードによる認証を行います。パスワードが正しくても、証明書、サービス名、トランスポートの設定まで正しいとは限りません。ハンドシェイクに失敗した場合は、TLSの問題とパスワード認証の問題を分け、クライアントログに記録された失敗箇所を確認してください。
- トランスポート設定
- トランスポート設定は、TCP、WebSocket、gRPCなど、プロキシのデータを運ぶ方式を指定します。VMessやVLESSなどのプロキシプロトコルとは別の概念です。WebSocketのパスやリクエストヘッダー、gRPCのサービス名がサーバー側の照合に使われる場合があります。プロトコル名を変更するだけでは、トランスポート設定の不一致は解消できません。利用可能な組み合わせはコアのバージョンにも左右されます。
コア・クライアント
クライアントは設定画面を提供し、コアは実際のネットワーク処理を担います。特定のオプションが使えるかどうかは、クライアントの画面だけでなく、選択中のコアとそのバージョンも確認してください。
- Project V
- Project Vは、V2Rayを中心に発展したネットワークツールのプロジェクトと技術エコシステムを指し、特定のデザインのデスクトップソフトを意味するものではありません。ドキュメントを読む際は、プロジェクトの背景、実際に動作するコア、接続を管理するGUIクライアントを区別しましょう。複数のプロジェクトで一部の概念や設定形式が共通していても、機能、項目、初期動作のすべてが同じとは限りません。
- V2Fly
- V2FlyはV2Rayの開発を引き継ぐコミュニティプロジェクトで、v2flyコアが接続、ルーティング、DNSなどのネットワーク処理を担います。Android向けのv2flyNGは、このコア系列を使うクライアントの選択肢です。設定情報を参照するときは、対象となるコアを確認し、別のフォーク専用の新しい設定項目をそのまま適用しないでください。
- Xray
- XrayはV2Rayの技術基盤から発展したコアのフォークで、独自のプロトコル実装と設定の進化を続けています。v2rayNGはXrayコアを使用し、デスクトップクライアントにも対応するコアを選べるものがあります。プロトコルの組み合わせが使えるかどうかは、現在のコアのバージョンとクライアントの対応状況で判断してください。クライアント名だけでは判断できません。
- GUIクライアント
- GUIクライアントは、サブスクリプション、ノード、ルーティング、プロキシの切り替えなどを画面上で操作できるようにし、コアの設定を生成または受け渡します。v2rayNはWindows、macOS、Linuxのデスクトップ向け、v2rayNGとv2flyNGはAndroid向けです。画面に「起動中」と表示されても、関連プロセスが動作していることを示すだけで、リクエストの成功は別途確認が必要です。
利用環境に合ったクライアントを選ぶにはクライアント3種を比較。インストール方法はクライアントのダウンロードをご覧ください。
サブスクリプション・ノード
サブスクリプションは設定の配布に使われ、ノードは接続パラメーターの一式を表します。レイテンシ測定だけで判断せず、実際のサービスへの接続や継続的な安定性も確認しましょう。
- サブスクリプション
- サブスクリプションは、1つのURLから接続設定をまとめて取得する仕組みです。更新すると、そのURLに再度データをリクエストします。URLには通常、第三者に知られてはいけないアクセス用の情報が含まれるため、スクリーンショット、チャット、公開ログに載せないよう注意してください。更新に成功しても設定を取得できただけで、すべてのノードが使えるとは限りません。手順はサブスクリプションのインポートガイドをご覧ください。
- ノード
- ノードはリモート接続設定の一式で、通常はアドレス、ポート、プロトコル、認証情報、トランスポート設定などを含みます。サーバー名だけを指すものではありません。ノードの表示名は提供元が独自に付けている場合があるため、名前だけで実際の所在地、帯域幅、利用可否を推測できません。ノードのリンクにはアクセス認証情報が含まれることもあります。トラブル情報を共有する前に、機密部分を隠してください。
- レイテンシ
- レイテンシは、疎通確認やリクエストにかかる時間です。測定方法、接続先の場所、その時点のネットワーク状況によって変わります。TCPポートへの接続テストと、プロキシ経由でWebページにアクセスするテストは同じではないため、結果をそのまま比較しないでください。レイテンシが低くてもダウンロード速度が速いとは限りません。継続的な通信速度には、混雑、パケットロス、サーバー負荷、帯域幅も影響します。
- 実接続レイテンシ
- 実接続レイテンシは通常、クライアントからプロキシ経由でテスト先にアクセスしたときの所要時間を指します。具体的な計測範囲は実装によって異なります。リモートポートだけを確認する方法より実際の利用経路に近いものの、特定の接続先を使った1回の測定にすぎません。テストに成功しても特定のWebサイトを開けない場合は、そのサイトに関するDNS、ルーティングルールの照合、アプリのプロキシ設定も確認してください。
ルーティング
まずリクエストがコアに届いているかを確認し、次にどのアウトバウンドにルールが一致したかを調べます。ドメインルール、IPルール、DNSの動作はまとめて把握する必要があります。
- ルーティングルール
- ルーティングルールは、ドメイン、IPアドレス、ポートなどの条件に基づいて、リクエストのアウトバウンドを選びます。ルールの順序によって最終的な一致結果が変わります。関連するコアでは、
domainStrategy: "IPIfNonMatch"は、ドメインが一致しなかった場合にIPアドレスを解決して再照合することを意味します。この設定はすべての通信をプロキシに送るものではなく、実際の接続先はルールとデフォルトのアウトバウンドで決まります。
- GeoIP
- GeoIPは、IPアドレスを地域や用途別に分類したデータで、ルーティングルールのIP照合に使われます。データベース上の分類を示すもので、ユーザーやサーバーの正確な所在地を証明するものではありません。クラウドサービスのアドレス、IPアドレスの割り当て変更、データの更新頻度などによって結果が変わることがあります。意図しない振り分けが起きた場合は、実際に解決されたIPアドレスと使用中のデータファイルをあわせて確認してください。
- GeoSite
- GeoSiteは、サービス、カテゴリ、地域ごとに整理されたドメインの一覧で、複数のWebサイトに同じルーティングルールを適用するときによく使われます。IPアドレスではなくドメインを照合する点がGeoIPとの違いです。ルールで参照するカテゴリが現在のデータファイルに存在し、リクエストに照合可能なドメイン情報が残っている必要があります。カテゴリ名が正しくても、すべてのリクエストが一致するとは限りません。
- ルーティング
- ルーティングは、ルールに応じてリクエストを直結、プロキシ、ブロックなどのアウトバウンドに振り分ける仕組みで、独立したプロキシプロトコルではありません。クライアントの「中国本土を迂回」などのモードは、通常、あらかじめ用意されたルール群に対応します。ルールの内容は実装やデータファイルによって異なります。設定を変更したら、直結させる接続先とプロキシ経由にする接続先をそれぞれ確認し、モード名だけでなくログで実際のアウトバウンドを確認してください。
暗号化・セキュリティ
接続先アドレス、サービス名、ユーザー認証、セキュリティ層にはそれぞれ異なる役割があります。ハンドシェイクエラーが発生した場合は該当する設定を確認し、検証を無効にする方法を常用しないでください。
- REALITY
- REALITYはXrayエコシステムのセキュアなトランスポート方式で、VLESSの接続設定でよく使われますが、VLESSの別名ではありません。クライアントではサーバーの指定に従い、公開鍵、
serverName、shortIdなどのパラメーターを設定します。項目によっては空欄が許可される場合もあります。設定はできるだけ一式でインポートし、適当なドメインや別のノードの公開鍵に置き換えないでください。
- TLS
- TLSはネットワーク接続を暗号化し、相手を認証するプロトコルです。HTTPSもこの種のセキュリティプロトコルを使用します。クライアントは通常、証明書チェーン、接続先のホスト名、有効期間を検証するため、システム時刻の誤りが接続失敗につながることもあります。証明書エラーが出たら、まず時刻とサーバー設定を確認してください。証明書検証を無効にすると認証が弱まるため、原因の特定に代わる方法ではありません。
- SNI
- SNIは、TLSハンドシェイクで接続先のサービス名を伝える拡張機能です。クライアント画面では関連する項目として
serverNameがよく使われます。ネットワーク接続先のアドレスと、ハンドシェイクで使うサービス名が異なる場合もありますが、組み合わせはサーバー設定に合っていなければなりません。WebSocketのHost、SNI、証明書のホスト名も同じ項目ではありません。トラブル時はそれぞれを個別に確認してください。
- UUID
- UUIDは汎用一意識別子で、VMessやVLESSの接続設定ではユーザー識別子としてよく使われます。表示名とは異なる文字列形式で、手入力時の文字抜けや余分な空白が認証エラーの原因になることがあります。認証に使うUUIDは接続情報として安全に保管してください。アドレスやポートが同じでも、適当な新しい値を作ってサーバーに設定済みの識別子を代用することはできません。
システム・ネットワーク
システムプロキシとTUNでは通信を取り込む範囲が異なり、DNSクエリも別の経路を通ることがあります。設定が想定どおりか判断するには、アプリ、システム、コアの3つの層を確認してください。
- TUNモード
- TUNは仮想ネットワークインターフェースを通じてIPトラフィックをネットワーク処理プログラムに渡し、システムプロキシに従わないアプリの通信も一部取り込めます。実際に対象となる範囲は、システムルート、除外設定、権限、実装によって異なり、スイッチを入れただけで全通信が対象になるわけではありません。有効にする前に必要な権限や他の仮想ネットワークツールとの競合を確認してください。詳しくはTUNモード設定ガイドをご覧ください。
- システムプロキシ
- システムプロキシはOSがアプリに提供するプロキシ設定で、通常はクライアントが待ち受けるローカルアドレスとポートを指定します。この設定に従うアプリだけが利用し、一部のゲーム、コマンドラインプログラム、独自のネットワーク設定を持つソフトは対象外の場合があります。クライアント終了後もシステムに無効なプロキシ設定が残ると、Webページを読み込めないことがあります。その場合はシステムプロキシの状態と、ローカルの待ち受けが存在するかを確認してください。
- FakeDNS
- FakeDNSは、内部で識別するための仮想アドレスを返し、そのアドレスと元のドメインの対応関係を保存します。後続の通信が同じ処理経路に入ると、コアはこの対応関係からドメインを復元し、ルーティングの判定に利用できます。一般的なパブリックDNSの単純な代替ではありません。通信の取り込み、仮想アドレス範囲のルーティング、対応関係の有効期間と組み合わせる必要があります。連携が不十分だと、名前解決には成功しても接続できない場合があります。
- DNSリーク
- DNSリークとは、ドメインの問い合わせが想定した名前解決経路を通らない状態です。たとえば指定したリゾルバーに送る想定でも、システムやアプリが別途問い合わせることがあります。ブラウザーのセキュアDNS、システムの名前解決設定、クライアントのDNS、ルーティングルールによって問い合わせ先が変わる場合があります。検出結果は想定しているポリシーに照らして判断してください。ローカルのリゾルバーが表示されても、必ずしも異常とは限りません。まず直結させる予定のリクエストを確認しましょう。