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

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 клиенты вынесены в отдельный раздел, один клиент может пользоваться несколькими подключениями.
- Клиенты → Добавить клиентов.
- Email — имя латиницей, например
phone. Почта не нужна, это просто метка. - Внизу формы в Привязанные входящие нажмите Выбрать всё → Создать.
- Теперь включите 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и uTLSfirefox. - Порт 443 занят.
ss -lntp | grep ':443 'покажет, кто. Обычно nginx или другой VPN.
Если нужен запасной транспорт на случай блокировки Reality — VLESS + TLS + XHTTP в 3X-UI.