# VLESS・VMess・Trojan・Shadowsocks：どれを使うべきか

HTML: https://v2rc.app/ja/learn/choosing-a-protocol/ · 最終確認日: 2026-11-06

VLESS・VMess・Trojan・Shadowsocks の通信上の違い、制限の厳しいネットワークで通用するもの、まず何を頼むべきかを解説。v2rc が読み込める形式も紹介します。

V2Ray クライアントがプロトコルを選んでくれるわけではありません。決めるのは読み込む設定で、その設定はプロバイダーか自分のサーバーから来ます。つまり、実際に考えるべきなのは、何を頼むか、あるいは何を構築するかです。この記事では重要な違いを説明し、最後に短い推奨をまとめます。

> **結論。** 選べて、なおかつネットワークの制限が厳しいなら、まずは TCP・ポート 443 上の VLESS + REALITY を、`xtls-rprx-vision` フローを付けて使ってください。予備として、Trojan や TLS + WebSocket 上の VLESS など、種類の異なる設定をもう 1 つ持っておきます。制限のないネットワークなら、ほとんどどれでも動きます。どの選択も永久ではありません。検閲側は対策を変えてくるので、今月使えたものが来月も使えるとは限りません。

## 選択は 1 つではなく 3 層

「VLESS か VMess か」は 1 つの判断に聞こえますが、実際には 3 つあります。

- **プロトコル**：クライアントがどう認証し、ペイロードがどんな形になるか（VMess、VLESS、Trojan、Shadowsocks）。
- **トランスポート**：バイト列がどう運ばれるか（素の TCP、WebSocket、gRPC など）。
- **セキュリティ**：接続を何で包むか（なし、TLS、REALITY）。

同じプロトコルでも、残りの 2 層しだいで、ほとんど見えなくなることもあれば、すぐ見つかることもあります。検閲側に何が見えるかは、主にトランスポートとセキュリティで決まります。

## 検閲側から見えるもの

