プロトコル解説

SS / VMess / Trojan プロトコル徹底比較

同じ「プロキシ」なのに、なぜあるプロトコルは検閲耐性が高く、あるプロトコルは速度が速いのでしょうか?本記事では暗号化方式・偽装能力・パフォーマンスコストという3つの観点から、主要プロトコルを並べて分かりやすく比較します。

プロトコルはそもそも何を解決するのか

Shadowsocks であれ VMess であれ、本質的にはネットワークトラフィックを一枚のラップで包むことで、途中経路にあるネットワーク機器(通信事業者やファイアウォール)がそれを「プロキシ通信」だと識別しにくくし、同時に転送中のデータが盗聴・改ざんされないことを保証しています。プロトコル間の違いは主に次の3点に表れます:

  • 暗号強度どのアルゴリズムでデータを暗号化するか、前方秘匿性に対応しているか、解読や解析の難易度がどれくらいかを指します。
  • 偽装能力トラフィックの特徴が通常の HTTPS/TLS 通信にどれだけ似ているか。似ているほどトラフィック特徴に基づく検閲に識別されにくくなります。
  • パフォーマンスコスト暗号化・復号やハンドシェイクの過程で消費する計算リソースと遅延で、使用体験に直接影響します。

Shadowsocks(SS):軽量だが特徴が明確

Shadowsocks は最も早くから普及したプロトコルで、設計思想は非常にシンプルです。共有鍵を使ってデータを対称暗号化し(一般的な AEAD 暗号として chacha20-ietf-poly1305aes-256-gcm などがあります)、追加のハンドシェイクコストはほとんどありません。

  • メリット:実装がシンプルで速度が速く、クライアントのリソース消費が少なく、ほぼすべてのプラットフォームで成熟した実装があります。
  • デメリット:トラフィックの特徴が比較的固定的で、トラフィック分析に基づくディープパケットインスペクション(DPI)に識別されやすく、検閲の厳しいネットワーク環境では狙われて速度制限やブロックを受けやすくなります。
  • 適した場面:ネットワーク環境が比較的緩やかで、速度と安定性を優先したい場面。

VMess:V2Ray エコシステムの中核プロトコル

VMess は V2Ray プロジェクトから生まれたプロトコルで、SS をベースにタイムスタンプ検証やユーザー UUID による認証などの仕組みを加え、WebSocket + TLS 伝送との組み合わせにも対応しています。これによりプロキシ通信を通常のウェブページの HTTPS リクエストのように偽装でき、偽装能力はネイティブの SS より高くなっています。

  • メリット:WS+TLS と組み合わせることで偽装性が高く、エコシステムが成熟しており、マルチプレクシング(mux)に対応してハンドシェイク回数を減らせます。
  • デメリット:設定項目が多く、暗号化/復号とプロトコルヘッダー解析のコストが SS よりやや高く、時刻同期に一定の要件があります(クライアントとサーバーの時刻差が大きすぎると認証に失敗します)。
  • 適した場面:高い偽装能力が必要で、多少複雑な設定にも対応できる場面。

Trojan:実在するウェブサイトの HTTPS 通信に偽装

Trojan の設計理念は非常に直接的です。標準の TLS プロトコルをそのまま再利用し、サーバー側は通常の HTTPS ウェブサイトに偽装します(実際のウェブページコンテンツを設定することも可能です)。プロキシ通信とそのウェブサイトへの通常アクセスの通信は、それ自体が標準 TLS であるため特徴上ほぼ区別できません。

