V2Ray用語集

プロトコルは接続の方式を定め、コアは通信を処理し、クライアントは設定を管理します。まず概念の階層を区別してから、該当する設定を確認しましょう。

v2rayN、v2rayNG、v2flyNGのメニューはバージョンによって異なる場合があります。ここでは概念の違いを中心に解説します。具体的な機能は、使用中のクライアントと搭載コアに応じて確認してください。各用語カードの見出しリンクから該当項目に移動できます。

プロトコルと通信方式

プロキシプロトコル、基盤となる通信方式、セキュリティ層はそれぞれ別に設定します。同じ名称でも、具体的なパラメーターを確認してください。

VMessプロトコルと通信方式 · プロキシプロトコル
VMessはProject Vのエコシステムで使われるプロキシプロトコルで、ユーザー認証と暗号化通信に対応します。現在の設定では通常、AEAD認証を使用します。VMess接続では、クライアントとサーバーのユーザーID、通信方式、セキュリティ層などのパラメーターを一致させる必要があります。システム時刻に大きなずれがあると、認証に影響する場合もあります。VMess共有リンクはこうしたパラメーターをまとめた形式にすぎず、インポートできても設定が使えるとは限りません。
VLESSプロトコルと通信方式 · プロキシプロトコル
VLESSは軽量なプロキシプロトコルで、プロトコル自体はペイロードを暗号化しません。通常はTLSやREALITYなどのセキュリティ層と組み合わせます。VLESSの種類だけでなく、通信方式、サーバー名、必要に応じてフロー制御のパラメーターも設定してください。VLESSだからといって必ず高速になるわけではなく、通信品質、サーバー負荷、設定の組み合わせによって接続状況は変わります。
Trojanプロトコルと通信方式 · プロキシプロトコル
Trojanは通常、TLSで保護された接続上で動作するプロキシプロトコルで、パスワード認証を使用します。パスワードだけでなく、サーバーアドレス、ポート、サーバー名も正しく設定し、証明書を検証する必要があります。Trojan接続で証明書エラーが発生した場合は、検証を無効にする前にドメイン名、時刻、サーバー証明書を確認してください。
Shadowsocksプロトコルと通信方式 · 暗号化プロキシプロトコル
Shadowsocksは暗号化プロキシプロトコルです。一般的な設定にはサーバーアドレス、ポート、パスワード、暗号化方式が含まれます。プロトコルの世代によって鍵の形式が異なる場合があり、コアもすべての暗号化方式に対応しているとは限りません。Shadowsocksの項目をインポートした後は、元の方式と鍵をそのまま保持してください。メニューに別の方式があっても、独自に置き換えないでください。
REALITYプロトコルと通信方式 · 通信のセキュリティ方式
REALITYはXrayが対応する通信のセキュリティ方式で、VMessやVLESSと同じ階層のプロキシプロトコルではありません。VLESSとREALITYを組み合わせる構成が一般的です。クライアントではサーバー名、公開鍵、shortIdなどのパラメーターを正確に合わせる必要があります。スイッチをオンにするだけでは有効にならず、サーバー側の対応に加えて、クライアントの画面とコアが必要な設定を扱えることも条件です。

コアとクライアント

コアがプロトコルの機能を担い、GUIクライアントが設定のインポート、管理、実行を行います。両者の更新範囲は異なります。