- **ランダムに見えるバイト列。** 素の TCP 上の Shadowsocks と VMess には、見分けのつくヘッダーがありません。それ自体が目印になります。2021 年後半以降、Great Firewall は、最初のパケットが完全に暗号化されたデータに見える接続をブロックしています。詳しくは[中国の記事](https://v2rc.app/ja/learn/china/)をご覧ください。
- **TLS ハンドシェイク。** Trojan、および TLS 上の VLESS や VMess は HTTPS に見えます。それでも検閲側は、サーバー名、IP アドレス、証明書、接続の挙動を調べることができます。
- **借り物のハンドシェイク。** REALITY は、あなたが選んだ実在の Web サイトの TLS ハンドシェイクを模倣します。鍵を持たないプローブは、その実在のサイトに転送され、本物のページを目にします。自前のドメイン名や証明書は必要ありません。

## 4 つのプロトコルの比較

| | VMess | VLESS | Trojan | Shadowsocks |
|---|---|---|---|---|
| ペイロード自体を暗号化する | はい | いいえ（TLS または REALITY に依存） | いいえ（TLS に依存） | はい |
| 既定での見え方 | 素の TCP 上ではランダムなバイト列 | セキュリティしだい：ランダムなバイト列、TLS、または REALITY | HTTPS | ランダムなバイト列 |
| 自前のドメインと証明書が必要 | TLS を使う場合のみ | TLS を使う場合のみ（REALITY では不要） | 必要 | 不要 |
| 時計がずれていると失敗する | はい | いいえ | いいえ | いいえ |
| v2rc に読み込める | はい | はい | はい | はい |

- **VMess** は V2Ray 本来のプロトコルです。UUID とタイムスタンプで認証するため、スマートフォンやサーバーの時計が数分ずれているだけで、エラーメッセージも出ないまま失敗します。alterId は 0（AEAD モード）にしてください。0 以外の alterId は旧方式です。
- **VLESS** はより軽量な後継プロトコルです。独自の暗号化は行わないので、プライバシーは下の層の強さしだいです。TLS または REALITY と組み合わせて使い、インターネット上でセキュリティ `none` のまま使うことは決してしないでください。
- **Trojan** は HTTPS を模倣します。通常の TLS 接続の中にパスワードを入れる方式です。パスワードを知らないクライアントには、代わりに普通の Web ページが返されます。実在するドメインの本物の証明書が必要で、ドメインはブロックされる可能性があります。
- **Shadowsocks** は昔からある暗号化プロキシで、運用がいちばん簡単です。AEAD 暗号を使ってください。`rc4-md5` や `aes-256-cfb` のような古いストリーム暗号は弱いものです。プラグインやラッパーがなければ、そのトラフィックは完全に暗号化されたデータに見える種類のものになります。

## REALITY と Vision が加えるもの

REALITY の設定には、`security=reality`、サーバー名（`sni`）、公開鍵（`pbk`）、ショート ID（`sid`）が含まれます。サーバー名は、TLS 1.3 と HTTP/2 に対応した実在の Web サイトでなければなりません。[REALITY のドキュメント](https://github.com/XTLS/REALITY)がまさにそれを求めています。

`flow=xtls-rprx-vision` は Vision フローです。TLS 接続の中に別の TLS 接続を載せると、見分けのつくパターンが残ります。研究文献ではこれを TLS-in-TLS と呼び、[Xue et al. (USENIX Security 2024)](https://www.usenix.org/conference/usenixsecurity24/presentation/xue) は、こうしたパターンから難読化されたプロキシが露見しうることを示しました。Vision は、それ自体が HTTPS であるトラフィックについて、このパターンを減らすように設計されています。

どちらも万能ではありません。サーバーの IP アドレスとホスティング先のネットワークは依然として重要で、REALITY も、接続が海外データセンターのアドレスへ向かっているという事実までは隠しません。

## 何を頼むか

1. **制限の厳しいネットワーク**（ロシア、イラン、中国など）：TCP 上、ポート 443 の VLESS + REALITY + Vision。
2. **種類の異なる 2 つ目の設定：** Trojan、または WebSocket か gRPC を使った TLS 上の VLESS（CDN の背後に置く方法もあります）。CDN はサーバーの IP アドレスを隠しますが、CDN 自体にあなたの地域から届くこと、そして帯域を絞られていないことが前提になります。
3. **制限のないネットワーク：** 4 つのどれでも構いません。プロバイダーがすでに対応しているものを使ってください。
4. **プロバイダーからサブスクリプションをもらった場合：** 自分で選ぶことはありませんが、リンクを読めば何を受け取ったのかが分かります。[設定リンクの読み方](https://v2rc.app/ja/learn/read-a-config-link/)をご覧ください。
5. **異なるホストの設定を少なくとも 2 つ持っておく。** 1 つが使えなくなったときに必要なのは、別の IP アドレスと、できれば別のプロトコルです。同じサーバーの別の設定では役に立ちません。

## v2rc で読み込めるもの、読み込めないもの

v2rc は、リンク、V2Ray の JSON ファイル、クリップボード、サブスクリプション URL から、VMess、VLESS（REALITY を含む）、Shadowsocks、Trojan を読み込めます。Hysteria 2、TUIC、WireGuard、AmneziaWG、NaiveProxy は読み込めません。最初の 4 つは UDP 上で動作しますが、制限の厳しいネットワークの多くは UDP を破棄します。NaiveProxy は HTTPS 上で動作しますが、専用のクライアントが必要です。これらを使うには別のアプリが必要です。

v2rc にサーバーは付属しません。設定はご自身で用意します。Smart Connect は最速の設定を選び、切り替える前にトンネルが実際に通信できることを確認します。

## 出典

- [REALITY のドキュメント](https://github.com/XTLS/REALITY)と [Xray の設定例](https://github.com/XTLS/Xray-examples)
- [Trojan プロトコルの説明](https://trojan-gfw.github.io/trojan/protocol)
- [Shadowsocks AEAD 仕様](https://shadowsocks.org/doc/aead.html)
- Xue, Kallitsis, Houmansadr, Ensafi：[Fingerprinting Obfuscated Proxy Traffic with Encapsulated TLS Handshakes](https://www.usenix.org/conference/usenixsecurity24/presentation/xue), USENIX Security 2024
- Wu et al.：[How the Great Firewall of China Detects and Blocks Fully Encrypted Traffic](https://gfw.report/publications/usenixsecurity23/en/), USENIX Security 2023
