VMess、VLESS、Trojanは、いずれもv2rayNやv2rayNGで利用される代表的なプロキシプロトコルです。ただし、プロトコル名だけで通信速度や安全性が決まるわけではありません。実際の接続品質は、サーバーの状態、TCPやWebSocketなどのトランスポート、TLSやREALITYの設定、利用するXrayコア、回線品質によって大きく変わります。
VMess、VLESS、Trojanの役割と違いを、対応クライアント、認証方式、TLS、設定のしやすさ、互換性の観点から比較します。v2rayNやv2rayNGを初めて使う方が、ノードの名前だけで判断せず、実際の設定項目を確認して自分に合うプロトコルを選べるようにする実践ガイドです。
3つのプロトコルを最初に整理する
プロトコルとは、クライアントと接続先サーバーが、認証やデータ交換を行うための通信規則です。v2rayNやv2rayNGは設定画面を提供するクライアントであり、実際に通信処理を担当するのはXrayなどのコアです。この2つの層を分けて考えると、「v2rayNだからVMessしか使えない」「VLESSなら必ず高速になる」といった誤解を避けられます。
VMessはV2Ray系で長く使われてきたプロトコルで、UUIDを中心とした認証情報、サーバーアドレス、ポート、トランスポート、TLSなどを組み合わせて利用します。既存のサブスクリプションや古いサーバー設定で広く見かけるため、互換性を重視する場合の候補になります。
VLESSは認証処理をシンプルにしたプロトコルです。VLESSそのものが暗号化機能や通信経路をすべて提供するわけではなく、TLS、REALITY、TCP、WebSocket、gRPCなどと組み合わせて構成します。特にXrayでは、VLESSとXTLS Vision、REALITYを組み合わせた設定がよく使われます。
Trojanは、TLS接続を前提に設計されたプロトコルです。通常の構成では、サーバーのドメイン名、ポート443、パスワード、TLS証明書、SNIなどを正しく一致させる必要があります。設定項目が比較的少ない一方、証明書やSNIに不整合があると接続できません。
ここで示した443や10808は固定値ではありません。サーバー側の待受ポートやクライアント側のローカルポートは、提供された設定によって異なります。解説記事の数値をそのまま入力するのではなく、ノード詳細と「設定」→「パラメーター設定」に表示される実際の値を確認してください。
VMess・VLESS・Trojanの違いを比較する
初心者が最初に見るべき項目は、プロトコル名、認証方式、TLSの有無、トランスポート、必要なコアです。通信速度については、同じプロトコルでもサーバーの混雑、経路、暗号化方式、パケットロスによって結果が変わるため、一般的な優劣を断定できません。複数のノードを同じ時間帯に試し、接続エラーと安定性を確認する方が実用的です。
| 項目 | VMess | VLESS | Trojan |
|---|---|---|---|
| 主な認証情報 | UUID、設定によってalterId | UUID | パスワード |
| TLS | 任意の構成で利用 | 任意の構成で利用 | 通常は必須 |
| よく使われる組み合わせ | TCP、WebSocket、TLS | TCP、WebSocket、gRPC、TLS、REALITY | TCP、TLS、WebSocket |
| 設定の特徴 | 既存環境との互換性が広い | 構成の自由度が高い | TLS関連項目の一致が重要 |
| 初心者の確認点 | UUIDと通信方式 | flow、SNI、公開鍵、short ID | パスワード、証明書、SNI |
VMess + WebSocket + TLS
- 認証
- UUID
- 伝送方式
- WebSocket
- パス
- /ws
- TLS
- 有効
既存のWebSocket構成を移行する場合は、ホスト名、パス、SNIをサーバー設定と一致させます。
VLESS + Reality
- 認証
- UUID
- Flow
- xtls-rprx-vision
- 公開鍵
- サーバー指定値
- short ID
- サーバー指定値
REALITYの公開鍵やshort IDは推測できません。購読に含まれる値をそのまま読み込んでください。
Trojan + TLS
- 認証
- パスワード
- ポート
- 443が一般的
- SNI
- 証明書の対象ドメイン
- 証明書検証
- 通常は有効
証明書名とSNIが一致しない場合、パスワードが正しくてもTLSハンドシェイクで失敗します。
VLESS + TLS
- 認証
- UUID
- 伝送方式
- TCPまたはWS
- 暗号化層
- TLS
- コア
- Xrayまたは対応コア
VLESSという名前だけで設定は完成しません。トランスポート、TLS、SNIまで確認する必要があります。
各プロトコルの長所と注意点
VMessの長所は、対応するクライアントや既存設定が多く、古いノードからの移行でも情報を確認しやすいことです。サブスクリプションにVMessが多く含まれている場合、まず現在のクライアントとコアで正常に読み込めるかを確認するのが安全です。ただし、古い設定ではalterId、暗号化方式、WebSocketパスなどが現在のサーバー設定と合わず、接続できない場合があります。
VLESSは構成の自由度が高く、Xrayの新しい機能を利用しやすい点が特徴です。特にVLESS + REALITYやVLESS + XTLS Visionでは、ノードに公開鍵、short ID、fingerprint、flowなどの項目が含まれます。これらを一つでも欠落させると、インポート自体は成功しても接続段階で失敗することがあります。VLESSだから安全、または必ず速いという意味ではなく、正しいセキュリティ層とセットで評価してください。
TrojanはTLSを中心に構成されるため、設定の見通しがよく、パスワード認証だけを確認すればよいように見えます。しかし、実際にはSNI、証明書の対象ドメイン、TLSの有効化、ポート、WebSocketを使う場合のパスが重要です。証明書エラーが出たときに、証明書検証を無効にして回避するのは推奨できません。時刻、ドメイン、SNI、サーバー証明書を順に確認してください。
サブスクリプションにREALITYやXTLS Visionの項目が含まれる場合に適しています。Xrayコアで細かな設定まで読み込める環境を選びます。
適するケース:新しい構成、Xrayを利用できる環境、設定の拡張性を重視
既存のサーバーや長く使っている購読設定との互換性を優先できます。まず現在の構成を維持したい場合に確認しやすい選択肢です。
適するケース:既存ノード、WebSocket構成、移行時の互換性を重視
TLSとパスワードを中心にした構成を使いたい場合に向いています。証明書とSNIが正しく設定されたノードを選んでください。
適するケース:TLS前提の設定、項目を整理して管理したい環境
利用環境別にプロトコルを選ぶ
新しくノードを選ぶ場合は、プロトコル名だけでなく、提供されている設定方式と利用するコアを確認します。v2rayNやv2rayNGで同じ購読URLを使っていても、クライアントのバージョンやコアの種類によって表示される項目が異なることがあります。ノード詳細を開き、欠落している項目や赤い警告がないか確認してください。
- 古いVMessノードを継続する:サーバーアドレス、ポート、UUID、alterId、暗号化方式、TCPまたはWebSocketの設定を照合します。現在接続できている場合、理由なくVLESSへ書き換える必要はありません。
- REALITYを使う:VLESS、Xrayコア、公開鍵、short ID、SNI、fingerprint、必要なflowを確認します。どれかが不明な場合は、手入力より購読から再取得する方が確実です。
- TLS構成を簡単に管理する:Trojanを候補にできます。ただし、TLS証明書の対象ドメインとserverNameが一致していることを優先します。
- Androidで電池消費を抑える:プロトコル名だけで判断せず、接続が頻繁に切れるノードを避け、v2rayNGのバッテリー最適化除外、バックグラウンド制限、TUN設定を確認します。
- デスクトップで複数のアプリを使う:v2rayNのシステムプロキシ、ローカルHTTPポート、Socksポート、ルーティングモードを確認します。ノードが接続済みでもシステムプロキシが無効なら、ブラウザーの通信は直接接続になります。
v2rayN・v2rayNGで実際に確認する手順
ここでは、すでに取得した購読URLからノードを追加し、プロトコルとコアを確認する流れを説明します。単一ノードURIを購読URL欄へ入力するのではなく、購読グループとノードインポートの入口を使い分けてください。画面の名称はバージョンによって少し異なる場合がありますが、確認する順番は共通です。
購読を登録する
v2rayNでは「購読グループ」→「購読グループ設定」、v2rayNGではメニューから「購読グループ設定」を開きます。「+」でグループを追加し、完全なHTTPS URLを貼り付けて保存します。
購読を更新する
v2rayNの「購読グループ」→「すべての購読を更新」、またはv2rayNGの購読更新操作を実行します。更新が終わるまで画面を閉じず、ログにHTTPエラーや解析エラーがないか確認します。
プロトコルを見る
追加されたノードの詳細画面を開き、VMess、VLESS、Trojanのどれかを確認します。名前に「高速」や「主力」と書かれていても、表示名だけで判断しないでください。
関連項目を照合する
VMessとVLESSはUUID、Trojanはパスワードを確認します。さらにアドレス、ポート、ネットワーク、TLS、SNI、パス、flow、REALITYの公開鍵とshort IDをサーバー側の情報と照合します。
コアを選択する
設定」→「パラメーター設定」→「Core タイプ」を開きます。VLESS + REALITYやXTLS Visionを使う場合は、該当項目を解釈できるXrayコアを選択し、コアを再起動してから接続します。
通信を確認する
ノードを選択して接続し、必要に応じてシステムプロキシを有効にします。接続後はログ、DNS、対象アプリの通信、数分間の安定性を確認し、失敗した場合は最初のエラー行から切り分けます。
ローカルポートが他のアプリと競合すると、プロトコルが正しくてもコアを起動できません。v2rayNではローカルHTTPポートやSocksポートを確認し、例として10808を別のプロセスが使用していないか確認します。v2rayNGでTUNを使う場合は、VPN権限、Androidのバックグラウンド制限、分アプリ設定も接続結果に影響します。
接続できないときの切り分け方
インポートできない問題と、インポート後に接続できない問題は分けて考えます。前者は購読URL、HTTP応答、Base64やURIの解析、クライアントの形式対応が中心です。後者はアドレス、ポート、認証情報、TLS、SNI、トランスポート、コア、ネットワーク経路の問題であることが多くなります。
VMessは表示されるのに接続できないのはなぜ?
UUIDだけでなく、ポート、alterId、暗号化方式、TCPまたはWebSocketのパス、TLS、SNIを確認します。サーバー側の設定と1項目ずつ照合してください。
VLESSを選べば必ず速くなりますか?
必ずしも速くなるわけではありません。サーバーの混雑、経路、トランスポート、パケットロスを同じ条件で比較し、安定性も評価します。
Trojanで証明書エラーが出たら?
端末の時刻とタイムゾーン、SNI、証明書の対象ドメイン、TLS設定を確認します。証明書検証を無効にして回避するのは避けてください。
VLESS + REALITYが読み込めない場合は?
Xrayコアを選択し、公開鍵、short ID、fingerprint、serverName、flowが欠落していないか確認します。手入力より購読の再更新が安全です。
ログにconnection refusedが出る場合は、宛先ポートでサービスが待ち受けていない、またはファイアウォールで拒否されている可能性があります。i/o timeoutなら、経路遮断、サーバー停止、ポート不通、DNSやネットワークの問題を確認します。tls: handshake failureやx509が出る場合は、プロトコルの認証情報を変更する前にTLS、SNI、証明書、システム時刻を確認してください。
初心者が最後に選ぶ基準
現在使える設定がVMessなら、互換性を優先してそのまま使い、接続が安定しているかを確認します。新しいサブスクリプションにVLESS + REALITYやXTLS Visionが含まれているなら、Xrayコアを選び、公開鍵やshort IDを欠落させないことが重要です。TrojanはTLSとパスワードを中心に整理しやすい一方、SNIと証明書の一致が前提になります。
- 互換性と既存設定を重視するなら、VMessを候補にする。
- Xrayの新しい構成やREALITYを使うなら、VLESSを候補にする。
- TLS前提で項目を整理したいなら、Trojanを候補にする。
- どのプロトコルでも、ノード詳細、コアログ、数分間の安定性を確認する。
- 速度だけでなく、DNS、接続維持、アプリごとのルーティングも確認する。
結論として、初心者にとっての最適なプロトコルは、名前だけで決めるものではありません。提供元の設定とクライアントの対応が一致し、必要な項目を欠落なく読み込め、実際の回線で安定して動作する構成が最適です。まず購読を正しく更新し、ノード詳細とコアログを確認してから、VMess、VLESS、Trojanの中で条件に合うものを選んでください。