VMess
Project Vのエコシステムに属するプロキシプロトコルで、ユーザーIDなどのパラメーターを使って認証します。VMessとTCPやWebSocketなどのトランスポート方式は、異なる層の概念です。TLSを使うかどうかも別途確認してください。接続の問題を調べる際は、ユーザーID、トランスポートのパス、サーバー名を一つずつ照合し、認証に影響する時刻のずれを避けるため端末の時刻も正確に保ちましょう。
用語と設定
プロトコル、コア、クライアント、ルーティング。設定の層ごとに用語を確認できます。
画面上で隣り合う設定項目でも、同じ処理をするとは限りません。プロトコルは通信方式を定め、コアは接続とルーティングを実行し、クライアントは設定画面を提供します。まず役割の違いを把握してから、変更する項目を判断しましょう。
01 / Protocols
プロトコル名だけでは、接続に必要な設定はわかりません。認証方式、トランスポート、セキュリティ層をそれぞれ確認しましょう。
Project Vのエコシステムに属するプロキシプロトコルで、ユーザーIDなどのパラメーターを使って認証します。VMessとTCPやWebSocketなどのトランスポート方式は、異なる層の概念です。TLSを使うかどうかも別途確認してください。接続の問題を調べる際は、ユーザーID、トランスポートのパス、サーバー名を一つずつ照合し、認証に影響する時刻のずれを避けるため端末の時刻も正確に保ちましょう。
軽量なプロキシプロトコルで、ペイロード自体は暗号化しません。実際の接続では通常、TLSまたはREALITYと組み合わせます。設定をインポートする際はユーザーIDに加え、トランスポート方式とサーバー側で指定されたflowパラメーターも保持してください。VMess設定のプロトコル名だけをVLESSに変更しても使えません。サーバー側も対応している必要があります。
通常はTLSで安全な接続を確立し、パスワードで認証するプロキシプロトコルです。接続結果にはパスワードだけでなく、サーバーポート、サーバー名、証明書の検証も影響します。証明書エラーが出た場合は、まずドメイン名とシステム時刻を確認してください。証明書検証を無効にする方法を常用するのは避けましょう。
Xrayエコシステムのトランスポートセキュリティ機能で、VLESSと組み合わせて使われることがよくあります。独立したノードプロトコルではありません。クライアントで使う公開鍵、サーバー名、shortIdは対応するサーバー設定から取得してください。各項目には相互の対応関係があります。インポート時に未対応の項目が表示された場合は、パラメーターを安易に削除せず、実際に使われているコアとその機能を確認しましょう。
02 / Engines
プロジェクト名は開発元や保守体制を表します。設定を実行できるかどうかを決めるのは、現在動作しているコアです。
ネットワーク通信ツールを中心とするプロジェクト群で、V2Rayはその重要な構成要素です。「V2Ray」はエコシステム全体を指すこともありますが、実際にインストールしたソフトウェアはGUIクライアントの場合も、ネットワークコアの場合もあります。チュートリアルを読む際は操作対象を確認し、コアの設定項目がすべてのクライアント画面にあると思い込まないようにしましょう。
V2Rayの開発・保守を引き継ぐコミュニティプロジェクトで、ネットワークコアは一般にV2Fly-coreと呼ばれます。コアは通信を受け取り、プロトコルを処理し、ルールに従ってアウトバウンド接続を確立します。GUIはクライアントが提供します。プロトコルやトランスポートの対応状況は実際のコアのバージョンによって異なり、特定のクライアントを使っていても、エコシステム内のすべての設定を実行できるとは限りません。
V2Rayから派生したネットワークコアで、プロトコル処理、ルーティング、接続確立を担います。V2Fly-coreとは共通の歴史がありますが、その後の機能や設定項目が完全に一致するわけではありません。コアを切り替える前に、現在の設定で使っているプロトコル、セキュリティ機能、トランスポート方式が移行先でサポートされているか確認し、元に戻せるよう既存の設定も保存してください。
03 / Configuration
クライアントは設定を管理し、システムプロキシや仮想インターフェースは通信を処理経路に取り込む入口を決めます。
Windows、macOS、Linux向けのGUIクライアントで、サブスクリプション管理、ルーティング設定、プロキシ設定の画面を備えています。設定の管理はクライアントが行い、実際の通信は連携するコアが処理します。そのため、画面が正常に開いてもコアの起動に成功しているとは限りません。デスクトップ版によってメニューの位置が異なることがあるため、操作時は現在の画面に表示された機能名を確認してください。
Xrayコアで通信を処理するAndroid向けGUIクライアントで、サーバー設定やサブスクリプショングループを管理できます。一般的なVPNモードでは、システムのVPNインターフェースを通じてアプリの通信を受け取るため、必要な権限を許可する必要があります。VPNアイコンが表示されても、通信を取り込むインターフェースが確立したことを示すだけです。実際のリクエストでサーバー接続とルーティングが正常か確認しましょう。
V2Flyコアを採用したAndroid向けGUIクライアントで、そのコアに対応する設定を使う場合の選択肢になります。v2rayNGと名前は似ていますが、コアの機能は完全に同じではなく、同一のソフトウェアとして扱うことはできません。選ぶ際は、まずサブスクリプションの要件を確認し、画面や管理方法が自分の使い方に合うか判断してください。名称だけを見て設定を移行しないようにしましょう。
OSのプロキシ先をクライアントのローカル待ち受けポートに設定する機能です。この設定に従うアプリの通信だけがクライアントに渡されます。通信をクライアントに取り込むかどうかを決めるのがシステムプロキシで、取り込んだ後の出口を決めるのがルーティングルールです。クライアント終了後も無効になったローカルプロキシ設定が残ると、アプリが通信できなくなる場合があります。その際はシステムプロキシの状態を確認してください。
仮想ネットワークインターフェースでIPパケットを受け取り、プロキシコンポーネントに渡して処理する方式です。システムプロキシに従わないアプリの通信も、一部取り込める場合があります。実際の適用範囲はルーティング、権限、DNS設定によって異なり、すべての通信がプロキシ経由になるわけではありません。有効にする前にクライアントの対応状況を確認してください。複数の通信制御ツールを同時に使う場合は、インターフェースやルートの競合にも注意が必要です。
04 / Routing
まず照合条件を確認し、次にルールの順序を見て、最後に指定した出口が存在するか確認しましょう。
ドメイン、IP、ポート、インバウンドなどの条件に応じて通信の出口を選ぶ設定です。出口は通常、タグで指定します。一般的なコアはルールを上から順に照合するため、先にある広範なルールが後の詳細なルールに優先し、後続ルールが適用されないことがあります。調査時は条件だけでなく、出口タグが有効かも確認してください。どのルールにも一致しない接続は、コアのデフォルト動作に従います。
ルーティングルールに従って、接続ごとにプロキシ、直接接続、ブロックのいずれかへ振り分ける処理です。直接接続は、接続先にプロキシサーバーを経由しないことを意味しますが、ローカルコアのルール判定を通らないという意味ではありません。振り分けだけで通信が速くなるわけではなく、ルールの適用範囲、DNSの名前解決結果、アプリが実際に使う接続先アドレスも最終的な経路に影響します。
IPアドレス範囲をカテゴリ別のデータセットで表すルール機能です。たとえばgeoip:privateは、プライベートアドレス範囲の照合によく使われます。宛先IPアドレスがデータセット内の範囲に含まれるかを照合します。また、サイトの運営組織を判定できるものでもありません。ドメインを名前解決してからIPを照合するルールでは、コアの名前解決方法と実際の結果も確認してください。
ドメインをカテゴリ別のデータセットにまとめるルール機能です。geosite:cnはよく使われる指定例の一つです。特定のドメインが含まれるかどうかは、使用するデータファイルとその更新状況によって決まり、名称だけでは保証されません。アプリが接続先IPだけを渡す場合、ドメインルールが適用されるかは、コアが別の方法でドメイン情報を取得できるかにも左右されます。
05 / Subscriptions
サブスクリプションは設定の取得方法、ノードは接続設定、グループは管理方法です。
クライアントがURLからサーバー設定一式を取得する更新方式です。内容の形式はクライアントが読み取れるものである必要があります。更新に成功しても、内容を取得して解析できたことを示すだけで、各サーバーに接続できるとは限りません。サブスクリプションURLにアクセス情報が含まれる場合があるため、ログやスクリーンショットを共有する前にURL全体を隠してください。更新に失敗したら、まずURLの有効性と現在のネットワーク経路を確認しましょう。
クライアント内のリモート接続設定を指す一般的な呼び方です。通常、アドレス、ポート、認証情報、トランスポートの各パラメーターを含みます。一覧の別名は表示名にすぎず、サーバーの所在地、性能、稼働状況を示すものではありません。表示名が異なっても同じアドレスを使っている場合があります。重複かどうかは一覧の文字列ではなく、実際の設定項目を比較して判断してください。
サブスクリプションごとにサーバー設定をまとめる管理単位です。個別の更新、絞り込み、管理に役立ちます。ルーティングルールではなく、同じグループ内の設定が自動的にすべて接続に使われるわけでもありません。サブスクリプションから生成された項目を手動で変更する前に、クライアントの更新動作を確認してください。次回の更新で設定が再生成され、変更内容の一部が上書きされることがあります。
06 / Networking
名前解決、通信の取り込み、実際のリクエストはそれぞれ別の工程です。テスト結果は測定方法と合わせて確認しましょう。
ドメイン名をIPアドレスなどのレコードに変換するシステムで、アプリが接続を確立する前に行う一般的な処理です。アプリ、OS、プロキシコアがそれぞれ名前解決する場合があるため、コアにDNSを設定してもすべてのアプリがそれを使うとは限りません。調査時は「DNSクエリを誰に渡すか」と「実際の通信をどこに通すか」を分けて確認してください。それぞれ異なるルールが適用される場合があります。
アプリにマッピング用のアドレスを返し、プロキシコンポーネントがそのアドレスとドメインの対応関係を管理して、後続の接続から元のドメイン名を特定する仕組みです。通信を取り込む経路との連携が必要で、単独で機能する暗号化DNSサービスではありません。アプリがマッピングアドレスを受け取った後、プロキシのインターフェースを経由せずに接続すると、アクセスに失敗することがあります。関連モードを終了した後も、古いDNSキャッシュに注意してください。
DNSクエリが想定した名前解決経路から外れ、意図しないリゾルバーに送信される状態です。判断する前に、どのクエリをコアで処理し、どれをローカルネットワークで解決する想定なのかを明確にしてください。リゾルバーの所在地だけでは判断できません。ブラウザー内蔵の暗号化DNS、システムの名前解決設定、アプリ独自のリゾルバーによって実際の経路が変わることがあるため、それぞれ確認が必要です。
指定したプローブを送信してから応答を受信するまでの時間です。ツールによって、ICMP、TCP、アプリケーション層のリクエストなど測定対象が異なります。測定方法が異なる数値は単純に比較できず、レイテンシが低くてもダウンロード速度が速いとは限りません。タイムアウトは接続先がその種のプローブを拒否した可能性もあります。結果だけを見て設定を削除せず、実際のWebサイトやアプリのリクエストも確認してください。
選択したプロキシ設定を通じてクライアントが実際にリクエストを行ったときの所要時間です。ポートだけを調べるテストより多くの接続工程を含みます。名前解決、ハンドシェイク、接続の再利用が測定に含まれるかは、クライアントの実装やテスト先によって異なります。テストに成功した場合も、そのリクエストを完了できたことを示すだけです。ほかの接続先では、ルーティング、名前解決、サーバー側のポリシーが異なることがあるため、個別に確認してください。
設定の手順
初めて使う場合は、まずOSに合ったクライアントを選び、設定をインポートして通信の入口を確認しましょう。設定済みでもアクセスできない場合は、具体的な症状とエラーを記録し、コアの起動、サブスクリプションの更新、DNSの名前解決、ルーティングルールの適用状況を個別に確認してください。複数の層の設定を一度に変更しないようにしましょう。