この記事の要点

すでにサブスクリプションを利用している場合は、プロトコル名だけで選ばず、安定して接続できるノード一式を優先しましょう。自分で構築する場合は、認証方式や通信の保護、端末への負荷を比較します。この記事では4つのプロトコルを個別に解説し、デスクトップ、Android、低スペック端末での選び方を紹介します。読み終えたらインポート項目を確認し、「プロトコルを変えれば本当に速くなるのか」も判断できます。

プロキシプロトコル・通信方式・暗号化レイヤーを区別する

VMess、VLESS、Trojan、Shadowsocksはプロキシ通信のためのプロトコルであり、クライアントアプリの種類ではありません。v2rayNはデスクトップ用クライアント、v2rayNGはXrayコアを使用するAndroid用クライアント、v2flyNGはv2flyコアを使用するAndroid用クライアントです。クライアントはノードを管理してコアを呼び出しますが、実際に利用できるプロトコルやパラメーターは、使用するコアとそのバージョンによって異なります。

1つのノードに複数の要素が含まれることは珍しくありません。たとえばVLESS + TCP + REALITYは、プロキシプロトコル、通信方式、セキュリティ機構の3つの層で構成されています。WebSocketはVMessの別名ではなく、TLSもTrojan専用の機能ではありません。速度を比べる際に「VLESSとVMess」の違いだけを見ても、通信方式や暗号化、回線の条件が抜けていれば、十分な結論は得られません。

そのため、サブスクリプション内で同じプロトコル名が付いたノードでも、使い勝手は大きく異なる場合があります。出口の場所、夕方の混雑、ネットワーク間のパケットロス、中継経路は、プロトコルそのものよりもページ表示やダウンロード速度に大きく影響することがあります。

4つのプロトコルの成り立ち・認証・暗号化の違い

Shadowsocksは、軽量な暗号化プロキシとして登場しました。VMessはV2Rayエコシステムの認証・暗号化プロキシプロトコルです。VLESSはプロトコル構造を軽量化し、一部の役割を分離しています。Trojanは、TLSによるプロキシ接続の保護を前提とした設計が特徴です。成り立ちが異なるため、単純に旧式から新型への性能ランキングとして捉えることはできません。

プロトコル 認証情報 主なデータ保護方式 インポート時の確認項目
VMess UUID。認証には時刻が関係 プロトコル自体のデータ暗号化に対応。TLSの併用も可能 UUID、暗号化設定、システム時刻、通信パラメーター
VLESS UUID 一般的な設定ではTLSまたはREALITYで接続を保護 セキュリティ方式、サーバー名、フロー制御、関連する公開鍵パラメーター
Trojan パスワード 標準的な使い方ではTLSによる通信保護が必要 パスワード、サーバー名、証明書の検証
Shadowsocks パスワード、または方式ごとに指定された鍵 選択した暗号化方式でプロキシデータを保護 暗号化方式、鍵の形式、サーバー側との互換性

VMess:既存設定との互換性を保ち、時刻と認証方式を確認

VMessは、すでに安定して使えているノードを継続利用する場合に適しています。現在の設定ではAEAD認証を使用してください。古い解説にある非ゼロのalterIdは過去の設定方法であり、新しいノードに共通する設定として使うべきではありません。認証はシステム時刻の影響を受けるため、接続できない場合はまず自動時刻設定を有効にしましょう。UUIDが正しくても、WebSocketのパスやHost、TLSのサーバー名が正しいとは限りません。

VLESS:軽量でもセキュリティレイヤーは省略できない

一般的なVLESS設定にあるencryption=noneは、このレイヤーで従来型のペイロード暗号化を行わないという意味であり、接続全体が暗号化されていないという意味ではありません。TLSやREALITYと組み合わせる場合は、それぞれのセキュリティ機構が接続を保護します。これを理由に、インターネット上のノードを暗号化なしで接続する設定に変更しないでください。REALITYやVisionなどの機能を使う場合は、Xrayの対応状況も確認してください。Xray向けの設定が、すべてのv2flyコアで使えるとは限りません。

TrojanとShadowsocks:TLSと暗号化方式をそれぞれ確認

Trojanは通常、パスワードで認証し、TLSで通信を保護します。証明書の検証とサーバー名が重要な設定項目です。一方、Shadowsocksではchacha20-ietf-poly1305などの暗号化方式を指定する必要があります。Shadowsocks 2022には特定の鍵要件がある別の方式が含まれるため、方式名だけ変更して古いパスワードをそのまま使うことはできません。どちらもサーバーアドレスを入力すれば必ず接続できるわけではありません。

結論:まず設定一式を確認し、プロトコルの対応状況を判断

