VMess
プロキシプロトコル · ユーザー認証と暗号化
VMessはProject Vエコシステムのプロキシプロトコルで、認証と暗号化の仕組みを備えています。ユーザーIDには通常UUIDを使用します。インポート後もトランスポート方式、安全設定、サーバー側の要件を確認してください。UUIDだけを比較しても十分ではありません。システム時刻が大きくずれると認証に失敗することがあるため、接続トラブル時は端末の時刻も確認しましょう。
設定リファレンス / よく使う28用語
プロトコルは通信方式、コアは接続処理、クライアントは設定管理を担います。まず階層を把握し、それぞれの項目を確認しましょう。
設定時に目にする概念を分類して解説します。各項目には定義と利用上の注意点をまとめ、用語アンカーから直接移動できます。v2rayN、v2rayNG、v2flyNGのメニュー名はバージョンによって変わります。画面に項目があっても、すべてのコアが同じ設定に対応しているとは限りません。
ルールの詳しい設定例を見る:高度な設定 →01 / 接続の仕組み
プロキシプロトコル、トランスポート方式、トランスポートセキュリティはそれぞれ別の層です。接続設定を確認するときは、プロトコル名だけでなく各項目を個別に確認してください。
プロキシプロトコル · ユーザー認証と暗号化
VMessはProject Vエコシステムのプロキシプロトコルで、認証と暗号化の仕組みを備えています。ユーザーIDには通常UUIDを使用します。インポート後もトランスポート方式、安全設定、サーバー側の要件を確認してください。UUIDだけを比較しても十分ではありません。システム時刻が大きくずれると認証に失敗することがあるため、接続トラブル時は端末の時刻も確認しましょう。
プロキシプロトコル · トランスポートセキュリティとは別
VLESSは軽量なプロキシプロトコルで、単体では通信内容を暗号化しません。通常はTLSまたはREALITYと組み合わせます。UUIDはユーザー認証に使われるもので、接続の安全性をすべて表すものではありません。設定時はセキュリティ層、トランスポート方式、適用するflow項目も確認してください。VMessの項目をそのまま流用しないよう注意が必要です。
プロキシプロトコル · TLS内で通信
Trojanは通常、TLS接続内でプロキシ通信を行い、パスワードで認証します。サーバーアドレス、ポート、パスワード、TLSのサーバー名を一致させる必要があります。証明書の検証も接続処理の一部です。ハンドシェイクエラーが発生した場合は、まずサーバー名と証明書の条件を確認してください。証明書検証の無効化を通常の設定にするのは避けましょう。
暗号化プロキシプロトコル群
Shadowsocksは、指定された暗号化方式とパスワードを使ってプロキシ接続を確立します。プロトコルの世代によってパラメーターの形式が異なる場合があります。クライアントにShadowsocksが表示されていても、コアがすべての暗号化方式に対応しているとは限りません。インポートや接続に失敗したら、方式名、パスワード形式、使用中のコアの対応範囲を照合してください。
トランスポートセキュリティ · プロキシプロトコルではない
REALITYはXrayエコシステムのトランスポートセキュリティ方式で、VLESSと組み合わせることが多いものです。VMessやTrojanと同じ階層のプロトコル項目として設定するものではありません。クライアントには通常、サーバー名、公鍵、Short IDなどの接続情報が必要です。各項目は同じサーバー設定に基づいて指定し、使用するコアがこの組み合わせに対応していることを確認してください。
トランスポート · TCP / WebSocketなど
ここでいうトランスポート層とは、TCPやWebSocketなど、プロキシプロトコルがデータを運ぶ方式です。ノードの表示名とは異なります。WebSocketのパスやリクエストヘッダーと、TLSのサーバー名は別の項目で、相互に置き換えられません。クライアントとサーバーのトランスポート設定が一致しないと、アドレスや認証情報が正しくても接続できない場合があります。
02 / 接続処理と管理
GUIは設定の編集と管理を行い、コアは実際の通信を処理します。機能が使えるか判断するには、クライアント側の設定項目とコアのバージョンの両方を確認してください。
設定可能なネットワークプロキシツール群
Project Vは、設定可能なネットワークプロキシツールを中心としたプロジェクト群で、V2Rayはその主要プロジェクトの一つです。一般に「V2Rayクライアント」と呼ばれるものは、関連するコアを管理するGUIアプリを指すことが多く、特定のソフトウェアパッケージ名ではありません。解説を読むときは、プロトコル、コア、画面操作のどれを扱っているかを見分けると、設定場所を間違えにくくなります。
V2Ray Coreを保守するコミュニティ
V2FlyコミュニティはV2Ray Coreを保守しており、コアがプロキシ接続、ルーティング、DNSなどを処理します。v2flyNGはこのコア系列を使用し、利用できる機能はクライアントに含まれるバージョンによって異なります。他のコア専用と明記された設定例は、JSONの見た目が似ていてもそのままインポートできるとは限りません。
プロキシコア · V2Rayと技術的なつながり
XrayはV2Rayと技術的なつながりを持つプロキシコアのプロジェクトで、独自に保守するプロトコルや設定機能があります。v2rayNGでは一般的にXrayコアを使用し、デスクトップクライアントでも選択できる場合があります。認識されない設定項目があるときは、クライアント名だけで判断せず、実際に起動しているコアとバージョンを確認してください。
デスクトップGUIクライアント
v2rayNはサーバー、サブスクリプショングループ、ルーティング、ネットワークモードを管理する画面を備えています。デスクトップ版はWindows、macOS、Linuxに対応します。画面の設定に基づいて実行用の設定を生成し、接続処理は選択したコアに任せます。生成ファイルを手動で編集する場合は、再起動や設定切り替え時にクライアントが上書きしないか確認してください。
Android GUIクライアント · Xray
v2rayNGはAndroid向けのGUIプロキシクライアントです。共有リンクのインポート、サブスクリプションの管理、ルーティングの設定ができます。一般的なVPNモードではAndroidのVPNインターフェース経由で端末の通信を取り込みますが、有効なリモート接続設定が必要です。システムにVPNアイコンが表示されても、Webサイトやアプリに接続できるとは限りません。
Android GUIクライアント · V2Fly
v2flyNGはV2Flyコアを採用したAndroidクライアントの選択肢で、そのコア固有の設定が必要な場合に利用できます。v2rayNGと共通する操作概念はありますが、対応プロトコルの組み合わせや高度な設定項目まで完全に同じとは限りません。クライアントを切り替える前に、現在の接続が特定のコア機能に依存していないか確認してください。
03 / 設定の入手元
サブスクリプションは設定を配布し、ノードは個々の接続を表します。更新、インポート、接続テストは別々の操作です。どれか一つが成功しても、接続全体の確認にはなりません。
Subscription · 設定リストの更新元
サブスクリプションは、更新可能なサーバー設定の一覧をリンク経由で提供します。取得データはエンコードされた共有リンク一覧や、クライアントが対応する別形式の場合があります。URLにアクセス情報が含まれることが多いため、公開ページや信頼性を確認していない変換サービスに貼り付けないでください。更新に成功したということは、データを取得して解析できたという意味であり、個々の接続が使えることを保証するものではありません。
サーバー接続設定
ノードは、リモートプロキシの接続設定をクライアントで呼ぶときの一般的な名称です。アドレス、ポート、認証、プロトコル、トランスポートの設定を含みます。一覧の名前は識別用のラベルで、通信経路を決めるものではありません。同じアドレスでもポートや認証情報が異なれば別の接続設定になります。トラブル時は項目ごとに比較してください。
配信元の管理 · 更新と絞り込み
サブスクリプショングループを使うと、サーバー設定を配信元や用途ごとに整理し、個別に更新、絞り込み、無効な項目の確認ができます。クライアント上のグループ管理はコアのルーティング設定とは別です。グループを作成しても、特定のアプリの通信が自動で割り当てられるわけではありません。ノードを手動編集した場合、次回の更新で内容の一部が再生成または上書きされることにも注意してください。
URI · 単一設定の共有形式
共有リンクはvmess://、vless://などの接頭辞で接続設定を表します。データはエンコード形式またはURIパラメーター形式の場合があります。コピー時にクエリパラメーターが抜けたり、エスケープ文字が変わったり、改行が入ったりすると、インポート後の設定が不完全になることがあります。共有リンクに認証情報が含まれる場合もあるため、スクリーンショットの撮影や転送前に内容を確認してください。
プロキシ経由のテストリクエストにかかる時間
実接続の遅延は通常、選択したプロキシ経由でテスト先にリクエストを送り、応答までにかかった時間を指します。測定に含まれる処理は実装によって異なります。単純なポート確認より実際のリクエスト経路に近い値ですが、ダウンロード速度や長期的な安定性を示すものではありません。比較する際は同じテスト先と条件を使い、単発のタイムアウトはログと合わせて判断してください。
04 / 条件判定と出力先
まず接続がドメイン名とIPアドレスのどちらを持つか確認し、次にルールの順序とアウトバウンドタグを確認してください。ルール内の分類名は、対応するデータセットが存在して初めて機能します。
Routing rule · 条件による振り分け
ルーティングルールは、ドメイン、IP、ポート、インバウンドなどの条件に基づいて接続の出力先を決めます。V2Rayの一般的なフィールドルールは上から順に評価され、例外的なルールは広い分類より前に置くのが基本です。1つのルール内に異なる条件を複数指定すると、通常はすべて満たす必要があります。条件を追加すると、対象が広がるのではなく狭まる場合があります。
宛先と接続条件に応じて通信経路を振り分ける
ルーティングは通信を直接接続、プロキシ、ブロックなどの出力先に割り当てる方法であり、プロキシプロトコルではありません。結果はルールの順序、ドメイン情報、名前解決結果、ルールに一致しなかった場合のデフォルト経路によって決まります。画面上の「グローバル」設定も、通信の取り込み方法と合わせて理解する必要があります。すべてのアプリがプロキシコアを経由すると決めつけないでください。
IPアドレス範囲の分類データセット
GeoIPはIPアドレス範囲を地域や用途別に整理したデータセットです。ルーティングではgeoip:cnやgeoip:privateなどの分類を指定できます。分類結果は現在読み込まれているデータファイルに基づくもので、サーバーの物理的な所在地をリアルタイムに測定するものではありません。接続にドメイン名しかない場合、IPルールを適用できるかどうかは名前解決の設定にも左右されます。
ドメイン分類データセット
GeoSiteはドメインをカテゴリ別に整理したデータセットで、ルーティングではgeosite:接頭辞を使います。たとえばgeosite:cnのように指定します。分類名の有無や特定のドメインが含まれるかどうかは、実際に読み込まれたデータファイルとバージョンによって異なります。接続情報に宛先IPしかない場合は、適切なドメイン分類ルールを使うために、別の仕組みでドメイン情報を取得する必要があります。
outboundTag · 出力先の参照名
アウトバウンドタグは出力先の設定に付ける識別名で、ルーティングからoutboundTagで参照します。proxy、direct、blockは一般的な命名例ですが、名前を付けただけでプロキシ、直接接続、ブロックの機能が作られるわけではありません。ルールをコピーする前に、実行中の設定に同じ名前のアウトバウンドがあり、用途も一致していることを確認してください。
05 / 名前解決と通信の取り込み
DNSリクエストの送信経路と、アプリの通信をコアに取り込む経路は、連携させる必要のある別々の経路です。ネットワークモードを変更した後は、名前解決と実際の接続をそれぞれ確認してください。
Domain Name System · ドメイン名の名前解決
DNSはドメイン名をIPアドレスなどに変換します。プロキシコア、OS、アプリがそれぞれ独自の名前解決経路を持つ場合があります。コアのDNSを変更しても、すべてのアプリの問い合わせ先が変わるとは限りません。また、リゾルバーのアドレスだけではリクエストの出力先は分かりません。設定時は、誰が問い合わせるのか、どの経路で送信するのか、結果をルーティングにどう使うのかを確認してください。
ローカルのプロキシ接続先をOSに登録
システムプロキシは、ローカルプロキシのアドレスとポートをOSに登録し、その設定に従うアプリが利用できるようにします。すべてのネットワーク接続が自動的に取り込まれるわけではなく、HTTPプロキシやSOCKSプロキシを個別に設定するアプリもあります。クライアント終了後に無効なシステムプロキシ設定が残ると、アプリがその接続先にアクセスしようとして通信できなくなることがあります。
仮想ネットワークインターフェース · IP通信の取り込み
TUNモードは仮想ネットワークインターフェース経由でIP通信を取り込み、システムプロキシ設定に従わない一部のアプリも対象にできます。実際に取り込まれる範囲は、権限、システムルート、除外設定、他のネットワークツールによって異なります。すべての通信が同じプロキシ経由になるとは限りません。有効にした後はDNSとの連携を確認し、プロキシサーバーへの接続に適切な経路を確保してルーティングループを防いでください。
合成IP · ドメインとの対応付け
FakeDNSは合成IPを返し、そのアドレスと元のドメインとの対応関係を保持します。これにより後続の処理でドメイン情報を復元できます。合成アドレスは実際のサーバーアドレスではないため、対応関係を認識できる処理経路に接続を通す必要があります。有効・無効を切り替える際は、アドレスプール、システムルート、アプリのDNSキャッシュを確認し、古いアドレスが残って通信に影響しないようにしてください。
想定した名前解決経路から外れる問い合わせ
DNSリークは、ドメインの問い合わせが想定した経路で送信されない状態を指します。たとえば、指定した出力先から名前解決する設定なのに、別のシステムリゾルバーが処理している場合です。原因を調べる際は、OSの問い合わせ、ブラウザー独自の名前解決、コアのDNS出力先、TUNの取り込み範囲を分けて確認してください。テストページに表示されるリゾルバー名は手がかりの一つです。ローカル設定やリクエストログも合わせて確認しましょう。
Sniffing · 接続開始時の情報を識別
トラフィックのスニッフィングは、接続開始時のデータからプロトコルやドメインの手がかりを識別します。たとえば、一部のHTTPリクエストヘッダーやTLSハンドシェイク情報をルーティングの補助に使います。アプリの通信内容を自由に復号する機能ではなく、すべての接続からドメインを識別できるとも限りません。宛先アドレスを書き換えるかどうかは関連設定にも左右されるため、DNS設定の代わりとして有効にしないでください。
設定を確認しても接続に問題がある場合はトラブル対処をご覧ください。初回のインポートと接続手順はクライアント設定ガイドで確認できます。