VLESS + REALITY サーバー構築とクライアント接続の概要
VPN比較記事で「最強候補」として挙げた VLESS + REALITY について、実際に構築・接続するための概要をまとめた。詳細な手順ではなく、全体像と関連リソースの紹介がメイン。
VLESS + REALITY とは
V2Ray のフォーク「Xray」が開発したプロトコル。実在する HTTPS サイトの TLS 証明書を「借りて」通信する。
従来の TLS 偽装の問題:
- 自己署名証明書や Let’s Encrypt の証明書は「本物っぽいけど怪しい」とバレやすい
- ドメインと証明書の取得・管理が必要
REALITY の解決策:
- 実在サイト(例: microsoft.com、cloudflare.com)の TLS 証明書を使う
- GFW から見ると「普通に microsoft.com にアクセスしてる人」に見える
- 自分でドメインや証明書を用意する必要がない
注意: REALITY と Hysteria2 は互換性がない。組み合わせて使うことはできない。
サーバー構築の概要
必要なもの
- VPS(Linux)
- ポート開放: TCP/443(他のポートも可)
- ドメイン不要(REALITY の大きな利点)
インストール方法
3X-UI(推奨):
Web UI で管理できるパネル。ユーザー追加やトラフィック監視が楽。
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
インストール後、Web UI にアクセスして VLESS + REALITY の inbound を追加する。
Xray-core 直接インストール:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
設定ファイルは手動で作成が必要。
設定の要点
REALITY を設定する際に必要なパラメータ:
| パラメータ | 説明 |
|---|---|
dest | 偽装先サイト(例: www.microsoft.com:443) |
serverNames | SNI に使用するドメイン |
privateKey / publicKey | REALITY 用の鍵ペア(xray x25519 で生成) |
shortIds | クライアント認証用の ID |
偽装先サイトの選び方:
- TLS 1.3 と HTTP/2 をサポートしていること
- 中国からブロックされていないこと
- 例: microsoft.com、cloudflare.com、www.lovelive-anime.jp など
管理パネル
| パネル | 特徴 |
|---|---|
| 3X-UI | 推奨。多機能、日本語対応 |
| X-UI | シンプル(開発停滞気味) |
| Marzban | マルチノード対応 |
クライアントアプリ
既存のクライアントアプリを使うのが手軽。
Windows / macOS / Linux
| アプリ | 特徴 |
|---|---|
| v2rayN | Windows/macOS/Linux 対応、Xray コア推奨 |
| Hiddify | マルチプラットフォーム、無料、オープンソース |
| NekoRay | Qt ベースの GUI クライアント |
| ClashX Meta | macOS 向け、Clash Meta コア |
v2rayN は Xray コアを選択すれば VLESS + REALITY に対応する。
Android
| アプリ | 特徴 |
|---|---|
| v2rayNG | v2rayN の Android 版 |
| Hiddify | 推奨。無料、広告なし |
| NekoBox | GitHub から APK を取得 |
iOS
| アプリ | 特徴 |
|---|---|
| Shadowrocket | 有料(約 $3)、最も多機能 |
| FoXray | 無料、Xray ベース |
| Stash | 有料、Clash 互換 |
接続方法
クライアントアプリに以下のいずれかで設定を追加:
- URI スキーム:
vless://uuid@server:443?...形式の URL をコピペ - サブスクリプション: 3X-UI などのパネルで URL を発行し、クライアントでインポート
- QR コード: パネルで生成した QR コードをスキャン
- 手動設定: サーバーアドレス、ポート、UUID、公開鍵などを入力
カスタムアプリ開発
自前でアプリを作りたい場合のライブラリ・SDK。
Go 言語
XTLS/Xray-core - 公式実装。VLESS + REALITY のリファレンス。
go get github.com/xtls/xray-core
sing-box(マルチプロトコル)
sing-box - REALITY を含む多数のプロトコルに対応した Go ライブラリ。
- Hysteria2、Trojan、Shadowsocks なども同時にサポート
- Go 1.21 以上が必要
- Hiddify や NekoBox の内部で使われている
複数プロトコルを扱うアプリを作るならこちら。
モバイルアプリ開発
iOS / Android 向けに VPN アプリを作る場合:
- Xray-core または sing-box を FFI 経由で呼び出す
- VPNclient Engine - Swift(iOS)/ Kotlin(Android)+ Go/C++ のエンジン
- LibXray - Xray-core の C 言語バインディング
既存のオープンソースクライアント(v2rayNG、Hiddify など)をフォークして改造するのが現実的。
Hysteria2 との比較
| 項目 | VLESS + REALITY | Hysteria2 |
|---|---|---|
| ベースプロトコル | TCP(TLS 1.3) | UDP(QUIC) |
| 偽装方式 | 実在サイトの証明書借用 | QUIC 偽装 |
| 速度 | 高速 | 非常に高速 |
| ドメイン | 不要 | 不要 |
| 設定難易度 | やや高い | 中程度 |
| 互換性 | 組み合わせ不可 | 組み合わせ不可 |
どちらを選ぶかは環境次第。UDP がブロックされている環境では REALITY、速度重視なら Hysteria2。