Як встановити панель 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-образ Hiddence після першого завантаження. Встановимо поширену збірку MHSanaei 3X-UI, одразу змінимо всі заводські секрети, закриємо панель HTTPS, відкриємо в брандмауері лише потрібні порти, створимо вхідний VLESS + Reality і розберемо клієнтські програми. Якщо ви вже ставили Marzban за нашою статтею, ідея схожа — панель поверх Xray — але шлях встановлення, розміщення файлів і щоденна робота інші. Не ставте обидві панелі на один сервер, доки не вмієте розвести порти.
Навіщо 3X-UI замість сирого конфігу Xray
Сирий конфіг Xray нормальний для одного користувача й одного вхідного. Щойно з’являються друзі, ротація ключів Reality або URL підписки, який телефон імпортує одним дотиком, панель заощаджує години. 3X-UI зберігає користувачів у локальній базі, коректно перезапускає Xray після змін і дає компактну панель трафіку та статусу онлайн. Сама по собі вона не робить вас «невидимими»: важливі локація VPS, відбиток TLS, тип вхідного та те, як ви самі поводитеся з посиланнями й паролями.
- Вебінтерфейс для вхідних, клієнтів, трафіку й термінів замість ручного JSON
- Готові посилання підписки для v2rayN, v2rayNG, Streisand, Happ і подібних клієнтів
- Встановлення однією командою та зрозумілий шлях оновлення
- Вистачає невеликого VPS (1 vCPU / 1 ГБ RAM для особистого використання)
- Root залишається у вас: панель не надсилає конфіги в чужу хмару
Що потрібно перед стартом
Не пропускайте домен і брандмауер. Панель на HTTP з портом 2053 і паролем за замовчуванням боти знаходять за години. Підготуйте пункти нижче й підключіться по SSH як root (або користувач із sudo).
- Linux VPS із публічною IPv4-адресою (рекомендовано Ubuntu 22.04/24.04)
- Щонайменше 1 ГБ RAM і 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
# Confirm DNS for your subdomain (should print your VPS IP):
dig +short panel.example.comКрок 2. Встановіть 3X-UI
Офіційний скрипт збірки MHSanaei 3X-UI завантажує свіжий випуск, ставить Xray-core, створює службу systemd і друкує URL першого входу. Уважно скопіюйте випадковий шлях, логін і пароль у менеджер паролів. Якщо запитають порт панелі, залиште 2053 або оберіть вільний високий порт — його ж потім вкажете в брандмауері.
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# After install, useful commands:
x-ui # interactive menu (start/stop/restart, reset, update)
systemctl status x-ui # confirm the service is active
ss -tulpn | grep x-ui # see which port the panel listens onКрок 3. Перший вхід і одразу посилення захисту
Відкрийте URL з виводу інсталятора, зазвичай http://YOUR_IP:2053/<випадковий-шлях>. Увійдіть із виданими даними й відкрийте налаштування панелі (Panel Settings або Configuration). Змініть логін і пароль на свої унікальні. Якщо можна змінити базовий шлях вебінтерфейсу — змініть: довгий випадковий шлях відсікає масу сканерів. За потреби змініть порт прослуховування. Збережіть, перезапустіть панель з інтерфейсу або через systemctl restart x-ui і увійдіть уже за новим URL.
Увімкніть двофакторну перевірку, якщо збірка її пропонує, і вимкніть шаблони вхідних, якими не користуєтесь. Ядро Xray краще залишити тим, що прийшло з панеллю, доки немає причини фіксувати іншу збірку. Не вішайте панель на 80/443, якщо ці порти потім займе Reality або зворотний проксі — оберіть одну схему й дотримуйтеся її.
- Одразу замініть виданий логін адміністратора
- Секретний шлях в URL залиште, не переносьте панель у корінь сайту
- Нестандартний порт панелі запишіть собі
- Цей пароль ніде більше не використовуйте
Крок 4. Сертифікат TLS для панелі
Браузер лається на HTTP, а пароль адміністратора відкритою мережею краще не ганяти. 3X-UI вміє запросити сертифікат Let's Encrypt, якщо порт 80 вільний і домен дивиться на цей VPS. У розділі сертифікатів / SSL вкажіть panel.example.com і запросіть випуск. Якщо 80 уже зайнятий, використайте перевірку через DNS або поставте Caddy/Nginx спереду й проксуйте на 127.0.0.1:2053.
# Quick check that port 80 is free before the panel ACME challenge:
ss -tulpn | grep ':80'
# If you terminate TLS on Caddy instead of inside 3X-UI:
# Caddyfile example (panel stays on 127.0.0.1:2053):
# panel.example.com {
# reverse_proxy 127.0.0.1:2053
# }Крок 5. Створіть вхідний VLESS Reality
У розділі Inbounds створіть новий вхідний. Для багатьох мереж стійкий варіант — VLESS, Reality і TCP. Порт не повинен збігатися з портом панелі: 443, якщо нічого іншого на ньому немає, інакше високий TCP-порт — і той самий номер у брандмауері. Згенеруйте UUID першого клієнта й пару ключів Reality в інтерфейсі. У dest / serverNames вкажіть легітимну ціль, яку вам допустимо імітувати (відомий сайт із TLS 1.3). Збережіть вхідний і переконайтеся, що Xray перезавантажився без помилок у логах панелі.
Додаткових клієнтів додавайте на той самий вхідний: у кожного свій UUID, за бажанням мітка-email і ліміт за трафіком або часом. Посилання підключення або URL підписки копіюйте з рядка користувача. Не кидайте їх у публічні чати — це той самий пароль.
# On the server, confirm Xray is listening on the inbound port (example: 443):
ss -tulpn | grep -E ':443|:2053'
# Follow Xray logs if a client cannot connect:
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 або тим самим скриптом встановлення, якщо він бачить уже поставлену панель. Після оновлення перевірте, що служба systemd активна й вхідні слухають порти. Якщо перевстановлюєте ОС, відновіть копію в панелі, а не збирайте UUID знову.
x-ui # choose update when prompted, or:
# bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# Backup files commonly live under /etc/x-ui/ — copy them off-box:
ls -la /etc/x-ui/
# Example offsite copy:
# 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 або сканування відкритого порту — перевірте ss і кількість онлайн у панелі.
Захист, який справді важливий
Панель — це адмінка: з неї видають користувачів і читають UUID. Обмежте, хто достукається до вебпорту: якщо IP офісу постійний, в UFW для 2053/tcp залиште лише його. SSH — за ключами, не за паролем. Не крутіть сторонні публічні сайти на тому ж IP, якщо Reality сидить на 443: два стеки TLS на одному порту — класика раптових падінь. Змініть пароль адміністратора, якщо скрін панелі коли-небудь витік у чат.
- Лише SSH-ключі; парольний вхід вимкніть, коли ключі перевірені
- Порт панелі в брандмауері звузьте, якщо можете
- Каталог /etc/x-ui регулярно копіюйте з сервера
- Посилання підписки не публікуйте у відкритих групах Telegram
- Слідкуйте за диском: логи й статистика трафіку ростуть
Практичні поради
- Один вхідний на багато клієнтів простіший, ніж десять майже однакових
- Називайте клієнтів за пристроями (ноутбук-анна, телефон-бен), інакше графіки безглузді
- Сайт зі зворотним проксі краще на інший IP або порт — не сперечайтеся з Reality за 443
- Після будь-якого перезапуску x-ui перевірте одного клієнта, поки SSH ще відкритий
- Перед оновленням читайте список змін, не стрибайте на latest у п’ятницю ввечері
У підсумку 3X-UI стоїть як служба systemd, адмінський URL закритий, у панелі є TLS, вхідний VLESS Reality створено, брандмауер збігається з портами, резервна копія лежить не лише на цьому VPS. Клієнтів додавайте на сторінці вхідного, імпортуйте посилання на кожному пристрої, панель оновлюйте лише після копії. Якщо все зламалося, шлях відновлення — меню x-ui на сервері, а не повне перевстановлення.