ノードのプロトコル、通信方式、セキュリティ方式、認証項目を1つずつ照合しましょう。プロトコル名が同じだけでは、クライアントから接続できるとは限りません。また、正しい設定の代わりに証明書の検証を無効にしないでください。

用途別の選び方:普段使い・既存サブスクリプション・低スペック端末

以下のおすすめは、サーバー設定を選べるユーザー向けです。サブスクリプションを利用するだけの場合は、提供元が指定するパラメーターに従ってください。クライアント側でVMessをVLESSに変更しても、サーバーが自動的に別のプロトコルに対応することはありません。

VLESS + TLSまたはREALITY

おすすめ

新規ノードを構築し、接続する両側のコアが対応している場合は、この組み合わせを優先的に検討しましょう。必要なパラメーターを一式そろえ、Visionを使う場合はサーバーとクライアントのフロー制御も一致させてください。あくまで構築方法としてのおすすめであり、あらゆるネットワークで速度を保証するものではありません。

おすすめの用途:サーバーを管理でき、Xrayの機能を確認できる普段使いの接続。

VMess

既存ノードが安定しているなら、そのまま使い続けましょう。サーバーがWebSocket + TLSを使用している場合は、パス、Host、サーバー名を含めて設定を維持してください。使えている構成を作り直してまで、プロトコルを変更する必要はありません。

おすすめの用途:既存のサブスクリプションや構築環境を使い、現在の接続経路を維持したい場合。

Trojan

サーバー側でTLSが正しく設定されていれば、パスワードや証明書関連の項目は比較的わかりやすく設定できます。性能の最適化を検討する前に、サーバー名と証明書チェーンの問題を確認しましょう。

おすすめの用途:有効な証明書とドメインがあり、標準的なTLS設定を使いたい場合。

Shadowsocks AEAD

両端が同じ方式に対応していれば、設定項目が少ないため、低スペック端末で試す候補になります。AESのハードウェアアクセラレーションが利用できるかどうかで、ChaCha20方式との実際の負荷は変わります。

おすすめの用途:設定をシンプルにし、CPU使用率を抑えたい端末や環境。

「軽量」という言葉が示すのは、処理コストの一部にすぎません。低スペック端末で、プロキシを必要としない通信まで大量に経由させている場合は、プロトコルの変更より不要な通信の取り込みを減らすほうが効果的です。まずルーティングと振り分けを整理し、同じ経路でCPU使用率とスループットを比べましょう。そうすれば、振り分けの違いをプロトコルの優位性と誤認せずに済みます。

モバイルの省電力とデスクトップの安定性:通信の取り込み範囲を分けて調整

Androidの消費電力は、プロトコル名だけでは判断できません。電波の弱さ、頻繁な再接続、バックグラウンドアプリの通信、プロキシ接続がアクティブな状態を保つかどうかも、電池の減りに影響します。同じ端末とネットワークで比較しない限り、特定のプロトコルが一定量の電力を節約すると断言することはできません。

設定例:同じ候補ノードを使い、通信の入口を個別に調整

デスクトップ:v2rayN
  • まずシステムプロキシを使ってブラウザーの接続を確認し、必要に応じてTUNを有効にします。
  • 「設定」→「パラメーター設定」で実際の待ち受けポートを確認します。メニュー名はバージョンによって異なる場合があります。
  • 直接接続ルールを残し、テスト中はダウンロードとシステムのバックグラウンド更新を一時停止します。
Android:v2rayNG / v2flyNG
  • アプリごとのプロキシ設定では、必要なアプリだけを対象にして、テスト範囲を広げすぎないようにします。
  • 同じネットワーク、画面の明るさ、テスト時間にそろえてから、消費電力を記録します。
  • v2flyNGでは、まずコアの対応状況を確認し、Xray専用の組み合わせをそのまま適用しないでください。

同じサブスクリプションを使っていても、両方のクライアントが同じ機能に対応しているとは限りません。互換性のあるノードをそれぞれ用意し、同じ条件でテストしましょう。

画面消灯後に頻繁に切断される場合は、まずシステムのバックグラウンド実行制限と、ログに再接続の記録がないかを確認しましょう。VMessやTrojanが原因だとすぐに決めつけてはいけません。バッテリー制限を調整すると接続が維持されやすくなることがありますが、バックグラウンド動作が増える可能性もあるため、使い方に合わせて判断してください。

プロトコルの速度を測る方法:ポート・回線・テスト条件をそろえる

ポート番号はプロトコルを示す識別子ではありません。443番ポートはTLSサービスによく使われますが、ノードのポートを443に変更してもTLSが自動的に有効になるわけではありません。ローカルの待ち受けポートは、アプリとクライアント間の接続に使われます。以下の3つの数値は設定上の役割を区別するための例であり、すべてを共通の初期値に変更する指示ではありません。