Xrayコアとクライアント · プロキシコア
XrayはV2Rayのコードをもとに発展した独立系のプロキシコアプロジェクトです。プロトコル処理、ルーティング、ネットワーク接続を担い、REALITYなどの機能に対応します。XrayコアはGUIではありません。v2rayNやv2rayNGは画面上の設定を、コアが読み込める形式に変換します。実際に利用できる機能は組み込まれたバージョンによって異なるため、画面に項目があっても古いコアで実行できるとは限りません。
V2Flyコアとクライアント · V2Rayプロジェクト
V2Flyはコミュニティが開発・保守するV2Rayプロジェクトで、コアはXrayとは別に進化しつつ、共通する設定概念も一部残っています。プロトコルの実装、設定項目、機能の対応状況は完全には一致しないため、V2FlyとXrayをそのまま置き換えられる実行プログラムとして扱うことはできません。設定を移行する際は、コア名だけを変更せず、プロトコル、セキュリティ層、ルーティング構文を項目ごとに確認してください。
v2rayNコアとクライアント · デスクトップGUIクライアント
v2rayNはデスクトップ向けのGUIクライアントです。サーバー管理、サブスクリプションの更新、ルーティングのプリセット、プロキシ接続を設定できます。v2rayNの画面がパラメーターを整理して設定を生成し、実際の通信処理は選択したコアが行います。そのため、GUIの更新とコアの更新は別の操作です。接続を調べるときは、現在のサーバー、コア、システムプロキシ、ルーティングの状態を確認してください。画面が正常に開くことだけでは、接続成功とは判断できません。
v2rayNGコアとクライアント · Android向けGUIクライアント
v2rayNGはXrayコアをベースにしたAndroid向けGUIクライアントです。システムのVPNインターフェースを使って端末の通信を取り込めるほか、サブスクリプションとルーティングも管理できます。VPNの使用許可が得られたことは、システムが通信の取り込みを認めたことを示すだけです。リモート認証、DNS、接続先へのアクセスが成功したことを意味しません。バックグラウンドでの継続動作は端末のバッテリー設定にも左右されるため、切断時はシステムの制限とクライアントのログを確認してください。
v2flyNGコアとクライアント · Android向け代替クライアント
v2flyNGはV2FlyのコアをベースにしたAndroidクライアントで、同コアの設定機能が必要な場合に適しています。v2flyNGとv2rayNGは名前が似ていますが、同じプロトコル拡張に対応するとは限らず、Xray専用のパラメーターをそのまま適用することもできません。サブスクリプションをインポートする前に、含まれるプロトコルと通信方式の組み合わせが現在のバージョンでサポートされているか確認してください。

ルーティングとトラフィックの振り分け

通信をクライアントに取り込んだ後、ルールに基づいて出口を選びます。通信の取り込み方と出口の選び方は、別々に理解する必要があります。

ルーティングルールとトラフィックの振り分けルーティングと振り分け · 出口の選択
ルーティングルールは、ドメイン名、宛先IPアドレス、ポートなどの条件に基づいて接続を指定の出口へ振り分けます。通常は上から順に照合するため、先にある範囲の広いルールが後続の詳細なルールに優先し、後者が適用されない場合があります。確認時は、どのルールにも一致しない通信のデフォルトの出口と、クライアントがルール判定に必要なドメイン名やアドレスを取得できているかも調べてください。
GeoIPルーティングと振り分け · IPアドレスの集合
GeoIPは地域や用途ごとに整理されたIPアドレスの集合で、ルーティングルールから参照できます。GeoIPの判定はデータファイルと実際の宛先アドレスに依存します。IPアドレスの割り当て変更、共有インフラ、DNSの結果が判定に影響することがあります。GeoIPのラベルはデータセット上の分類を示すもので、サーバーの物理的な所在地や運営者を正確に保証するものではありません。
GeoSiteルーティングと振り分け · ドメインの集合
GeoSiteはサービスや用途別に整理されたドメインの集合で、コアはラベルを使って関連するドメインをまとめて照合できます。利用できるラベルと収録ドメインは、読み込んだデータファイルによって異なり、すべてのクライアントで同じとは限りません。ルールの照合にはドメイン情報も必要です。宛先IPアドレスしか確認できない場合は、DNS、ドメインのスニッフィング、通信の取り込み方法を調べてください。
システムプロキシルーティングと振り分け · アプリの通信を取り込む
システムプロキシは、OSがアプリに提供するプロキシアドレスの設定です。v2rayNはローカルの待ち受けアドレスを設定でき、この設定に従うアプリが利用します。すべてのアプリや種類の通信が自動的にクライアントを通るわけではありません。システムプロキシとルーティングは別の設定です。前者はアプリの通信を取り込み、後者は取り込んだ通信を直接接続、プロキシ経由、遮断のいずれにするか決めます。
TUNモードルーティングと振り分け · 仮想ネットワークインターフェース
TUNモードは仮想ネットワークインターフェースを通じてIP通信を取り込むため、システムプロキシの設定に従わないアプリにも使われます。実際の対象範囲は、システムルーティング、実行権限、除外設定、DNS設定によって異なり、有効にしても一部の通信が直接接続される場合があります。ほかの仮想ネットワークアダプターと同時に使用するとルーティングが競合することがあるため、問題の切り分けではネットワークを同時に制御するコンポーネントを減らしてください。

DNSとネットワーク

名前解決、接続、アクセス速度はそれぞれ異なる指標です。測定結果は測定経路とあわせて確認してください。

