3X-UI: установка панели и VLESS Reality с XTLS Vision

Ставим 3X-UI на VPS, создаём подключение VLESS Reality на порту 443, добавляем клиента с потоком xtls-rprx-vision и подключаем телефон. Debian 12 и Ubuntu 24.04.

12 октября 2026 г.·6 мин чтения·3x-ui, xray, vless, reality

3X-UI — бесплатная веб-панель для ядра Xray. В ней через браузер создаются подключения, добавляются клиенты, выставляются лимиты трафика и выдаются QR-коды. Ниже — установка панели, подключение VLESS Reality с потоком XTLS Vision и первое устройство. Проверено на Debian 12 с 3X-UI 3.10.x.

Как работает VLESS Reality

Когда приложение подключается к серверу, провайдер видит начало обычного TLS-соединения, как при открытии любого сайта. В первом пакете клиент открыто называет имя сайта — SNI. Reality ставит туда имя настоящего чужого сайта, а Xray на сервере работает развилкой: клиент с публичным ключом и Short ID особым образом помечает приветствие и попадает в туннель, все остальные прозрачно пересылаются на настоящий сайт (цель, target) и видят его подлинный сертификат. «Зайти и посмотреть» на такой сервер ничего не даёт.

Внутри соединения работает VLESS без повторного шифрования. Поток XTLS Vision выравнивает первые пакеты, чтобы «TLS внутри TLS» не давал узнаваемый рисунок, и после рукопожатия перестаёт шифровать уже зашифрованное — заодно снижая нагрузку на сервер. Последний элемент — отпечаток TLS (uTLS): приложение притворяется конкретным браузером. Для серверов, к которым подключаются из России, ставьте firefox, почему — ниже.

Что нужно

  • Сервер на tanaka.host с Debian 12 или Ubuntu 24.04, 1 ГБ памяти достаточно (панель после установки занимает около 450 МБ).
  • Доступ под root по SSH.
  • Свободные порты 443 и 80: на 443 будет VPN, через 80 Let’s Encrypt проверяет сервер при выпуске сертификата для панели.

1. Установите панель

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Установщик задаёт вопросы:

Вопрос Ответ
Database Selection Enter — SQLite. PostgreSQL нужен только при сотнях пользователей
Would you like to customize the Panel Port settings? n — панель получит случайный порт, сканерам его найти сложнее
Choose SSL certificate setup method 2 — сертификат Let’s Encrypt прямо на IP-адрес, домен не нужен
Is … the correct incoming public IPv4 address проверьте IP и Enter
Do you have an IPv6 address to include? / Port to use for ACME HTTP-01 listener Enter оба раза

Через пару минут установщик выпустит сертификат, запустит панель и покажет меню x-ui.

2. Сохраните данные для входа

Перед меню выводится блок Panel Installation Complete!: Username, Password, Port, WebBasePath и готовый Access URL. Сохраните в менеджер паролей. Если терминал уже закрыт:

cat /etc/x-ui/install-result.env
x-ui settings

Адрес панели — тоже пароль. Без секретного пути панель отвечает 404 даже тому, кто знает логин и пароль. Не публикуйте адрес целиком.

3. Войдите в панель

Откройте Access URL — он начинается с https://, сертификат настоящий. Слева три нужных раздела: Входящие (подключения — порты и протоколы), Клиенты (пользователи с ключами и лимитами) и Настройки панели.

4. Создайте подключение VLESS Reality

Входящие → Создать подключение. На вкладке Основное:

  • Примечание — любое имя, например VLESS Reality.
  • Протокол — vless.
  • Порт — 443.

Вкладки Протокол и Поток не трогайте, в Транспорт уже стоит RAW (так теперь называется обычный TCP). На вкладке Безопасность нажмите Reality:

  • uTLS — firefox.
  • Найти цели → введите сайт для маскировки, например www.computerbase.de → Сканировать. Если статус Подходит — Выбрать.
  • В поле SNI должно остаться одно имя, совпадающее с сайтом. Лишние удалите крестиком.

Ключи, Short IDs и SpiderX панель сгенерировала сама. Нажмите Создать.

Почему в SNI одно имя. У крупных сайтов в сертификате десятки имён, и панель перенесёт их все. Тогда каждая выдача подписки получает случайное имя из списка, устройства ходят на один сервер под разными именами, и маскировка выглядит неправдоподобно.