443
リモートTLSサーバーのポート例
10808
ローカルSOCKS待ち受けポートの例
10809
ローカルHTTP待ち受けポートの例

ローカルポートは、現在のクライアント画面に表示される値を確認してください。バージョンによってはHTTPとSOCKSを個別に設定せず、混合待ち受けを使います。リモートポートはサーバー側と一致させる必要があります。ローカルの待ち受けを自分の端末だけで使う場合は、ループバックアドレスで待ち受け、意図せずLANに公開しないようにしてください。

  1. 出口を固定:できるだけ同じサーバー上で異なるプロトコルを比較します。地域の異なるサブスクリプションノード同士では、ノードの使い勝手しか比べられず、プロトコルの影響を切り分けられません。
  2. テスト内容を固定:同じダウンロード先で3回連続してテストし、各回60秒間の平均スループット、失敗回数、CPU使用率を記録します。これはテスト方法の説明であり、この記事での実測結果ではありません。
  3. 接続直後と継続転送を分けて測定:Webページの初回表示はハンドシェイク、DNS、往復遅延の影響を受けやすく、大容量ファイルのダウンロードは継続的なスループットを測るのに適しています。
  4. 設定一式を記録:TLS、通信方式、フロー制御、多重化設定、コアのバージョンを記録します。「VLESSが速い」とだけ記録しないでください。
  5. 混雑時間帯にも再測定:プロトコル間の差が複数回の測定結果のばらつきより小さい場合は、失敗が少なく管理しやすい設定を優先しましょう。

結論:まずボトルネックを特定し、プロトコル変更を判断

CPU使用率が継続してほぼ100%に達している場合は、暗号化やカプセル化の処理負荷を重点的に比較する価値があります。CPUに余裕があるのにどのノードも遅い場合は、回線、パケットロス、サーバー側の速度制限を先に調べましょう。プロトコルを変えても、こうしたボトルネックは解消できません。

インポート後に接続できない場合:よくある4つの問題

サブスクリプションはノードの設定を配布しますが、互換性のないコアに新しい機能を追加するものではありません。更新後はノードの項目がそろっているか確認してから、クライアントのログを確認しましょう。トラブル情報を共有する際は、UUID、パスワード、サブスクリプションURL、関連する認証情報を隠してください。

VMessのUUIDは正しいのに、なぜ認証に失敗する?

まずシステムの日付設定で自動時刻設定を有効にし、サーバー側でそのユーザーが引き続き有効かを確認します。古い設定のノードの場合は、過去のalterId設定が含まれていないか確認してください。古い解説の設定をむやみにコピーしないでください。最後に通信方式とTLSのパラメーターを項目ごとに照合します。

VLESSをインポートできるのに、接続時に非対応と表示されるのはなぜ?

インポートが成功したということは、クライアントがリンク形式を認識しただけです。実際に動作しているコアと、ノードがREALITYやVisionなどの機能を使っているかを確認しましょう。不足しているセキュリティパラメーターを補います。コアが対応していない場合は、フロー制御の項目を削除して試すのではなく、互換性のあるノードを選んでください。

Trojanで証明書エラーが出た場合、検証をスキップしてもよい?

まず時刻を合わせ、サーバー名がサーバー証明書と一致しているか確認します。さらにサーバー管理者に、証明書の有効期限と証明書チェーンを確認してもらいましょう。検証のスキップを恒久的な解決策にしないでください。接続先の身元を確認する機能が弱まります。

Shadowsocksのパスワードは同じなのに、クライアントを変えると使えないのはなぜ?

暗号化方式、サーバーポート、鍵の形式をあわせて確認しましょう。特に、従来のAEADで使うパスワードをShadowsocks 2022の固定長鍵としてそのまま使わないでください。両端が同じ方式に対応していることを確認してから、UDPとルーティングの要件を調べます。

選ぶ順番:互換性、安定性を確認してから負荷を比較

普段使いでは、回線が安定し、必要なパラメーターがそろっているノードを優先しましょう。新規構築ではVLESSのセキュリティ構成を検討できます。既存のVMessやTrojan接続は、名前だけを理由に変更する必要はありません。低スペック端末ではShadowsocks AEADなどを候補として試し、端末のCPU使用率、接続失敗率、スループットの記録をもとに判断してください。

用語を確認する場合はプロトコル用語集をご覧ください。セキュリティ設定を入力する前に、プロトコルリファレンスを確認しましょう。動作確認済みの設定を1つ残し、項目を1つずつ変更すれば、プロトコル、DNS、ルーティング、コアを一度に変更するより問題を特定しやすくなります。