DNSDNSとネットワーク · ドメイン名の名前解決
DNSはドメイン名をIPアドレスなどのレコードに変換し、多くのWebサイトへのアクセスに欠かせない処理です。DNSの問い合わせ経路と実際の通信経路は異なる場合があります。通信がプロキシを通っていても、DNS問い合わせが同じ出口を通るとは限りません。DNSの設定はルーティング判定やアドレス選択にも影響するため、アプリ独自の暗号化DNS、システムキャッシュ、コアのDNS設定をあわせて確認してください。
FakeDNSDNSとネットワーク · 仮想アドレスのマッピング
FakeDNSは仮想アドレスプールからドメイン名に一時的なアドレスを割り当てます。後続の接続を受け取ったコアがドメイン名を復元できるため、ドメイン名に基づく振り分けに役立ちます。FakeDNSが返すアドレスは実際のサーバーアドレスではなく、対応するマッピングなしでは通常のネットワークアクセスに使えません。アプリのキャッシュやアドレスの除外ルールと干渉する場合があるため、設定変更後に問題が出たらキャッシュとマッピングの整合性を確認してください。
DNSリークDNSとネットワーク · 名前解決経路のずれ
DNSリークとは、DNS問い合わせが想定した経路を通らず、指定したリゾルバーが処理するはずの問い合わせ情報が別のリゾルバーに渡る状態です。Webページに表示される地域だけで判断せず、リゾルバー、クライアントのログ、アプリ独自のDNS設定、システム設定を確認してください。特定のドメインをローカルで名前解決するDNS振り分けが意図どおりに動作している場合、プロキシを通っていないという理由だけでリークと判断することはできません。
レイテンシDNSとネットワーク · 応答時間
レイテンシは、指定したネットワーク処理を開始してから応答を受け取るまでの時間です。測定方法によって、TCP接続、ICMP応答、プロキシのハンドシェイク、Webリクエストまでを測る場合があるため、異なるツールの数値をそのまま比較するのは適切ではありません。レイテンシが低くても帯域幅が広いとは限らず、実際の使い勝手には持続的なスループット、パケットロス、サーバー負荷も影響します。
プロキシ経由の接続レイテンシDNSとネットワーク · プロキシ経由のリクエスト測定
プロキシ経由の接続レイテンシは、通常、選択したプロキシ設定を使ってクライアントからテスト先にアクセスしたときの所要時間です。サーバーのポート確認だけより実際のリクエスト経路に近い測定です。テスト先、名前解決の方法、ハンドシェイク、タイムアウト設定によって結果は変わり、すべてのWebサイトの応答速度を示すものではありません。タイムアウトしてもすべての接続先にアクセスできないとは限らないため、ログを確認し、別の実際の接続先でも再テストしてください。

サブスクリプションと設定

設定の入手元によって必要なパラメーターが揃っているかが変わります。インポート後も、コアの対応状況と実際の接続を確認してください。

サブスクリプションサブスクリプションと設定 · 設定の一括取得
サブスクリプションは、クライアントが1つのURLから複数のサーバー設定を取得する仕組みです。更新すると配信元から内容を再取得し、該当する項目を同期します。URLに認証情報が含まれる場合があるため、機密情報として保存してください。スクリーンショット、ログ、公開の場での相談などでURL全体を公開するのは避けましょう。更新されるのは設定内容であり、コアの非対応、システムプロキシの未設定、サーバーへの到達不能などは自動で解決されません。
ノードサブスクリプションと設定 · 1件のサーバー設定
ノードは、サーバーへの接続設定1件を指すクライアント上の一般的な呼び方です。通常、アドレス、ポート、プロキシプロトコル、認証情報、通信方式のパラメーターが含まれます。ノード名は管理用のラベルにすぎず、実際の所在地、帯域幅、接続可能性を証明するものではありません。問題がある場合は該当する設定項目を確認してください。同じサーバーアドレスでも、ポート、プロトコル、認証情報が異なる設定を複数作成できます。
サブスクリプション形式の互換性サブスクリプションと設定 · 解析とパラメーターの保持
サブスクリプション形式の互換性とは、クライアントが内容を正しく解析し、接続に必要なすべてのパラメーターを保持できるかどうかです。サブスクリプションは共有リンクの集合の場合もあれば、特定の設定構造を採用している場合もあります。ファイルの拡張子だけでは互換性を判断できません。内容の読み込み、項目のインポート、コアでの設定実行は、それぞれ別の確認事項です。形式を変換しても、配信元にないパラメーターを補うことはできません。
カスタム設定サブスクリプションと設定 · コア設定を直接指定
カスタム設定は、GUIでパラメーターを生成するだけでなく、コアの設定ファイルをクライアントに直接指定する方法です。受信、送信、ルーティングを細かく設定する場合によく使われます。コアの種類とバージョンに合った設定が必要で、GUI上の一部の項目は反映されない場合があります。問題を調べるときは、実際に読み込まれたファイルとログを先に確認し、GUIのプリセットを最終的に適用された値と混同しないようにしてください。