VMess
VMessはProject Vエコシステムのプロキシプロトコルです。接続設定には通常、サーバーアドレス、ポート、ユーザー識別情報が含まれます。複数のトランスポート方式を利用でき、トランスポート層の設定もサーバー側と一致させる必要があります。トラブル時は、プロトコルの認証、トランスポート設定、システム時刻を個別に確認してください。アドレスとポートだけでは設定の正しさを判断できません。
プロトコル名からクライアントの設定項目まで、設定の階層ごとに用語を解説します。まずプロトコルとコアを確認し、サブスクリプション管理、通信の取り込み、ルーティングを分けて考えることで、異なる段階の問題を混同しにくくなります。
プロトコルは通信方式を定め、トランスポートやセキュリティ設定は接続の運び方を定めます。同じ名称でも設定を使い回せるとは限らないため、読み込み後に設定全体を確認してください。
VMessはProject Vエコシステムのプロキシプロトコルです。接続設定には通常、サーバーアドレス、ポート、ユーザー識別情報が含まれます。複数のトランスポート方式を利用でき、トランスポート層の設定もサーバー側と一致させる必要があります。トラブル時は、プロトコルの認証、トランスポート設定、システム時刻を個別に確認してください。アドレスとポートだけでは設定の正しさを判断できません。
VLESSは軽量なプロキシプロトコルです。ユーザー識別情報、フロー制御、トランスポート設定にはそれぞれ異なる役割があります。VLESSの認証機能自体に通信の暗号化は含まれないため、通常はサーバーの指定に従ってTLSまたはREALITYも設定します。未知の項目やハンドシェイクエラーが発生した場合は、選択したコアとバージョンが設定一式に対応しているか確認してください。
Trojanは一般にTLSと組み合わせて使い、パスワードで認証します。サーバー名、証明書の検証、トランスポート方式が接続に影響するため、パスワードが正しくてもハンドシェイクに失敗することがあります。証明書エラーが出た場合は、ドメイン名、端末の時刻、サーバー側の設定を確認してください。証明書検証を無効にして原因を隠すのは避けましょう。
REALITYはXrayエコシステムの通信保護機能であり、サブスクリプションやノードを単独で置き換えるクライアント機能ではありません。利用するにはコアの対応が必要で、設定提供元が指定するサーバー名、公開鍵、ショートIDなどを一致させる必要があります。VLESSと組み合わせて使われることが多いものの、VLESS対応のコアすべてが同じREALITY設定に対応するとは限りません。
クライアントは操作画面を提供し、コアは接続を実行します。機能を比較するときは、クライアントの設定項目だけでなく、実際に動作するコアの対応状況も確認してください。
Project Vは、ネットワークプロキシや通信ツールを中心とするプロジェクト群を指し、V2Rayはその主要な構成要素です。一般にV2Rayクライアントと呼ばれるものは、設定を管理してプロキシコアを動かすGUIアプリです。この違いを理解すると、エコシステム、コア、v2rayNなどのアプリを区別できます。
V2FlyはV2Ray関連の実装を継続的に開発・保守するコミュニティプロジェクトで、そのコアの系統やエコシステムを指す名称としても使われます。Android向けのv2flyNGは、V2Flyコアを利用するクライアントの一つです。コアを切り替える前に、プロトコル、トランスポート、設定形式への対応を確認してください。他のコアで使える拡張項目をそのまま利用できるとは限りません。
XrayはV2Rayのコードをベースに開発されたプロキシコアで、独自のプロトコルやトランスポートの開発を進めています。v2rayNGはXrayコアを使用しますが、利用できる機能はアプリに同梱されているコアのバージョンによって異なります。コアは設定要件に合わせて選び、名称の違いを単純な速度差と捉えないようにしましょう。
コアは接続設定の読み込み、プロトコル処理、接続の確立、ルーティングを担います。GUIクライアントは設定のインポート、編集、表示を行います。クライアント画面に設定を保存できても、コアが実行できるとは限りません。起動に失敗した場合は、まずログで設定項目、プロトコル、ファイルに関するエラーを確認してから、コアを変更するか判断してください。
サブスクリプションは設定の取得、ノードは接続設定の選択、テスト結果は特定条件下での測定です。これらは同じ接続状態を表すものではありません。
サブスクリプションURLは、クライアントが設定一式を取得するためのアドレスです。更新すると、提供元が公開した内容を再取得します。URLの登録、更新の成功、ノードへの接続はそれぞれ別の段階で、どこか一つだけ失敗する場合もあります。URLにアクセス用の認証情報が含まれることがあるため、スクリーンショットやログ、トラブル報告を共有する前に、完全なURLや機密パラメーターを削除してください。
ノードは、クライアントで選択できる接続設定の通称です。通常、サーバー、ポート、認証情報、トランスポート情報が含まれます。表示名は識別用のラベルにすぎず、サーバーの所在地、回線品質、現在の利用可否を保証するものではありません。ノードを選んだ後はサービスを起動し、アプリの通信が実際にクライアントへ取り込まれているか確認してください。
サブスクリプション変換は、サブスクリプションや設定を利用するクライアントが読み込める形式に整える機能です。コアが未対応のプロトコルを使えるようにするものではなく、形式の違いによって一部の設定項目が失われる場合もあります。外部の変換サービスを使うと、サブスクリプションの全内容をサービス提供者が閲覧できる可能性があります。利用前に信頼できる範囲を確認し、まずクライアントが直接インポートできるか試してください。
遅延は、ネットワークの応答確認、ポートへの接続、実際のリクエストなど、特定のテストにかかった時間です。テスト方法によって測定対象となる接続段階が異なるため、方法を確認せずに数値を比較することはできません。遅延が小さくてもダウンロード速度が速いとは限らず、1回のテストに失敗した場合も、テスト先、ルーティング、ログをあわせて確認しましょう。
ルーティングは、コアに取り込まれた通信の経路を決めます。ルールを確認するときは、条件だけでなく、実行順、データファイル、デフォルトの接続先も確認してください。
ルーティングルールは、ドメイン、IPアドレス、ポートなどの条件に応じて、通信の接続先を直接接続、プロキシ、遮断などから選びます。一般にルールは上から順に評価されるため、先にある広い条件が後の細かな条件に優先する場合があります。特定のサイトが意図しない経路を通る場合は、ルールの順序、宛先情報、どのルールにも一致しない場合のデフォルト接続先を確認してください。
GeoSiteはタグごとに分類されたドメインの集合で、ルーティングからタグを指定して複数のドメインをまとめて参照できます。タグの意味や対象範囲は、使用中のデータファイルによって異なり、データソース間で完全に一致するとは限りません。ルール更新後に判定結果が変わった場合は、ファイルの読み込み状況と指定したタグが存在するかを確認してください。
GeoIPは、地域などのタグごとに整理されたIPアドレス範囲で、宛先IPアドレスの判定に利用できます。ドメイン名で判定するGeoSiteとは異なり、ルールによってはDNSの名前解決後でないと判定できません。データ上の地域分類はサーバーの現在の物理的な所在地を示すものではありません。誤判定が疑われる場合は、DNSの結果とデータファイルを確認してください。
トラフィック振り分けは、ルールに応じて通信ごとに接続先を変える方式です。たとえば、一部の宛先は直接接続し、ほかはプロキシ経由にできます。システムプロキシやTUNとは役割が異なり、これらは主に通信をクライアントに取り込むための仕組みです。TUNを有効にしても振り分けは実行でき、「グローバルプロキシ」の動作はクライアントごとの定義を確認する必要があります。
ドメイン名の名前解決と接続の確立は別の段階です。Webページが開けないときは、名前解決、ハンドシェイク、実際のリクエストのどこで失敗したかを先に確認し、設定を一度にすべて変更しないでください。
DNSはドメイン名の名前解決などを行い、一般には接続先のIPアドレスを取得するために使われます。ブラウザー、OS、プロキシコアがそれぞれ別のリゾルバーを使う場合があるため、一か所の設定を変えてもすべてのクエリが変わるとは限りません。名前解決の問題を調べるときは、どのソフトウェアがどのリゾルバーへ問い合わせ、その通信がどの経路を通るか確認してください。
FakeDNSはドメイン名に仮想IPアドレスを割り当て、そのアドレスとドメイン名の対応関係を保持して、後続の接続でドメイン情報を復元できるようにします。接続先サーバーの実IPアドレスを取得する機能ではないため、通信はこの対応関係を認識できる経路に戻す必要があります。TUNと併用する場合は、アドレス範囲、キャッシュ、ルーティングも考慮してください。機能を無効にした後は、古い名前解決キャッシュの削除が必要になることがあります。
DNSリークは、DNSクエリが想定した名前解決経路を通らず、別のリゾルバーやネットワークインターフェースから送信される現象です。システムプロキシの影響を受けるのはその設定を利用するアプリが中心で、端末上のすべてのDNS動作が自動的に統一されるわけではありません。確認時はブラウザーの暗号化DNS、システムのリゾルバー、クライアントの設定をあわせて調べてください。プロキシが有効かどうかだけでは判断できません。
実接続遅延は通常、選択した設定を通じてテスト先に実際のリクエストを送る所要時間を指します。サーバーのポートを確認するだけのテストより多くの接続段階が含まれます。測定範囲はクライアントの実装によって異なり、テスト先、名前解決、ハンドシェイクにも左右されます。テストに失敗しても、そのリクエストが完了しなかったことを示すだけで、すべてのサイトや接続先が使えないとは限りません。
まず通信の取り込み方法を選び、次にルーティングと接続を確認してください。設定名はプラットフォームによって異なる場合があるため、利用中のクライアント画面と権限の案内を確認しましょう。
システムプロキシは、OSがアプリに提供するプロキシ設定です。一般的なデスクトップブラウザーはこの設定を使いますが、独自の設定を使うアプリもあります。v2rayNの「システムプロキシを自動設定」は、主にシステムの設定をクライアントのローカル待ち受けアドレスに向ける機能です。すべてのアプリの通信が取り込まれるわけではありません。クライアント終了後にブラウザーが接続できなくなった場合は、システムプロキシの設定が元に戻っているか確認してください。
TUNモードは仮想ネットワークインターフェースを介してIP通信を取り込み、システムプロキシを使わないアプリなどにも対応します。追加の権限、システムルーティング、DNSの設定が必要になることがあり、単なる別のプロキシスイッチではありません。有効にする前に通常の接続が使えることを確認し、同じルーティングを変更するツールの同時使用は避けると、問題が起きた際に原因を特定しやすくなります。
AndroidクライアントはOSのVPNインターフェースを使って端末の通信を取り込めます。通常、初回起動時にシステムの許可を求められます。ここでいうVPNは通信を取り込む方式で、実際のプロキシプロトコルや接続先の振り分けはノード設定とルーティングによって決まります。通常、同じ環境でこのインターフェースを使用できるアプリは一つだけのため、ほかの類似アプリが接続と競合する場合があります。
実行ログには、クライアントやコアの起動、設定の解析、接続に関する情報が記録されます。障害がどの段階で起きたかを切り分けるための重要な手がかりです。問題を再現してから、その時刻付近にある最初の関連エラーを確認してください。最後のタイムアウト表示だけを切り取るのは避けましょう。ログを共有する前に、サブスクリプションURL、認証情報などの機密情報を削除し、必要に応じて使用中のコアと通信の取り込み方式も記録してください。