mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-09 07:25:02 +03:00
158 lines
9.0 KiB
Plaintext
158 lines
9.0 KiB
Plaintext
---
|
||
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 v26.9.8+ пустое поле
|
||
**Мин. версия клиента** не задаёт нижнюю границу. Явно сохранённое ограничение
|
||
продолжает действовать. Более ранние сборки могут использовать встроенный
|
||
минимум (например, `26.3.27`) и отклонять сторонние клиенты с правильными ключами.
|
||
Проверьте версию работающего ядра: снижение ограничения допускает старые отпечатки.
|
||
- **Mihomo и ML-KEM.** Xray-core v26.9.8+ отдельно требует ключ
|
||
`X25519MLKEM768` перед необязательным `X25519`. YAML-подписка Clash/Mihomo
|
||
включает `reality-opts.support-x25519mlkem768` для REALITY, в том числе внешних
|
||
ссылок, и выбирает `chrome`, если отпечаток не задан. Явный выбор сохраняется:
|
||
нужен отпечаток с ML-KEM (`chrome` при uTLS v1.8.7 в Mihomo). Сам флаг не
|
||
обновляет старые отпечатки. Исходные ссылки `vless://` не передают эту настройку
|
||
Mihomo; при прямом импорте нужно постоянное переопределение в клиенте. Для очень
|
||
старых серверов REALITY, отвергающих ML-KEM, задайте `false` для соответствующего
|
||
узла в клиенте или обновите сервер. Снятие ограничения версии не исправляет
|
||
это рукопожатие.
|
||
|
||
</Callout>
|
||
|
||
## Сгенерируйте конфигурацию
|
||
|
||
Используйте генератор ниже, чтобы создать новую пару ключей X25519, UUID и short
|
||
ID, а затем скопируйте JSON входящего подключения сервера и клиентскую ссылку для
|
||
подключения. Все вычисления выполняются **в вашем браузере** — никакие ключи и
|
||
ссылки никуда не отправляются.
|
||
|
||
<RealityConfigGenerator />
|
||
|
||
<Callout type="info">
|
||
**Приватный ключ** должен оставаться только на вашем сервере. Делитесь с
|
||
клиентами сгенерированной ссылкой `vless://` (которая содержит **публичный**
|
||
ключ).
|
||
</Callout>
|