VMessとVLESSの違いを解説|ShadowrocketのType選択前に確認

VMessとVLESSの暗号化方式、UUID、トランスポート、TLSの違いをわかりやすく解説。手動設定でサーバー情報と照合すべき項目も紹介します。

この記事の要点

Shadowrocketで既存のサーバー情報を手動入力する場合、Typeは手元の設定情報に従って選びます。VMessとVLESSはいずれもUUIDを使う場合がありますが、プロトコルの処理方法は異なります。接続にはAddress、Port、トランスポート、TLSなどの各項目が一致していることも必要です。以下では確認の順序とトラブル対処を紹介します。名称だけから接続設定を推測しないでください。

まず結論:UUIDが同じでもTypeが同じとは限らない

VMessとVLESSは異なるプロトコルです。VMessにはプロトコル上の暗号化設定があります。一方、VLESSは同じ仕組みのプロトコル層暗号化を提供しないため、既存の設定に基づいてTLSなどのセキュリティ層を確認する必要があります。これはプロトコル層の違いを説明するもので、VLESSなら必ずTLSを有効にする、VMessならサーバー指定のTLS設定を無視できる、という意味ではありません。接続する両側の設定を一致させてください。

UUIDは通常、識別子として使われますが、それだけで設定がVMessかVLESSかを判断することはできません。UUIDが同じでも、Typeやトランスポートの設定が異なれば、サーバー情報を相互に置き換えることはできません。まず設定情報に記載されたプロトコルを確認し、その後に各項目を入力しましょう。Typeを順番に試すより、誤りを特定しやすくなります。

設定情報で指定されたTypeを選ぶ

おすすめ

設定情報にVMessかVLESSかが明記されているか確認し、該当するプロトコルの項目を照合します。どちらもUUIDを使うからといって、Typeを変更しないでください。

適しているケース:サーバーの設定値や設定説明がそろっている

UUIDだけでTypeを選ぶ

UUIDからはトランスポート、TLS、プロトコルの種類はわかりません。入力して保存できても、接続設定が正しいとは限りません。

適しているケース:情報の不足に気づき、確認し直す必要がある

2種類
ここで比較するType:VMess、VLESS
4項目
まずType、Address、Port、UUIDを確認
3層
続いてトランスポート、TLS、追加項目を確認

判断の順序:まずプロトコルを確認し、次に接続の詳細を確認

設定情報にVMessまたはVLESSの記載がない場合は、情報の提供元にTypeを確認してください。UUID、ポート、TLSの有効・無効だけからプロトコルを推測しないでください。

Add Serverで手動入力する際、最初に確認する項目

自分のサーバー情報がある場合は、ShadowrocketのAdd Serverで該当するTypeを選んで入力できます。入力欄はTypeやトランスポートの設定によって異なります。元の情報を手元に残し、各項目を対応させてください。別々の設定からAddressとUUIDを組み合わせないようにしましょう。完全なサブスクリプションリンクがある場合は、通常はSubscribeから読み込み、その後に登録内容を確認すると、手入力による項目の抜けを防げます。

  1. Typeを確認:設定情報にVMessとあればVMessを、VLESSとあればVLESSを選びます。UUIDしか記載されていない場合は、まずプロトコルの種類を確認してください。
  2. AddressとPortを確認:Addressにはサーバーから指定されたドメイン名またはアドレスを、Portには対応するポート番号を入力します。VMessやVLESSに共通の固定Portはありません。よく見かける443であっても、確認を省略しないでください。
  3. UUIDを確認:元の値をそのまま入力し、コピー時に空白や改行が混ざっていないか、似た文字を取り違えていないか確認します。UUIDは該当するサーバー情報のものを使ってください。形式が同じだからといって、別の設定の値を流用しないでください。
  4. 後続の設定を確認:設定情報にEncryption、トランスポートの種類、TLS、SNI、Host、Pathがある場合は、それぞれ対応する項目に入力します。明記されていない値を推測で設定しないでください。

