Files
3x-ui/docs/content/docs/ru/config/reality.mdx
T
Aleksey 41bafb3fd5 feat(sub): make the host "Mihomo X25519" switch drop ML-KEM (#6803)
The per-host Mihomo X25519 switch has been stored since managed hosts landed,
but no renderer read it, while every REALITY proxy was forced to
support-x25519mlkem768: true. On some networks DPI drops the second segment of
an ML-KEM ClientHello and blackholes the server for that client. A host with the
switch on now gets support-x25519mlkem768: false and no ML-KEM hint in its vless
link; switches saved while they had no effect are cleared once, so upgrading
does not silently change existing subscriptions.

A REALITY host's fingerprint now reaches the Clash and JSON outputs, and every
host endpoint gets its own deep copy of the stream, so one host's blank SNI,
fingerprint, Host header or path no longer inherits another host's value.
2026-10-24 06:01:48 +02:00

161 lines
9.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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://` передают эквивалентную
подсказку `support-x25519mlkem768=true`; клиенты, поддерживающие это расширение
URI, включая актуальные сборки Mihomo, применяют её при импорте. Серверы на
Xray-core ниже 26.9.8 принимают обычный `X25519`, а очень старые отвергают
ML-KEM. Для них, а также если сеть отбрасывает крупный ClientHello с ML-KEM,
включите **Mihomo X25519** в хосте: его прокси в Clash получит
`support-x25519mlkem768: false`, а ссылка `vless://` — без подсказки. Снятие
ограничения версии не исправляет это рукопожатие.
</Callout>
## Сгенерируйте конфигурацию
Используйте генератор ниже, чтобы создать новую пару ключей X25519, UUID и short
ID, а затем скопируйте JSON входящего подключения сервера и клиентскую ссылку для
подключения. Все вычисления выполняются **в вашем браузере** — никакие ключи и
ссылки никуда не отправляются.
<RealityConfigGenerator />
<Callout type="info">
**Приватный ключ** должен оставаться только на вашем сервере. Делитесь с
клиентами сгенерированной ссылкой `vless://` (которая содержит **публичный**
ключ).
</Callout>