すでにサブスクリプションを利用している場合は、サーバーが提供するプロトコルでインポートしてください。VMessノードをVLESSに書き換えても接続できません。VMessはプロトコル設計に認証とデータ保護を含みます。一方、一般的なVLESSのencryption=none設定では、TLSやREALITYなど外側のセキュリティ機能を利用します。ノードの選択やインポート項目の確認、ハンドシェイク失敗の原因調査に役立つよう、必須項目、時刻の確認方法、プロトコル名だけでは通信速度を判断できない理由を解説します。
1分で比較:プロトコル・伝送方式・セキュリティ層
まずノードを3つの層に分けて考えましょう。VMessやVLESSはプロキシプロトコル、TCPやWebSocketなどは接続を運ぶ伝送方式、TLSやREALITYは外側のセキュリティに関わる仕組みです。後者2つを無視して「VMessノード」と「VLESSノード」だけを比べても、実際の動作は判断できません。
| 比較項目 | VMess | VLESS |
|---|---|---|
| ユーザー識別情報 | 通常はUUIDを使用し、サーバー側の設定と一致させる必要があります | 通常はUUIDを使用し、サーバー側の設定と一致させる必要があります |
| データ保護 | 一般的な設定ではプロトコル層でデータを暗号化し、TLSを追加することもできます | 一般的なencryption=none設定ではこの層で暗号化しないため、適切な外側の保護が必要です |
| 時刻の要件 | 認証に時刻が関係するため、クライアントとサーバーの時刻を同期させる必要があります | VMessと同様の時間幅を設けた認証要件はありませんが、外側の証明書などはシステム時刻の影響を受けます |
| 伝送設定 | 伝送方式やパスなどをサーバー側の設定に合わせる必要があります | 同様に伝送方式とセキュリティ設定を一致させる必要があり、UUIDだけでは接続できません |
| プロトコルの切り替え | クライアント側の種類を変更しても、サーバーの待ち受けプロトコルは変わりません | 利用するには、対応するVLESSサーバーの接続口が必要です |
v2rayNはデスクトップ向けクライアントで、ノードを管理し、コアを呼び出します。VMessとVLESSはコアが処理するプロトコルです。Android向けのv2rayNGはXrayコア、v2flyNGはv2flyコアを使用します。利用できるかどうかは、クライアントに含まれるコアが設定全体に対応しているかで決まります。ソフト名だけでは判断できません。
暗号化の仕組み:VLESSのnoneでも通信全体が平文とは限らない
一般的なVLESS設定のencryption=noneは、VLESSの層を指すもので、すべてのネットワーク層を指すわけではありません。ノードでTLSが正しく有効になっていれば、クライアントからサーバーまでのデータはTLSで保護されます。REALITYを使う場合は、クライアントとサーバーの双方が対応しており、関連する設定が一致している必要があります。noneを見て外側のセキュリティを無効にしたり、TLSとREALITYを自由に切り替えられる設定のように扱ったりしないでください。
プロトコル層と外側のセキュリティを個別に確認
VMessノード
- UUID、暗号化設定、サーバー側の要件を確認します。
- 現在一般的なVMess AEAD設定では、alterId=0を使用します。
- サーバー側でTLSが必要な場合は、クライアントでも有効にし、サーバー名を正しく設定します。
VLESSノード
- 一般的な設定ではencryptionにnoneを指定します。
- TLSを使うノードでは、サーバー名と証明書の検証を確認します。
- REALITYを使うノードでは、公開鍵、shortId、サーバー名、指定されたflowを確認します。
インポート後はサーバー側の設定に合わせて確認してください。securityをtlsからrealityに単独で変更したり、接続するために証明書の検証を無効にしたりしないでください。
VMessのプロトコル層の暗号化と、TLSによる証明書の本人確認は別のものです。TLSで証明書エラーが表示されたら、システム時刻、サーバー名、サーバー証明書を確認してください。「VMessはすでに暗号化されている」という理由でエラーを無視してはいけません。この記事では一般的なVLESSのnone設定を扱います。ほかの暗号化拡張を使う場合は、該当するコアとサーバーのドキュメントを確認し、古い設定項目を流用しないでください。
時刻の確認:VMessで接続できないときは時計をチェック
VMessの認証データには時刻が関係します。クライアントの時刻が大きくずれていると、アドレス、ポート、UUIDが正しくてもサーバーに接続を拒否されることがあります。一般的な実装では、両者の時刻誤差は約120秒以内である必要があります。具体的な条件は使用するコアの実装を確認してください。問題を調べる際は、誤差の許容範囲ぎりぎりに手動調整するのではなく、両側の時刻を自動同期させましょう。
- Windowsの「設定」→「時刻と言語」→「日付と時刻」を開き、「時刻を自動的に設定する」をオンにして「今すぐ同期」を実行します。
- 日付と年が正しいことを確認してください。タイムゾーンの表示が実際の地域と異なっていても、システム時刻が必ず誤っているとは限りません。一方、日付を手動で誤って設定すると、認証に直接影響します。
- ノードに再接続し、ログを確認します。自分でサーバーを管理している場合は、サーバー側の時刻同期も確認してください。サブスクリプションサービスを利用している場合は、時刻を同期済みであることを管理者に伝えましょう。
VLESSにはVMessと同様の時間幅を設けた認証要件はありませんが、時刻の影響をまったく受けないわけではありません。TLS証明書には有効期間があるため、システムの日付が間違っているとハンドシェイクに失敗することがあります。「VLESSにしたら接続できた」からといって、端末の時刻を直さなくてよいわけではありません。
性能と選び方:まず回線を比較し、次にプロトコルの負荷を確認
VLESSは基本的に軽量なプロトコル設計で、一般的なnone設定ではこの層のデータ暗号化処理を省けます。ただし、実際の接続ではTLSやREALITYを使うことが多く、伝送方式によるオーバーヘッド、コアの実装、端末の性能も影響します。そのため、一定の割合で速度が向上すると断言することはできません。同じプロトコルでも、サーバーの接続先を変えたときの差のほうが大きい場合があります。
VLESS + TLSまたはREALITY
おすすめ新しく設定し、クライアントとサーバーの双方が対応している場合は、優先的に検討できます。どちらか一方のセキュリティ方式を選び、サーバーの説明に従って必要な項目をすべて設定してください。両方を同時に有効にするわけではありません。
向いているユーザー:サーバーを管理でき、セキュリティ設定を理解したうえで新しい接続口を用意する方。
既存のVMess AEAD設定
利用中のサブスクリプションが正常に動作しているなら、そのまま使うのが簡単です。プロトコル名が古いからといって回線が遅いとは限らず、名前を変えるために接続設定を一から作り直す必要もありません。
向いているユーザー:サーバーがVMessのみを提供している方、または安定したVMessノードをすでに利用している方。
結論:同じ条件でテストしてから移行を判断
端末、ネットワーク、テスト先、時間帯をそろえ、各接続先を少なくとも3回ずつテストします。接続成功率、最初のデータを受信するまでの時間、継続時のダウンロード速度を記録してください。サーバー側の回線を管理できない場合は、結果を2つのノード間の差として捉え、プロトコル固有の性能差と決めつけないようにしましょう。
クライアント一覧に表示される遅延値だけでは、十分な比較になりません。TCP接続だけを確認するテストもあれば、プロキシ経由で接続先にアクセスするテストもあり、それぞれ結果の意味が異なります。「遅延は低いのにウェブページが開かない」場合は、プロトコルを変更する前に、TLSハンドシェイク、DNS、ルーティングを確認してください。
v2rayNへのノードインポート:6種類の設定項目を確認
共有リンクを受け取ったら、内容全体をコピーし、v2rayNのメイン画面で「クリップボードから共有リンクをインポート」を選びます。一般的なデスクトップ版では、メイン画面でCtrl+Vを押してインポートすることもできます。サブスクリプションURLを受け取った場合は、サブスクリプショングループに追加して更新してください。ノードのサーバーアドレス欄にサブスクリプションURLを入力してはいけません。画面によってメニューの位置が異なる場合があるため、機能名を目印にしてください。
- プロトコル:
vmess://とvless://ではインポート方法が異なります。リンクの接頭辞を手動で置き換えても、形式は変換されません。 - アドレスとポート:サーバーのドメイン名またはIPアドレスと、実際に待ち受けているポートを確認します。443はよくある例にすぎません。ローカルプロキシの待ち受けポートをサーバーポートの代わりに使うことはできません。
- ユーザー識別情報:UUIDはサーバーで許可されたユーザーのものと一致させてください。コピー時に空白や改行が混ざらないよう注意し、サブスクリプションに記載されたUUIDを自分で生成したものに置き換えないでください。
- 伝送方式:WebSocketではpathとHostを確認します。その他の伝送方式も、それぞれに対応する項目を確認してください。Host、サーバーアドレス、TLSのサーバー名は、必ずしも同じ値ではありません。
- セキュリティ設定:TLSではSNI、つまり画面上のサーバー名を確認します。REALITYでは公開鍵とshortIdも確認してください。共有リンクには
pbkやsidなどのパラメーターが含まれることがあります。 - 追加パラメーター:
flowは対応する設定の組み合わせでのみ使用します。サーバーからxtls-rprx-visionを指定された場合は、互換性のあるコアを使い、値を一致させてください。すべてのVLESSノードに一律で追加してはいけません。
インポートが成功したのは、クライアントが形式を認識したことを示すだけで、接続先に到達できるとは限りません。接続後はコアのログを確認し、ブラウザーがプロキシを使用しているか検証してください。Windowsでシステムプロキシに従うアプリを経由させる場合は、v2rayNのシステムプロキシメニューから「システムプロキシを自動設定」を選択できます。システムプロキシとTUNは別の接続方法です。プロトコルが使えるか確認するために、すべてのモードを同時に有効にする必要はありません。
よくある質問:インポートできるのに接続できない・ウェブページが開かない
既存のVMessノードをVLESSに変更できますか?
クライアントのプロトコル選択を変えるだけでは接続できません。まずサーバー管理者からVLESSの接続口と対応する設定を入手し、新しいノードとしてインポートしてください。アドレス、ポート、UUIDが同じに見えても、サーバーが実際にそのプロトコルに対応している必要があります。
VLESSのencryptionがnoneと表示されます。autoに変更すべきですか?
一般的なVLESSのnone設定では、値をそのままにしてください。VMessの暗号化設定をそのまま流用しないでください。ノードの編集画面でTLSまたはREALITYの設定を確認し、サーバー側と一致させます。この項目を変更しても、外側のセキュリティ設定の代わりにはなりません。
VMessが突然すべて接続できなくなった場合、まず何を確認すればよいですか?
まず端末の時刻を同期し、サブスクリプションを更新してログを確認してください。ログに接続タイムアウトと表示される場合は、ネットワークと接続先ポートを調べます。認証やハンドシェイクのエラーなら、UUID、時刻、セキュリティ設定を確認してください。原因を特定する前に、ノードをまとめて作り直すのは避けましょう。
ノードテストに成功したのに、ブラウザーでウェブページが開かない場合は?
まず目的のノードが選択されていることと、システムプロキシの状態を確認してください。次にDNSエラーとルーティングの状況を調べます。テスト先へのリクエストが成功しても、それはそのリクエストが通ったことを示すだけです。ブラウザーや別のドメイン、すべてのアプリが同じ経路を使うとは限りません。
プロトコル選びでは、まずサーバーが何を提供しているかを確認し、次にクライアントのコアが対応しているかを調べ、最後に実際のネットワーク状況をもとに選ぶのが確実です。VMessでは時刻同期と認証パラメーターが重要です。一般的なVLESS設定では、外側のセキュリティと関連項目を確認します。プロトコル名だけにこだわるより、必要な設定がそろい、クライアントとサーバーで一致していることが大切です。