設定情報の種類別:入力の順序

サーバーの設定値がそろっている場合
  • Add Serverで、設定情報に指定されたTypeを選びます。
  • Address、Port、UUIDを入力し、トランスポートとTLSを照合します。
  • 保存後に各項目を見直し、追加パラメータの入力漏れがないか確認します。
サブスクリプションリンクがある場合
  • 自分のリンクをSubscribeから読み込みます。
  • 更新が完了したら、読み込まれた記録のTypeと各項目を確認します。
  • 一覧が空の場合は、まずリンクとサブスクリプションの応答内容を確認します。

どちらの方法でも、同じ設定情報を基準にしてください。読み込み方法によって、サーバー情報の不足項目が補われるわけではありません。

Encryption、トランスポート、TLSは別々に確認

VMessのEncryptionはプロトコルに関係する設定です。既存の設定情報に基づいて入力してください。VLESSとVMessではプロトコル層の処理が異なるため、VMessのEncryptionの値をそのままVLESSに設定することはできません。TLSは別の層の設定です。TLSを使うか、どのサーバー名が必要か、証明書をどう検証するかは、該当する設定のサーバー側の指定を確認してください。ある項目が空だからといって、別の層も無効にしてよいとは限りません。

トランスポートは、プロトコルのデータをどのように運ぶかを示します。設定情報にはTCP、WebSocket、gRPCなどが記載されている場合があります。WebSocketのHostとPathはトランスポートのパラメータです。TLSのSNIはサーバー名を示すもので、どちらにもドメイン名が入るからといって相互に置き換えられるわけではありません。実際に表示される項目は、選択したTypeとアプリ内の設定によって異なります。

設定項目確認する内容混同しやすい点
EncryptionVMessの設定で指定されたプロトコル関連の値TLSの切り替え項目ではありません。VLESSにそのまま適用しないでください。
Transportサーバーが指定するTCP、WebSocketなどのトランスポートTypeが同じでも、トランスポートが同じとは限りません。
TLSとSNITLSを有効にするかどうかと、設定情報で指定されたサーバー名SNIとAddressが同じとは限りません。個別に照合してください。
HostとPathWebSocketを使う場合に設定情報で指定されたリクエストパラメータPathのスラッシュや文字は元の値どおりに入力してください。HostをSNIの代わりに使うことはできません。

たとえば、設定情報にPort: 443、TLS: on、さらに/で始まるWebSocketのPathが記載されている場合、手動入力時にはポート、TLS、Pathを個別に確認します。443はここでの例であり、VMessやVLESSで必須のポートではありません。Pathをドメイン名から推測することもできません。トランスポートやTLSの指定が不足している場合は、接続の問題を判断する前に情報を確認してください。

保存後に接続できない場合:症状から確認範囲を絞る

保存できたことは、記録が一覧に追加されたことを示すだけで、サーバーが接続を受け付けたことを意味しません。まず、選択中の記録が入力したものと同じか確認し、接続テストや実際のアクセス結果を確認します。元の設定情報を残し、疑わしい項目を一度に一つだけ変更してください。Type、Port、TLSを同時に変更すると、原因を追跡しにくくなります。

VMessとVLESSのどちらも選べる場合、先にどちらを試すべき?

元の設定情報に記載されたプロトコルを確認してください。同じUUIDを使っていても、サーバー側の設定に合わせる必要があります。Typeの記載がない場合は設定情報の提供元に確認し、接続結果からプロトコルを推測しないでください。

UUIDを入力しても接続に失敗する場合、最初に確認する項目は?

まずAddressとPortが同じ設定のものか確認し、UUIDにコピー時の空白が混ざっていないか確認します。次に、設定情報に基づいてトランスポートとTLSを照合してください。UUIDだけを何度も変更しないでください。

