reality.mdx 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. ---
  2. title: REALITY
  3. description: Настройка входящего подключения VLESS + REALITY с XTLS-Vision в 3x-ui — ключи, short ID, SNI, отпечатки и типичные ошибки.
  4. icon: ShieldCheck
  5. ---
  6. **REALITY** — это механизм безопасности транспорта Xray, маскирующий ваш прокси
  7. под обычный трафик к реальному популярному сайту. В отличие от классического TLS,
  8. вашему серверу **не нужен собственный сертификат** — он заимствует TLS-рукопожатие
  9. целевого сайта (`dest`). В сочетании с потоком **XTLS-Vision** это работает быстро
  10. и устойчиво к глубокому анализу пакетов.
  11. REALITY используется с **VLESS** (а также Trojan). Рекомендуемый поток —
  12. `xtls-rprx-vision`.
  13. ## Ключевые настройки
  14. Когда вы выбираете **REALITY** в качестве режима безопасности для входящего
  15. подключения VLESS, 3x-ui отображает следующие поля:
  16. | Поле | Что это такое |
  17. | ------------------------ | ------------------------------------------------------------------ |
  18. | **Dest (цель)** | Реальный TLS-сайт для имитации, например `www.microsoft.com:443`. |
  19. | **SNI / Server Names** | Имя(имена) хоста, которые отправляют клиенты; должны совпадать с сертификатом цели. |
  20. | **Public / Private key** | Пара ключей **x25519**. Приватный ключ остаётся на сервере. |
  21. | **Short IDs** | Шестнадцатеричные строки для аутентификации клиентов (их может быть несколько). |
  22. | **Flow** | Установите в `xtls-rprx-vision`. |
  23. | **Fingerprint (uTLS)** | TLS-отпечаток клиента для имитации, например `chrome`. |
  24. Приватный ключ генерируется утилитой `x25519` из состава Xray (панель может
  25. сгенерировать пару за вас):
  26. ```bash title="generate an x25519 keypair"
  27. xray x25519
  28. ```
  29. ## Настройка в панели
  30. <Steps>
  31. <Step>
  32. ### Создайте входящее подключение VLESS
  33. Добавьте новое входящее подключение, выберите протокол **VLESS** и установите
  34. **Security** в **reality**.
  35. </Step>
  36. <Step>
  37. ### Выберите цель (dest) и SNI
  38. Выберите авторитетный сайт, поддерживающий TLS 1.3 и HTTP/2 и доступный как с
  39. вашего сервера, так и с устройств клиентов (например `www.microsoft.com:443`).
  40. Задайте server names / SNI так, чтобы они совпадали с сертификатом этого сайта.
  41. </Step>
  42. <Step>
  43. ### Сгенерируйте ключи и short ID
  44. Сгенерируйте пару ключей x25519 и один или несколько short ID. Держите
  45. **приватный ключ** в секрете; клиенты получают только **публичный ключ**.
  46. </Step>
  47. <Step>
  48. ### Задайте поток и отпечаток
  49. Используйте поток `xtls-rprx-vision` и распространённый отпечаток uTLS, например
  50. `chrome`.
  51. </Step>
  52. <Step>
  53. ### Добавьте клиента и поделитесь ссылкой
  54. Создайте клиента, затем используйте его ссылку для подключения или QR-код в
  55. совместимом приложении (v2rayNG, Hiddify, Mihomo и других).
  56. </Step>
  57. </Steps>
  58. ## Как выглядит конфигурация
  59. На сервере секция `streamSettings` входящего подключения REALITY выглядит
  60. примерно так:
  61. ```json title="server inbound (excerpt)"
  62. {
  63. "network": "tcp",
  64. "security": "reality",
  65. "realitySettings": {
  66. "dest": "www.microsoft.com:443",
  67. "serverNames": ["www.microsoft.com"],
  68. "privateKey": "<x25519 private key>",
  69. "shortIds": ["<hex short id>"],
  70. "fingerprint": "chrome"
  71. }
  72. }
  73. ```
  74. Соответствующая клиентская ссылка для подключения содержит **публичные**
  75. параметры:
  76. ```text title="vless:// (excerpt)"
  77. 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
  78. ```
  79. - `pbk` — **публичный** ключ REALITY
  80. - `sid` — short ID (совпадает с одним из заданных на сервере)
  81. - `sni` — server name (совпадает с сертификатом цели)
  82. - `fp` — отпечаток клиента
  83. - `spx` — путь spiderX
  84. - `flow` — `xtls-rprx-vision`
  85. ## Типичные ошибки
  86. <Callout type="warn">
  87. - **Неподходящая цель.** Значение `dest` должно указывать на реальный сайт,
  88. который поддерживает **TLS 1.3** и **HTTP/2**, доступен и не заблокирован в
  89. вашем регионе. Выбирайте сайт, который вам не принадлежит и на который идёт
  90. большой трафик.
  91. - **Несовпадение SNI.** Значения SNI / server names должны совпадать с реальным
  92. сертификатом цели, иначе рукопожатие выдаст маскировку.
  93. - **Утечка приватного ключа.** Клиентам всегда передавайте только **публичный**
  94. ключ.
  95. - **Неправильный поток.** Для REALITY + XTLS-Vision нужен `flow = xtls-rprx-vision`
  96. как в записи клиента входящего подключения, так и в ссылке для подключения.
  97. - **Ограничения версии клиента.** В Xray-core v26.9.8+ пустое поле
  98. **Мин. версия клиента** не задаёт нижнюю границу. Явно сохранённое ограничение
  99. продолжает действовать. Более ранние сборки могут использовать встроенный
  100. минимум (например, `26.3.27`) и отклонять сторонние клиенты с правильными ключами.
  101. Проверьте версию работающего ядра: снижение ограничения допускает старые отпечатки.
  102. - **Mihomo и ML-KEM.** Xray-core v26.9.8+ отдельно требует ключ
  103. `X25519MLKEM768` перед необязательным `X25519`. YAML-подписка Clash/Mihomo
  104. включает `reality-opts.support-x25519mlkem768` для REALITY, в том числе внешних
  105. ссылок, и выбирает `chrome`, если отпечаток не задан. Явный выбор сохраняется:
  106. нужен отпечаток с ML-KEM (`chrome` при uTLS v1.8.7 в Mihomo). Сам флаг не
  107. обновляет старые отпечатки. Исходные ссылки `vless://` не передают эту настройку
  108. Mihomo; при прямом импорте нужно постоянное переопределение в клиенте. Для очень
  109. старых серверов REALITY, отвергающих ML-KEM, задайте `false` для соответствующего
  110. узла в клиенте или обновите сервер. Снятие ограничения версии не исправляет
  111. это рукопожатие.
  112. </Callout>
  113. ## Сгенерируйте конфигурацию
  114. Используйте генератор ниже, чтобы создать новую пару ключей X25519, UUID и short
  115. ID, а затем скопируйте JSON входящего подключения сервера и клиентскую ссылку для
  116. подключения. Все вычисления выполняются **в вашем браузере** — никакие ключи и
  117. ссылки никуда не отправляются.
  118. <RealityConfigGenerator />
  119. <Callout type="info">
  120. **Приватный ключ** должен оставаться только на вашем сервере. Делитесь с
  121. клиентами сгенерированной ссылкой `vless://` (которая содержит **публичный**
  122. ключ).
  123. </Callout>