5. Добавьте клиента

В 3X-UI 3.x клиенты вынесены в отдельный раздел, один клиент может пользоваться несколькими подключениями.

  1. Клиенты → Добавить клиентов.
  2. Email — имя латиницей, например phone. Почта не нужна, это просто метка.
  3. Внизу формы в Привязанные входящие нажмите Выбрать всё → Создать.
  4. Теперь включите Vision: в строке клиента значок карандаша → вкладка Учетные данные → Flow = xtls-rprx-vision → Сохранить.

Поле Flow есть только при редактировании, потому что поток зависит от подключения, к которому клиент уже привязан.

6. Подключите устройство

В строке клиента нажмите значок QR-кода. В блоке Информация о подписке — QR ссылки на подписку, рядом кнопка копирования. Установите клиент на ядре Xray (Incy, Happ, v2rayN, v2rayNG), добавьте подписку из буфера или по QR и включите.

Подписка лучше прямой ссылки: приложение само забирает свежие настройки, и после смены сайта или ключей достаточно обновить подписку. Проверка — api.ipify.org должен показывать IP сервера, а у клиента в панели появится зелёная метка В сети.

Как выбрать сайт для маскировки

Технически сайт должен работать по TLS 1.3 и HTTP/2 и поддерживать X25519MLKEM768 — именно это проверяет сканер в панели. Но важно и правдоподобие: фильтр видит SNI и IP одновременно. www.samsung.com, уходящий на адрес хостинга в Германии, выглядит неестественно, а небольшой европейский сайт на обычном хостинге — нормально. Сайты за Cloudflare и другими CDN не подходят по той же причине. Рабочие примеры: www.computerbase.de, www.reichelt.de, wiki.ubuntuusers.de, mailbox.org. Проверка на CDN с сервера:

curl -sI https://www.computerbase.de | grep -i '^server'

server: nginx — сайт на своём сервере. Самый надёжный вариант — маскировка под собственный домен, см. self-steal для VLESS Reality.

Ограничения для клиентов

Задаются в форме клиента на вкладке Основные, ноль — без ограничений:

Поле Что ограничивает
Лимит трафика (ГБ) После исчерпания клиент отключается
Лимит IP Сколько адресов одновременно, работает через встроенный Fail2ban
Лимит HWID Сколько устройств могут получать подписку
Срок действия Дата отключения; «Старт после первого использования» — отсчёт с первого подключения
Сброс трафика Как часто обнулять счётчик

Защита панели

  • Настройки панели → Учетная запись → Двухфакторная аутентификация → включите 2FA.
  • Не меняйте случайный порт и путь на простые вроде 2053 или /panel — их перебирают первыми.
  • Если включён UFW, откройте порты (вместо 54584 — порт вашей панели; 2096 используется для подписок):
ufw allow 443/tcp
ufw allow 80/tcp
ufw allow 54584/tcp
ufw allow 2096/tcp

Остальное — в статьях про брандмауэр и fail2ban.

Обновление и резервная копия

x-ui update

Перед обновлением сделайте бэкап: Дашборд → Бэкап и восстановление → Экспорт базы данных. Файл .db содержит всех клиентов и подключения, его же можно импортировать на новом сервере. Остальное — в меню x-ui: сброс логина, смена порта, сертификат, журналы.

Частые ошибки

  • Забыли логин или пароль. cat /etc/x-ui/install-result.env; если меняли — x-ui → 7. Reset Username & Password.
  • Панель не открывается. Адрес полностью с портом и путём, обязательно https://, порт открыт в брандмауэре, x-ui status показывает, что панель запущена.
  • Сертификат недействителен. Сертификат на IP выдаётся на 6 дней и продлевается через порт 80. Если порт закрыт или занят веб-сервером — освободите и перевыпустите через x-ui → 20. SSL Certificate Management.
  • Подключается, но сайты не открываются. Обновите подписку и приложение (новые Xray требуют ML-KEM), проверьте Flow xtls-rprx-vision и uTLS firefox.
  • Порт 443 занят. ss -lntp | grep ':443 ' покажет, кто. Обычно nginx или другой VPN.

Если нужен запасной транспорт на случай блокировки Reality — VLESS + TLS + XHTTP в 3X-UI.