VMess #
プロキシプロトコル / 認証とデータ保護
VMessはV2Rayエコシステムのプロキシプロトコルです。ユーザー識別情報などのパラメーターで認証し、独自のデータ保護機構を備えています。ノードのアドレス、ポート、ユーザー識別情報、通信設定をサーバー側と一致させてください。名称だけで互換性を判断することはできません。認証に失敗する場合は、端末の時刻も確認しましょう。時刻が大きくずれていると、接続に影響することがあります。
プロトコルは通信方法、コアは設定の実行、ルーティングは接続先の振り分けを担います。まず役割の違いを押さえてから、各設定項目を確認しましょう。
よく使われる25の用語を5分野に分けて解説します。見出し横のリンクから各項目に直接移動できます。メニュー名はクライアントのバージョンによって異なる場合があります。
{
"routing": {
"rules": [
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
}
]
}
}
プロキシプロトコル、通信方式、セキュリティ機構はそれぞれ別の要素です。VLESS、WebSocket、TLSが同時に設定されていても、クライアントが3つ必要という意味ではありません。
プロキシプロトコル / 認証とデータ保護
VMessはV2Rayエコシステムのプロキシプロトコルです。ユーザー識別情報などのパラメーターで認証し、独自のデータ保護機構を備えています。ノードのアドレス、ポート、ユーザー識別情報、通信設定をサーバー側と一致させてください。名称だけで互換性を判断することはできません。認証に失敗する場合は、端末の時刻も確認しましょう。時刻が大きくずれていると、接続に影響することがあります。
プロキシプロトコル / シンプルなプロトコル層
VLESSはプロキシリクエストの処理と認証を担いますが、通信内容の暗号化は行いません。実際の運用ではTLSやREALITYなどのセキュリティ機構と組み合わせるのが一般的です。そのため「VLESS対応」でも、ノードで使われているすべての組み合わせに対応するとは限りません。インポート後は元のセキュリティ設定やflowなどのパラメーターを維持し、別のノードの設定を流用しないでください。
プロキシプロトコル / パスワード認証
Trojanは通常、TLSで接続を保護し、パスワードで認証します。パスワードが正しいだけでは接続できません。サーバーアドレス、ポート、サーバー名、証明書の検証設定も一致させる必要があります。証明書エラーが出たら設定と端末の時刻を確認し、検証を無効にする方法を一般的な解決策として使わないでください。
通信セキュリティ / 暗号化と認証
TLSは通信内容を保護し、証明書などを使って通信相手の身元を確認します。特定のプロキシプロトコルを指す別名ではありません。クライアントのサーバー名は通常、TLSハンドシェイクや証明書の検証に使われ、接続先に入力したIPアドレスと一致するとは限りません。ポートへの接続に成功してもTLSハンドシェイクに失敗する場合は、基本的なネットワーク到達性ではなく、その後のセキュリティ交渉に問題がある可能性があります。
通信セキュリティ / Xrayエコシステム
REALITYはXrayエコシステムの通信セキュリティ機構であり、単独でVLESSに代わるプロキシプロトコルではありません。使用するには対応するクライアントコアが必要です。公開鍵、サーバー名、short IDなどのパラメーターをサーバー側の設定と一致させてください。通常のTLS設定は、名前を変えるだけでREALITY設定にはなりません。画面上で項目を入力できても、コアが実行できるとは限りません。
通信方式 / よく使われる略称はWS
WebSocketは双方向通信方式の一つで、プロキシ設定ではプロトコルデータの転送に利用できます。pathやHostなどの項目は、サーバーやリバースプロキシの設定と一致させる必要があります。スラッシュが一つ違うだけでも、リクエストの送信先が変わることがあります。TLSとは異なる層の仕組みなので、組み合わせて使用できます。問題を切り分ける際は、通信方式とセキュリティ設定を別々に確認してください。
クライアント名とコア名は別物です。設定を利用できるかどうかは、実際に呼び出されるコア、バージョン、各機能の対応状況を確認してください。
プロジェクト・エコシステム / モジュール型ネットワークツール
Project Vは、モジュール型ネットワークプロキシツールを中心に形成されたプロジェクトと技術のエコシステムです。V2Rayはその主要プロジェクトの一つです。異なるモジュールでインバウンド、アウトバウンド、ルーティングを構成します。特定のGUIクライアントの製品名ではありません。資料を読むときは、エコシステム全体、個別のコア、クライアントのメニューのどれを扱っているのか確認しましょう。
プロキシコア / 独自に開発が進む実装
XrayはV2Ray関連のコードをもとに開発され、その後独自に進化してきました。REALITYなどの機能は、このエコシステムと密接に関係しています。v2rayNGはXrayコアを使用しますが、対応機能は搭載されているコアのバージョンによって異なります。設定の見た目が似ていても、固有の項目を含む設定一式を別のコアにそのまま流用しないでください。
メンテナンスコミュニティ / V2Ray実装
V2FlyはV2Ray関連の実装やドキュメントを継続的にメンテナンスするコミュニティです。一般に「V2Flyコア」と呼ばれるものは、同コミュニティが保守するV2Ray実装を指します。v2flyNGはこのコアを使うAndroidクライアントの選択肢です。コアの違いは、プロトコル、セキュリティ機構、設定項目ごとに比較してください。同じプログラムの新旧バージョンと単純に捉えることはできません。
操作画面 / 接続の実行
クライアントはサブスクリプションを管理し、設定を表示して構成を作成します。コアは実際の接続を受け付け、転送します。v2rayNはGUIクライアントであり、V2Rayコアの別表記ではありません。コアの選択肢は、使用中のバージョンの画面で確認してください。起動に失敗した場合は、画面のプログラム自体が開かないのか、画面は開くもののコアが起動しないのかを切り分けましょう。確認すべき箇所が異なります。
サブスクリプションは設定を取得する入口、ノードは取得した接続パラメーターのまとまりです。テスト結果は、その時点でのテスト状況を示すものです。
Subscription / 設定をまとめて取得
サブスクリプションを使うと、一つのURLから複数の接続設定を取得でき、ノードを一つずつ入力する手間を省けます。URLにアクセストークンが含まれている場合があるため、アカウント情報と同様に管理してください。スクリーンショットを共有する際も、URL全体を隠しましょう。URLを保存しただけでは設定は取得されません。更新操作が必要です。また、サブスクリプションによってシステムプロキシが自動設定されることもありません。
接続設定 / サーバー名だけではない
ノードは通常、サーバーアドレス、ポート、認証情報、通信方式、セキュリティ設定をまとめた接続設定です。リストの表示名は主に識別用で、名前だけからサーバーの場所や性能、利用可否を判断することはできません。同じサーバーで複数の設定が提供される場合もあります。問題の切り分けには、ノード名の比較ではなく実際のパラメーターとログを確認してください。
取得・解析 / アプリの更新とは別
サブスクリプションの更新では、URLに再アクセスして応答を取得し、クライアントで使える設定に解析します。クライアントのインストーラーが更新されるわけではなく、サーバーへの接続が保証されるわけでもありません。更新に失敗したら、URLが完全か、リクエストに成功したか、応答形式に対応しているかを順に確認してください。「プロキシ経由で更新」する場合も、既存のプロキシが使えることが前提です。
Latency / まずテスト方法を確認
レイテンシは、指定したテストを開始してから応答を受け取るまでの時間です。画面に表示されるミリ秒の値は、テスト方法とあわせて解釈してください。ポート接続テスト、プロキシ経由のリクエスト、Webページの読み込み時間は、それぞれ測定対象が異なります。値が小さくてもダウンロード速度が速いとは限りません。一度のタイムアウトだけでノードが継続的に使えないと判断せず、同じ条件で再テストしましょう。
プロキシ経路のテスト / クライアントによって異なる
実接続レイテンシは通常、選択したプロキシ設定を使ってテスト先にアクセスするまでの時間を指します。サーバーのポートを調べるだけのテストより、実際のプロキシ利用に近い測定です。名前解決やハンドシェイクを含むかどうかは、クライアントの実装とテスト設定によって異なります。失敗の原因はノード、リゾルバー、テスト先のいずれにも考えられるため、ログや別のテスト先と照らし合わせて判断してください。
接続がクライアントに取り込まれた後、ルールによって出口が決まります。ドメイン、IPアドレス、DNSの名前解決結果は、ルールの照合に影響します。
Routing rules / 条件と出口
ルーティングルールは、ドメイン、宛先IP、ポートなどの条件に基づいて、接続に使うアウトバウンドを選びます。通常は上から順に確認されるため、前方にある広い条件が後方の細かな条件より先に一致することがあります。ルールを変更する前に、対象と出口を明確にし、アウトバウンドのタグが存在することを確認してください。どの条件にも一致しない場合の動作は、設定全体と使用するコアによって異なります。
条件に応じて処理 / 直結・プロキシ・ブロック
ルーティングでは、接続ごとにルールを適用し、直結、プロキシ、ブロックなどに振り分けます。複数のノードに通信を均等に配分することではありません。クライアントの「中国本土を除外」などの項目は、通常、あらかじめ定義されたルール一式を指します。対象範囲はルールとデータファイルによって異なるため、設定を切り替えたらボタンの状態だけでなく、実際の通信経路も確認してください。
IPアドレスの集合 / geoip.dat
GeoIPはIPアドレスの集合を使って宛先IPをルーティングルールと照合します。よく使われる参照形式はgeoip:cnで、関連データは通常geoip.datに保存されています。照合するのはIPアドレスの分類であり、Webサイトの運営主体やコンテンツの言語を直接判定するものではありません。データの出所や更新時期、アドレスの変化によって結果が変わるため、リアルタイムかつ絶対的に正確な位置判定ではありません。
ドメインの集合 / geosite.dat
GeoSiteはドメインをカテゴリ別にまとめたデータです。ルールではgeosite:cnなどの形式で参照します。よく使われるデータファイル名はgeosite.datです。ドメインの分類に使うもので、IPアドレスを照合するGeoIPとは別のデータです。利用できるタグは実際のデータファイルによって異なります。存在しないタグをそのまま設定すると読み込みに失敗することがあるため、ルールを更新するときはデータの出所も確認してください。
ドメインネームシステム / 名前からアドレスへ
DNSはドメインをIPアドレスなどに変換し、アプリが接続先を特定できるようにします。OS、ブラウザー、プロキシコアがそれぞれ別の名前解決設定を持つ場合があるため、クライアントのDNSを変更してもすべてのアプリに反映されるとは限りません。「ドメインでは開けないがIPアドレスには接続できる」場合は、名前解決の失敗、応答内容の違い、接続の失敗を切り分けましょう。最初からノードの設定をすべて変更するのは避けてください。
合成アドレス / ドメインとの対応付け
FakeDNSはドメインに合成IPアドレスを割り当て、ドメインとアドレスの対応関係を保持します。後で通信を取り込む際に、その対応関係から本来のドメインを特定できます。合成IPはWebサイトの実際のサーバーアドレスではなく、名前解決と通信の取り込みを連携させる必要があります。アプリが合成アドレスを取得した後、対応関係を処理できるクライアントを経由せずに接続すると、失敗する可能性があります。あらゆるDNSの問題に使える設定ではありません。
まず、アプリの接続がクライアントに渡されているかを確認し、その後クライアントの処理方法を調べましょう。通信を取り込む入口とルーティングルールは、別の問題を解決する仕組みです。
アプリの接続口 / システム設定に従うアプリが対象
システムプロキシはOSが提供するプロキシ設定です。この設定に従うアプリは、指定されたローカルのプロキシ接続口にリクエストを渡します。v2rayNの「システムプロキシを自動設定」は、この接続口を設定する機能であり、すべてのプログラムやネットワークプロトコルを取り込むわけではありません。「システムプロキシを解除」は通常、関連する設定を削除する操作で、サブスクリプションやノードを削除するものではありません。終了後にインターネットへ接続できない場合は、終了したクライアントを参照するプロキシ設定が残っていないか確認してください。
仮想ネットワークインターフェース / ルーティングによる通信の取り込み
TUNモードは仮想ネットワークインターフェースとシステムルーティングを使って通信を取り込み、システムプロキシに従わない一部のアプリにも対応できます。通常、追加の権限やルーティング、DNSの設定が必要で、ほかのネットワークソフトウェアと競合する場合もあります。「グローバルプロキシ」と同じ意味ではありません。取り込んだ接続もルールに応じて直結またはプロキシに振り分けられます。AndroidクライアントではOSのVPNインターフェースを使って通信を取り込むことが多く、メニュー名がTUNとは限りません。
想定外の名前解決経路 / 設定したポリシーに照らして判断
DNSリークとは通常、ドメインの問い合わせが想定した経路で処理されず、別のリゾルバーに渡されることです。ブラウザーのセキュアDNS、OSの名前解決サービス、クライアントのDNS設定が結果に影響するため、一つの設定項目だけでは判断できません。まず、各問い合わせにどの経路を使う想定なのかを確認し、実際の名前解決先と照らし合わせましょう。通常の直結問い合わせが設定したポリシーに沿っているなら、プロキシを経由しないという理由だけでリークとは言えません。
論理接続の多重化 / 常に速くなる設定ではない
Muxは、少数の下位接続で複数の論理接続を運び、接続確立の繰り返しによる負荷を抑える仕組みです。効果はプロトコル、ネットワーク状況、通信する両側の実装によって異なります。相性の悪い組み合わせでは有効化に適さず、パケットロス時に複数の通信へ影響することもあります。必要性がはっきりしない場合は、クライアントの推奨設定を維持してください。効果を比較するときは、同じノードとテスト条件を使い、ほかの項目を同時に変更せず一つずつ検証しましょう。