reality.mdx 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. - **Старые ядра клиентов отклоняются по умолчанию.** Пустое поле
  98. **Мин. версия клиента** не означает «без ограничений»: Xray-core использует
  99. встроенный минимум используемой сборки ядра (26.3.27 в текущих релизах),
  100. который поддерживает свежесть
  101. TLS-отпечатков клиентов, поэтому сторонние ядра, такие как Mihomo и sing-box,
  102. не проходят проверку REALITY даже при корректной конфигурации — клиенты видят
  103. таймауты, а подключаются только приложения на базе Xray-core. Ставьте `1.0.0`,
  104. только если они вам необходимы; это также допустит устаревшие отпечатки.
  105. </Callout>
  106. ## Сгенерируйте конфигурацию
  107. Используйте генератор ниже, чтобы создать новую пару ключей X25519, UUID и short
  108. ID, а затем скопируйте JSON входящего подключения сервера и клиентскую ссылку для
  109. подключения. Все вычисления выполняются **в вашем браузере** — никакие ключи и
  110. ссылки никуда не отправляются.
  111. <RealityConfigGenerator />
  112. <Callout type="info">
  113. **Приватный ключ** должен оставаться только на вашем сервере. Делитесь с
  114. клиентами сгенерированной ссылкой `vless://` (которая содержит **публичный**
  115. ключ).
  116. </Callout>