| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- ---
- title: REALITY
- description: Настройка входящего подключения VLESS + REALITY с XTLS-Vision в 3x-ui — ключи, short ID, SNI, отпечатки и типичные ошибки.
- icon: ShieldCheck
- ---
- **REALITY** — это механизм безопасности транспорта Xray, маскирующий ваш прокси
- под обычный трафик к реальному популярному сайту. В отличие от классического TLS,
- вашему серверу **не нужен собственный сертификат** — он заимствует TLS-рукопожатие
- целевого сайта (`dest`). В сочетании с потоком **XTLS-Vision** это работает быстро
- и устойчиво к глубокому анализу пакетов.
- REALITY используется с **VLESS** (а также Trojan). Рекомендуемый поток —
- `xtls-rprx-vision`.
- ## Ключевые настройки
- Когда вы выбираете **REALITY** в качестве режима безопасности для входящего
- подключения VLESS, 3x-ui отображает следующие поля:
- | Поле | Что это такое |
- | ------------------------ | ------------------------------------------------------------------ |
- | **Dest (цель)** | Реальный TLS-сайт для имитации, например `www.microsoft.com:443`. |
- | **SNI / Server Names** | Имя(имена) хоста, которые отправляют клиенты; должны совпадать с сертификатом цели. |
- | **Public / Private key** | Пара ключей **x25519**. Приватный ключ остаётся на сервере. |
- | **Short IDs** | Шестнадцатеричные строки для аутентификации клиентов (их может быть несколько). |
- | **Flow** | Установите в `xtls-rprx-vision`. |
- | **Fingerprint (uTLS)** | TLS-отпечаток клиента для имитации, например `chrome`. |
- Приватный ключ генерируется утилитой `x25519` из состава Xray (панель может
- сгенерировать пару за вас):
- ```bash title="generate an x25519 keypair"
- xray x25519
- ```
- ## Настройка в панели
- <Steps>
- <Step>
- ### Создайте входящее подключение VLESS
- Добавьте новое входящее подключение, выберите протокол **VLESS** и установите
- **Security** в **reality**.
- </Step>
- <Step>
- ### Выберите цель (dest) и SNI
- Выберите авторитетный сайт, поддерживающий TLS 1.3 и HTTP/2 и доступный как с
- вашего сервера, так и с устройств клиентов (например `www.microsoft.com:443`).
- Задайте server names / SNI так, чтобы они совпадали с сертификатом этого сайта.
- </Step>
- <Step>
- ### Сгенерируйте ключи и short ID
- Сгенерируйте пару ключей x25519 и один или несколько short ID. Держите
- **приватный ключ** в секрете; клиенты получают только **публичный ключ**.
- </Step>
- <Step>
- ### Задайте поток и отпечаток
- Используйте поток `xtls-rprx-vision` и распространённый отпечаток uTLS, например
- `chrome`.
- </Step>
- <Step>
- ### Добавьте клиента и поделитесь ссылкой
- Создайте клиента, затем используйте его ссылку для подключения или QR-код в
- совместимом приложении (v2rayNG, Hiddify, Mihomo и других).
- </Step>
- </Steps>
- ## Как выглядит конфигурация
- На сервере секция `streamSettings` входящего подключения REALITY выглядит
- примерно так:
- ```json title="server inbound (excerpt)"
- {
- "network": "tcp",
- "security": "reality",
- "realitySettings": {
- "dest": "www.microsoft.com:443",
- "serverNames": ["www.microsoft.com"],
- "privateKey": "<x25519 private key>",
- "shortIds": ["<hex short id>"],
- "fingerprint": "chrome"
- }
- }
- ```
- Соответствующая клиентская ссылка для подключения содержит **публичные**
- параметры:
- ```text title="vless:// (excerpt)"
- vless://<uuid>@<server>:443?security=reality&pbk=<public-key>&sid=<short-id>&sni=www.microsoft.com&fp=chrome&spx=%2F&flow=xtls-rprx-vision#my-reality
- ```
- - `pbk` — **публичный** ключ REALITY
- - `sid` — short ID (совпадает с одним из заданных на сервере)
- - `sni` — server name (совпадает с сертификатом цели)
- - `fp` — отпечаток клиента
- - `spx` — путь spiderX
- - `flow` — `xtls-rprx-vision`
- ## Типичные ошибки
- <Callout type="warn">
- - **Неподходящая цель.** Значение `dest` должно указывать на реальный сайт,
- который поддерживает **TLS 1.3** и **HTTP/2**, доступен и не заблокирован в
- вашем регионе. Выбирайте сайт, который вам не принадлежит и на который идёт
- большой трафик.
- - **Несовпадение SNI.** Значения SNI / server names должны совпадать с реальным
- сертификатом цели, иначе рукопожатие выдаст маскировку.
- - **Утечка приватного ключа.** Клиентам всегда передавайте только **публичный**
- ключ.
- - **Неправильный поток.** Для REALITY + XTLS-Vision нужен `flow = xtls-rprx-vision`
- как в записи клиента входящего подключения, так и в ссылке для подключения.
- - **Старые ядра клиентов отклоняются по умолчанию.** Пустое поле
- **Мин. версия клиента** не означает «без ограничений»: Xray-core использует
- встроенный минимум используемой сборки ядра (26.3.27 в текущих релизах),
- который поддерживает свежесть
- TLS-отпечатков клиентов, поэтому сторонние ядра, такие как Mihomo и sing-box,
- не проходят проверку REALITY даже при корректной конфигурации — клиенты видят
- таймауты, а подключаются только приложения на базе Xray-core. Ставьте `1.0.0`,
- только если они вам необходимы; это также допустит устаревшие отпечатки.
- </Callout>
- ## Сгенерируйте конфигурацию
- Используйте генератор ниже, чтобы создать новую пару ключей X25519, UUID и short
- ID, а затем скопируйте JSON входящего подключения сервера и клиентскую ссылку для
- подключения. Все вычисления выполняются **в вашем браузере** — никакие ключи и
- ссылки никуда не отправляются.
- <RealityConfigGenerator />
- <Callout type="info">
- **Приватный ключ** должен оставаться только на вашем сервере. Делитесь с
- клиентами сгенерированной ссылкой `vless://` (которая содержит **публичный**
- ключ).
- </Callout>
|