技術 約4分で読めます

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
serverNamesSNI に使用するドメイン
privateKey / publicKeyREALITY 用の鍵ペア(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

アプリ特徴
v2rayNWindows/macOS/Linux 対応、Xray コア推奨
Hiddifyマルチプラットフォーム、無料、オープンソース
NekoRayQt ベースの GUI クライアント
ClashX MetamacOS 向け、Clash Meta コア

v2rayN は Xray コアを選択すれば VLESS + REALITY に対応する。

Android

アプリ特徴
v2rayNGv2rayN の Android 版
Hiddify推奨。無料、広告なし
NekoBoxGitHub から APK を取得

iOS

アプリ特徴
Shadowrocket有料(約 $3)、最も多機能
FoXray無料、Xray ベース
Stash有料、Clash 互換

接続方法

クライアントアプリに以下のいずれかで設定を追加:

  1. URI スキーム: vless://uuid@server:443?... 形式の URL をコピペ
  2. サブスクリプション: 3X-UI などのパネルで URL を発行し、クライアントでインポート
  3. QR コード: パネルで生成した QR コードをスキャン
  4. 手動設定: サーバーアドレス、ポート、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 アプリを作る場合:

  1. Xray-core または sing-box を FFI 経由で呼び出す
  2. VPNclient Engine - Swift(iOS)/ Kotlin(Android)+ Go/C++ のエンジン
  3. LibXray - Xray-core の C 言語バインディング

既存のオープンソースクライアント(v2rayNG、Hiddify など)をフォークして改造するのが現実的。

Hysteria2 との比較

項目VLESS + REALITYHysteria2
ベースプロトコルTCP(TLS 1.3)UDP(QUIC)
偽装方式実在サイトの証明書借用QUIC 偽装
速度高速非常に高速
ドメイン不要不要
設定難易度やや高い中程度
互換性組み合わせ不可組み合わせ不可

どちらを選ぶかは環境次第。UDP がブロックされている環境では REALITY、速度重視なら Hysteria2。

関連記事

参考