WebSocketのHostとPath、TLSのSNIはどう区別する?

設定情報の項目名に合わせて入力します。HostとPathはWebSocketのパラメータ、SNIはTLSのパラメータです。異なるドメイン名がそれぞれ指定されている場合は、個別に入力してください。Addressですべての項目を置き換えないでください。

読み込み後のTypeが、手元の説明と異なる場合は?

まずサブスクリプションの更新が完了していることと、同じ記録を確認していることを確かめます。そのうえで、設定情報の提供元に実際の応答内容を確認してください。対応する設定値がすべてわからないまま、Typeだけを変更して他の読み込み項目を残さないでください。

テストでタイムアウトする場合は、AddressとPort、現在のネットワークからサーバーに到達できるか、サーバー側でその設定がまだ使われているかを優先して確認します。接続は確立するもののアクセス結果が想定と異なる場合は、選択中の記録とルーティング設定を確認してください。症状だけで「VMessのほうがVLESSより速い」またはその逆と結論づけることはできません。接続結果はサーバー設定、ネットワーク経路、トランスポート、ルーティングの状態にも左右されます。

Typeを確認したら、プロトコルの問題とルーティングの問題を切り分ける

ShadowrocketのTypeは、サーバー記録で使うプロトコルを指定します。Global Routingは、選択中の接続を通じてトラフィックをどう処理するかを決めます。Global RoutingのProxy、Direct、Configはルーティング方法であり、VMessやVLESSの別名ではありません。Directではトラフィックが直接接続として処理されます。Webページを開けたことだけで、入力したサーバー記録が有効になったとは判断できません。

トラブル対処は2段階で進めます。まず選択中の記録とルーティングの状態を確認したうえで接続を検証し、その後、普段使うConfigに戻ってルールを確認します。特定のドメインだけで問題が起きる場合は、VMessとVLESSを何度も切り替えるより、そのリクエストに適用されたルールを確認するほうが効果的です。Settings → On Demandは条件に応じて接続を開始する動作を管理するもので、Typeやサーバー項目の確認の代わりにはなりません。

設定内容の最終チェック

手動入力や更新が終わったら、アプリ内の記録を元の設定情報と並べて確認してください。重要なのは、すべての値が同じ設定に由来していることです。プロトコル名、アドレス、ポート、識別子、トランスポート、セキュリティ層のいずれかが欠けても、接続結果が想定と異なる場合があります。設定情報が不完全な場合、アプリの画面からサーバー側で実際に使われている値を判断することはできません。

  1. TypeにVMessまたはVLESSが明記され、手元の設定情報と一致している。
  2. Address、Port、UUIDが同じ記録のもので、コピー内容に余分な空白や改行がない。
  3. VMessのEncryption、選択したトランスポートと追加項目を設定情報どおりに入力し、VMessの設定をVLESSにそのまま適用していない。
  4. TLS、SNI、WebSocketを使う場合のHostとPathを個別に確認し、ドメイン名の項目を混同していない。
  5. テスト時に選択中のサーバーとGlobal Routingの状態を確認し、Configを使う場合は対象リクエストに対するルールの処理も確認する。

設定情報をSubscribeで管理している場合、パラメータの変更後にサブスクリプションを更新し、読み込まれた記録を確認してから手動編集が必要か判断してください。ShadowrocketはApp Storeから入手でき、開発元はShadow Launch Technology Limitedです。iPhone、iPadなどのシステム要件はApp Storeの製品ページをご確認ください。アプリの入手と自分のサーバー設定の取得は別のことです。アプリの買い切り購入に通信サービスの料金は含まれません。

Shadowrocketの入手先と基本操作を確認

まず正規の入手先を確認するページでApp Storeの製品情報を確認してください。自分の設定情報がある場合は、クイックスタートガイドで読み込みや接続の方法を確認できます。

正規の入手先を確認 使い方を見る
App Storeの正規情報を確認