Trojan サーバーは通常 Nginx と組み合わせてポート多重化と証明書管理を行い、ブロックされた場合でも偽装したウェブページのコンテンツに直接アクセスできるため、さらに検知耐性を高められます。これが VMess よりも好まれる理由の一つです。

  • メリット:偽装能力が最も高く、プロトコルのオーバーヘッドが小さく(標準 TLS ライブラリを再利用)、デプロイも比較的簡単です。
  • デメリット:有効なドメイン証明書が必要です(通常は Let's Encrypt の無料証明書で十分です)。サーバー運用の要求がやや高くなります。
  • 適した場面:検閲が厳しいネットワーク環境、または長期的に安定して使いたく、頻繁にプロトコルを変更したくない場面。

Hysteria2 / TUIC:QUIC ベースの新世代プロトコル

ここ数年で普及してきた Hysteria2、TUIC などのプロトコルは QUIC(UDP)トランスポート層をベースにしており、従来の TCP ベースのプロトコルと比べて、生まれつき優れたパケットロス耐性と低い接続確立遅延を持ち、弱いネットワークや高遅延環境(例えば国際間の長距離リンク)で体感の向上が明らかです。

  • メリット:UDP ベースでパケットロス耐性があり接続確立が速く、弱いネットワーク環境での速度優位性が明確で、プロキシ用途に最適化された輻輳制御アルゴリズムを内蔵しています。
  • デメリット:一部のネットワーク環境では UDP トラフィックの速度制限やブロックが TCP より厳しく、エコシステムの成熟度とクライアントの対応度は前述の3つよりやや劣ります。
  • 適した場面:ネットワーク品質が不安定、国際間の距離が遠い、ダウンロード/ストリーミングの速度を重視する場面。

一目で分かる選び方

速度重視、ネットワーク環境が緩やか

Shadowsocks または Hysteria2 を優先しましょう。ハンドシェイクが速くオーバーヘッドが低いため、日常的な閲覧やダウンロードの体感が最良です。

検閲が厳しく、長期的な安定性が必要 推奨

Trojan を優先しましょう。標準 TLS による偽装でトラフィックがほぼ狙い撃ちで識別できなくなり、長期使用時のブロックリスクが最も低くなります。

エコシステムが成熟、設定の柔軟性が高い

VMess は V2Ray/Xray エコシステムと組み合わせることで、プラグインと伝送方式の選択肢が最も豊富になり、設定をいじるのが好きなユーザーに向いています。

弱いネットワーク、国際間の長距離

Hysteria2 / TUIC は QUIC ベースでパケットロス耐性が強く、国際間の高遅延リンクで体感の優位性が明らかです。

実際の利用では、多くのサブスクリプションサービスが複数のプロトコルのノードを同時に提供しているため、自分で構築する必要は全くありません——Clash クライアント上で遅延と現在のネットワーク環境に応じて、プロキシグループ内のノードやプロトコルタイプを切り替えるだけで、気に入らなければいつでも変更できます。

よくある質問

プロトコルは「新しい」ほど必ず良いのですか?

そうとは限りません。新しいプロトコルはある側面(例えばパケットロス耐性や偽装能力)で優位性を持つことが多いですが、エコシステムの成熟度やクライアントの互換性は定番プロトコルに劣ることがあります。選ぶ際は自分のネットワーク環境と実際のニーズに合わせるべきで、盲目的に新しいものを追い求めるべきではありません。

同じサブスクリプションに複数のプロトコルのノードがある場合、どれを使えばいいですか?

Clash のコントロールパネルの「プロキシ」ページで各ノードの遅延測定結果を直接比較し、遅延が低く安定しているものを優先的に使用できます。判断に迷う場合は、プロキシグループの自動選択(url-test)モードに任せれば、クライアントが自動的に現時点で最適なノードを選んでくれます。

Clash クライアントはこれらすべてのプロトコルに対応していますか?

主要な Clash クライアント(Clash Verge、Clash Meta コア / Mihomo)はすでに SS、VMess、Trojan、Hysteria2、TUIC などのプロトコルに対応しており、サブスクリプションを直接インポートするだけで自動的に識別され、プロトコルパラメータを手動で設定する必要はありません。

さらに詳しく

学び終えたら、Clash をインストールして試してみましょう

全プラットフォームのインストーラーを1か所で入手できます。おすすめタグに沿って選べば間違いなく、数分で使い始められます。

ダウンロードページへ
#プロトコル解説 #Shadowsocks #Trojan
ブログ一覧に戻る
Clash クライアントをダウンロード全プラットフォーム対応、今すぐ開始