Как установить панель 3X-UI на VPS
Подробная инструкция: установка панели 3X-UI (Xray) на Ubuntu, защита веб-интерфейса, сертификат TLS, входящий VLESS Reality, пользователи и подключение клиентов на компьютере и телефоне.

3X-UI — веб-панель для Xray-core. Через неё можно создавать входящие (VLESS, VMess, Trojan, Shadowsocks и другие), выдавать ссылки подписки, ставить лимиты трафика и срока действия и смотреть, кто сейчас в сети, без ручного редактирования JSON. Если у вас уже есть VPS, это один из самых быстрых способов получить сопровождение, а не «конфиг на один вечер», который через полгода никто не решится трогать.
Руководство рассчитано на чистый Ubuntu 22.04 или 24.04 — типичный образ Linux после первого включения. Установим распространённую сборку MHSanaei 3X-UI, сразу сменим все заводские секреты, закроем панель HTTPS, откроем в брандмауэре только нужные порты, создадим входящий VLESS + Reality и разберём клиенты. Если вы уже ставили Marzban по нашей статье, идея похожая — панель поверх Xray — но путь установки, каталоги и повседневная работа другие. Не ставьте обе панели на один сервер, пока не умеете развести порты.
Зачем панель, если можно править конфиг Xray руками
Сырой конфиг нормален для одного пользователя и одного входящего. Как только появляются друзья, ротация ключей Reality или ссылка подписки, которую телефон импортирует одним касанием, панель экономит часы. 3X-UI хранит пользователей в локальной базе, корректно перезапускает Xray после изменений и даёт компактную сводку по трафику. Сама по себе она не делает вас «невидимыми»: важны локация VPS, отпечаток TLS, тип входящего и то, как вы сами обращаетесь с ссылками и паролями.
- Веб-интерфейс для входящих, клиентов, трафика и сроков вместо ручного JSON
- Готовые ссылки подписки для v2rayN, v2rayNG, Streisand, Happ и похожих клиентов
- Установка одной командой и понятный путь обновления
- Хватает небольшого VPS (1 vCPU / 1 ГБ ОЗУ для личного использования)
- Root остаётся у вас: панель не отправляет конфиги в чужое облако
Что нужно до начала
Не пропускайте домен и брандмауэр. Панель на HTTP с портом 2053 и паролем по умолчанию боты находят за часы. Подготовьте пункты ниже и подключитесь по SSH как root (или пользователь с sudo).
- Linux VPS с публичным IPv4 (рекомендуется Ubuntu 22.04/24.04)
- Не меньше 1 ГБ ОЗУ и 10 ГБ диска; 2 ГБ удобнее, если на сервере ещё что-то крутится
- Доступ root или sudo по SSH
- Домен или поддомен с A-записью на IP сервера (для нормального сертификата панели)
- 20–30 минут плюс ожидание DNS, если запись только что создали
Шаг 1. Обновите систему и часовой пояс
На новом VPS часто висят обновления безопасности, а часы стоят в UTC. Сначала пакеты, чтобы установщик не спорил со старым OpenSSL или curl. Часовой пояс для самого Xray не критичен, но по логам панели и сроку сертификатов ориентироваться проще.
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl wget ca-certificates gnupg socat tar unzip
timedatectl set-timezone UTC
hostnamectl set-hostname panel
# Проверьте DNS поддомена (должен напечатать IP вашего VPS):
dig +short panel.example.comШаг 2. Установите 3X-UI
Официальный скрипт сборки MHSanaei качает свежий выпуск, ставит Xray-core, создаёт службу systemd и печатает URL первого входа. Внимательно скопируйте случайный путь, логин и пароль в менеджер паролей. Если спросят порт панели, оставьте 2053 или выберите свободный высокий порт — его же потом укажете в брандмауэре.
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# После установки:
x-ui # меню: старт/стоп, сброс, обновление
systemctl status x-ui # служба должна быть active
ss -tulpn | grep x-ui # на каком порту слушает панельШаг 3. Первый вход и сразу усиление защиты
Откройте URL из вывода установщика, обычно http://YOUR_IP:2053/<случайный-путь>. Войдите с выданными данными и откройте настройки панели. Смените логин и пароль на свои уникальные. Если можно сменить базовый путь веб-интерфейса — смените: длинный случайный путь отсекает массу сканеров. При необходимости поменяйте порт. Сохраните, перезапустите панель из интерфейса или через systemctl restart x-ui и войдите уже по новому URL.
Включите двухфакторную проверку, если сборка её предлагает, и выключите шаблоны входящих, которыми не пользуетесь. Ядро Xray лучше оставить тем, что пришло с панелью, пока нет причины фиксировать другую сборку. Не вешайте панель на 80/443, если эти порты потом займёт Reality или обратный прокси — выберите одну схему и придерживайтесь её.
- Сразу замените выданный логин администратора
- Секретный путь в URL оставьте, не переносите панель в корень сайта
- Нестандартный порт панели запишите себе
- Этот пароль нигде больше не используйте
Шаг 4. Сертификат TLS для панели
Браузер ругается на HTTP, а пароль администратора по открытой сети лучше не гонять. 3X-UI умеет запросить сертификат Let's Encrypt, если порт 80 свободен и домен смотрит на этот VPS. В разделе сертификатов укажите panel.example.com и запросите выпуск. Если 80 уже занят, используйте проверку через DNS или поставьте Caddy/Nginx спереди и проксируйте на 127.0.0.1:2053.
# Проверьте, свободен ли порт 80 до ACME-проверки панели:
ss -tulpn | grep ':80'
# Если TLS снимает Caddy, а панель слушает только localhost:
# panel.example.com {
# reverse_proxy 127.0.0.1:2053
# }Шаг 5. Создайте входящий VLESS Reality
В разделе входящих создайте новый. Для многих сетей устойчивый вариант — VLESS, Reality, TCP. Порт не должен совпадать с портом панели: 443, если ничего другого на нём нет, иначе высокий TCP-порт — и тот же номер в брандмауэре. Сгенерируйте UUID первого клиента и пару ключей Reality в интерфейсе. В dest / serverNames укажите легитимную цель, которую вам допустимо имитировать (известный сайт с TLS 1.3). Сохраните входящий и убедитесь, что Xray перезагрузился без ошибок в логах панели.
Дополнительных клиентов добавляйте на тот же входящий: у каждого свой UUID, при желании метка-email и лимит по трафику или времени. Ссылку подключения или URL подписки копируйте из строки пользователя. Не кидайте их в публичные чаты — это тот же пароль.
# Проверьте, что Xray слушает порт входящего (пример: 443):
ss -tulpn | grep -E ':443|:2053'
# Если клиент не коннектится:
journalctl -u x-ui -fШаг 6. Брандмауэр: только нужные порты
На Ubuntu достаточно UFW. Сначала разрешите SSH, чтобы не закрыть себе вход, затем порт панели и порт входящего. Если сертификат панели выпускается через ACME с этого же сервера, на время выпуска нужен 80/tcp. Reality на 443 требует 443/tcp, и панель на этот же порт вешать нельзя.
ufw allow OpenSSH
ufw allow 2053/tcp comment '3x-ui panel (change if you picked another port)'
ufw allow 443/tcp comment 'VLESS Reality inbound'
# ufw allow 80/tcp comment 'only if panel ACME needs it'
ufw enable
ufw status verboseПодключение клиентов
В Windows v2rayN импортирует ссылку VLESS из буфера. На Android то же делает v2rayNG или другой клиент Xray по QR. На iOS нужен клиент с поддержкой VLESS Reality (например Streisand или Happ — смотрите, что доступно у вас). После импорта включите профиль и проверьте список «онлайн» в панели. Если клиент молчит, чаще всего виноваты порт, UDP на TCP-only Reality, несовпадение serverName и dest или локальный брандмауэр ноутбука.
- Windows: v2rayN — импорт ссылки VLESS, маршрутизация глобально или по правилам
- Android: v2rayNG — QR со страницы пользователя в панели
- macOS / iOS: клиент с VLESS + Reality, та же ссылка
- URL подписки: добавьте в клиент, чтобы смена UUID не требовала ручного импорта
Обновления, резервная копия и безопасная переустановка
Перед каждым обновлением панели скачайте резервную копию из интерфейса (база и конфиг) и уберите её с VPS. Обновление обычно через меню x-ui или тем же скриптом установки, если он видит уже поставленную панель. После обновления проверьте, что служба активна и входящие слушают порты. Если переустанавливаете ОС, восстановите копию в панели, а не собирайте UUID заново.
x-ui # пункт обновления, либо:
# bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# Файлы часто лежат в /etc/x-ui/ — скопируйте их на другой хост:
ls -la /etc/x-ui/
# scp -r /etc/x-ui/ you@backup-host:~/x-ui-backup-$(date +%F)/Если что-то не работает
В первый день почти всегда виноваты DNS, порты или поля Reality. Пройдите список ниже, прежде чем переустанавливать панель. Переустановка без копии — способ потерять все UUID клиентов.
- Не открывается веб-интерфейс: systemctl status x-ui, ss -tulpn, UFW. В URL должен быть секретный путь.
- Забыли пароль администратора: на сервере x-ui и пункт сброса.
- Клиент цепляется и зависает: закрыт порт входящего или включён UDP на TCP Reality.
- Ошибки TLS панели: A-запись ещё не смотрит сюда или порт 80 занят во время ACME.
- Не проходит рукопожатие Reality: dest/serverNames не совпадают или 443 уже занят другой службой.
- Высокая нагрузка на CPU: слишком много входящих на 1 vCPU или сканирование открытого порта.
Защита, которая реально важна
Панель — это админка: из неё выдают пользователей и читают UUID. Ограничьте, кто достучится до веб-порта: если IP офиса постоянный, в UFW для 2053/tcp оставьте только его. SSH — по ключам, не по паролю. Не крутите посторонние публичные сайты на том же IP, если Reality сидит на 443: два стека TLS на одном порту — классика внезапных падений. Смените пароль администратора, если скрин панели когда-либо утёк в чат.
- Только SSH-ключи; парольный вход отключите, когда ключи проверены
- Порт панели в брандмауэре сузьте, если можете
- Каталог /etc/x-ui регулярно копируйте с сервера
- Ссылки подписки не публикуйте в открытых группах
- Следите за диском: логи и статистика трафика растут
Практические советы
- Один входящий на много клиентов проще, чем десять почти одинаковых
- Называйте клиентов по устройствам (ноутбук-анна, телефон-бен), иначе графики бессмысленны
- Сайт с обратным прокси лучше на другой IP или порт — не спорьте с Reality за 443
- После любого перезапуска x-ui проверьте один клиент, пока SSH ещё открыт
- Перед обновлением читайте список изменений, не прыгайте на «latest» в пятницу вечером
В итоге 3X-UI стоит как служба systemd, админский URL закрыт, у панели есть TLS, входящий VLESS Reality создан, брандмауэр совпадает с портами, резервная копия лежит не только на этом VPS. Клиентов добавляйте на странице входящего, импортируйте ссылку на каждом устройстве, панель обновляйте только после копии. Если всё сломалось, путь восстановления — меню x-ui на сервере, а не полная переустановка.