Панели управления: 3x-ui, Marzban, Marzneshin, Hiddify
Когда у тебя 1 пользователь — можно вручную править config.json Xray. Когда 10 —
нужна панель. Когда 1000 — нужна панель с биллингом, телеграм-ботом и нодами. Разберём все
четыре главные панели 2024-2026: что выбирать под объём, как ставить, какие фичи.
- Сравнение 4 панелей с честной матрицей плюсов/минусов
- 3x-ui — установка от A до Z, основные настройки, multi-user, traffic-limit, expire
- Subscription link (sub-link) — единая ссылка пользователю
- Telegram-бот — управление через бот
- Marzban — масштабная архитектура с нодами
- Hiddify — для тех, кому нужно «всё в одной коробке»
Панель не заменяет протоколы — она ими управляет. Внутри она собирает те же конфиги Xray с VLESS+Reality (урок 6, 7), генерирует UUID и ключи, которые ты руками делал в мини-лабах. А раздел безопасности прямо продолжает модель противника (урок 5): панель — это ещё и лакомая цель для сканеров, а не только DPI.
1. Сводное сравнение
| Панель | База | Поддержка протоколов | Лучшее применение | Сложность |
|---|---|---|---|---|
| 3x-ui | Xray-core, Go + SQLite | VLESS, VMess, Trojan, SS, Reality, WS, gRPC, XHTTP, … | 1-100 пользователей, личный/малый бизнес | Простая |
| Marzban | Xray-core, Python (FastAPI) | Всё что Xray + ноды для горизонтального масштаба | 100-10000 пользователей, провайдеры услуг | Средняя |
| Marzneshin | Xray + sing-box + Hysteria, Python | Всё Xray + Hysteria 2, TUIC, WireGuard через sing-box | Продвинутые сценарии, multi-protocol | Средняя |
| Hiddify | Xray + sing-box, Docker | Всё перечисленное + WG, OpenVPN, SSH-tunnel | «всё в коробке», новички, малые сети | Простая |
2. 3x-ui — установка и настройка от A до Z
3x-ui (MHSanaei) — продолжение проекта x-ui (sprov-net) после его архива. Самая популярная панель в 2024-2026. Лёгкая, быстрая, на Go + SQLite, web-интерфейс + Telegram-бот.
2.1. Установка одной командой
# на свежей Ubuntu 22.04/24.04 или Debian 12, root bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Скрипт спросит логин/пароль, порт панели, путь (для безопасности по умолчанию рандомный URL).
Через 2 минуты панель доступна по http://VPS_IP:54321/randompath/.
- Смени дефолт:
x-uiв SSH → меню → 6 (Reset username/password) — поставь свой логин/пароль - Защити веб-панель TLS'ом: меню → 16 (SSL Certificate Management) — Let's Encrypt на твой домен или Cloudflare proxied
- Поставь только нужные порты в файрвол:
ufw allow 54321,443,80/tcp - Включи Telegram-бот (см. ниже) — для управления без панели
2.2. Создание первого Inbound
В веб-панели «Inbounds» → «+ New Inbound». Самая популярная связка для РФ — VLESS+Reality+Vision:
- Remark: любое имя, например «Reality-Main»
- Protocol: vless
- Listening IP: 0.0.0.0 (или конкретный)
- Port: 443
- Number of users: сколько хочешь (можно 1 для начала)
- Flow: xtls-rprx-vision
- Transport: tcp
- Security: reality
- uTLS: chrome (можно safari, firefox)
- Dest: www.microsoft.com:443 (или другой подходящий)
- SNI: www.microsoft.com
- Public Key / Private Key / ShortId: «Get New Cert» → сгенерируется
Кликни «Create» — Inbound создан. Под ним появляется ссылка для каждого user'а
(vless://uuid@ip:443?...) и QR-код. Передай клиенту — он подключается.
2.3. Лимиты на пользователя
При создании клиента указываешь:
- Email/Remark: идентификатор (для статистики)
- Total Traffic: например, 100 GB (по достижении — отключается)
- Expire: например, 30 дней (по истечении — отключается)
- IP Limit: сколько устройств может одновременно использовать (защита от шеринга)
Это позволяет монетизировать (продать абонементы) или контролировать домашних пользователей.
2.4. Sub-link — один URL для пользователя
Каждому пользователю можно дать один URL вместо QR-кода на каждый сервер. Клиент (sing-box, NekoBox, Hiddify) запоминает URL и автоматически забирает оттуда все доступные конфиги + обновляется при изменении.
В 3x-ui: меню → Settings → Subscription. Включаешь, указываешь домен/порт. Получаешь URL вида:
https://your-server.com:2096/sub/UUID
Этот URL и есть «единая подписка». В клиенте — Add Profile from URL.
2.5. Telegram-бот
В 3x-ui встроена интеграция с Telegram-ботом — можно управлять без веб-панели:
- Создаёшь бота через @BotFather, получаешь Token
- В 3x-ui → Settings → Telegram Bot: вставляешь Token и свой Telegram ID
- Команды бота:
/users,/usage,/expire,/restart - Уведомления при превышении лимита, истечении подписки, перезагрузке
3. Marzban — для масштаба
Marzban (Dialogue Group, Иран) — продвинутая панель, изначально для VPN-сервисов с тысячами пользователей. Главное отличие — multi-node архитектура: одна «main»-панель управляет N серверов-нод. Пользователь подключается к ближайшей ноде.
Пользователь получает один sub-link, в нём — конфиги всех нод. Клиент сам выбирает ближайшую или самую быструю. Если одна нода забанена — клиент переключается на другую за секунды.
Установка main:
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
Дальше — добавить ноды через веб-интерфейс. Каждая нода устанавливается на отдельный VPS отдельным скриптом, который связывается с main через gRPC.
4. Marzneshin — обновлённый Marzban
Marzneshin — переписанный Marzban, добавляет нативную поддержку Hysteria 2, TUIC, WireGuard, OpenVPN через интеграцию с sing-box (не только Xray). Это multi-protocol панель.
Если у тебя сценарий «часть пользователей сидит на Reality, часть на Hysteria 2, часть на WG» — Marzneshin позволяет это в одной панели с общим биллингом и подсчётом трафика.
5. Hiddify — «всё в Docker'е»
Hiddify — Docker-Compose дистрибутив, который ставит за 10 минут целый VPN-стек: Xray + sing-box + Hysteria + WG + nginx + панель + Telegram-бот. Идея — «всё в одной коробке для начинающих». Идеален для тех, кто не любит править конфиги.
Установка:
bash <(curl -L https://raw.githubusercontent.com/hiddify/hiddify-manager/main/common/download_install.sh)
После установки доступна по https://your-domain/admin/RANDOM_PATH/.
В меню — все возможные комбинации протоколов, можно включать/выключать чек-боксами.
6. Безопасность панелей
- Дефолтный логин/пароль. После установки обязательно сменить.
- Панель на стандартном порту. Не оставляй 80/443/8080 на админку. Используй random порт + random path.
- Открытая SQLite-БД. Файл
/etc/x-ui/x-ui.dbдолжен быть chmod 600. - Доступ через интернет без HTTPS. Подними Let's Encrypt на свой админ-домен.
- Reuse UUID между пользователями. Каждому свой UUID, по нему ведётся audit.
- Cloudflare proxy перед админкой (только нужные cf-IP в файрвол)
- 2FA через Telegram-бот: при логине в админку шлёт код в Telegram
- fail2ban на SSH + админ-порт (см. урок 11)
- Бэкап БД ежедневно (rsync + S3/B2). При сносе сервера — восстановишь за минуту.
- Не давай sub-link напрямую — раздавай через своего бота, который проверяет права
Отдельно про обновления: панели — активно развивающийся open-source, и в них регулярно находят уязвимости. Устаревшая версия 3x-ui или Marzban на публичном порту — частая причина взлома «на ровном месте». Держи привычку обновлять панель и её зависимости так же, как обновляешь сам Xray-core; подпишись на релизы в GitHub соответствующего проекта, чтобы не пропустить security-патч. И помни: чем меньше поверхность (закрытый порт, доступ по IP, отдельный непривилегированный пользователь), тем меньше шанс, что новая уязвимость вообще будет достижима извне.
Панель — ресепшн отеля, а не сами номера
Протоколы из прошлых уроков — это номера (комнаты, где живёт трафик). Панель — стойка ресепшена: она заселяет гостей (создаёт пользователей и UUID), выдаёт ключи-карты (sub-link, по которому клиент сам скачивает и обновляет конфиги), считает, кто сколько прожил и потратил (лимиты трафика и сроки), и умеет управлять сетью отелей разом (Marzban с нодами). Отсюда две мысли. Первая: масштаб выбирает панель — одному гостю карту выпишешь от руки (config.json), тысяче — только ресепшн с биллингом. Вторая, важнее: ресепшн хранит журнал ВСЕХ гостей и запасные ключи от всех номеров — взломав его, злоумышленник получает весь отель. Поэтому панель прячут (нестандартный порт и путь, reverse-proxy, доступ по IP, 2FA) жёстче, чем сами номера.
7. Мини-лаба: попробуй прямо сейчас
Ставить панель нужен VPS, но её ЛОГИКУ — sub-link и структуру — можно понять локально. Разбери типичную ссылку-подписку и прикинь безопасность:
# 1. Как выглядит VLESS-конфиг внутри sub-link (это base64-строки таких URI):
echo 'vless://@server:443?type=tcp&security=reality&sni=www.microsoft.com&pbk=&sid=#my-vpn'
# узнаёшь всё из уроков 6–7: UUID, security=reality, sni-донор, публичный ключ, ShortID
# 2. Sub-link — это просто HTTP-эндпоинт с base64-списком таких URI. Раскодируй пример:
echo 'dmxlc3M6Ly9leGFtcGxlCg==' | base64 -d
# 3. Прикинь «поверхность атаки» панели: какой порт/путь ты бы НЕ оставил открытым
# стандартные 3x-ui по умолчанию: порт 2053, путь /panel — их обязательно менять
# 4. Проверь права на «базу пользователей» (на реальном сервере это /etc/x-ui/x-ui.db)
# должно быть 600 (только root). Смоделируй на своём файле:
touch demo.db && chmod 600 demo.db && ls -l demo.db
В пункте 1 ты увидишь, что sub-link — это просто упаковка знакомых параметров Reality из урока 7: панель ничего «магического» не делает, она их генерирует и раздаёт. Пункт 2 покажет, что подписка — обычный base64 (поменял ключи в панели — по этой ссылке у всех клиентов обновилось само). Пункты 3–4 — про то, почему панель это точка риска: открытый стандартный порт/путь и БД без прав 600 сдают злоумышленнику разом всех пользователей и ключи. Отсюда правило: админку прячут строже, чем сам VPN.
8. Задачи самопроверки — реши, потом раскрой ответ
Задача 1. У тебя 1 личный сервер и трое друзей. Стоит ли ставить Marzban с нодами? А если завтра будет 800 платящих пользователей на 5 серверах?
Для 1 сервера и троих — избыточно: хватит 3x-ui (одна панель, один узел, sub-links, лимиты). Marzban оправдан при масштабе: центральная панель + распределённые ноды, единый учёт пользователей поверх многих серверов, биллинг и телеграм-бот. Правило урока: 1 юзер — руками config.json, десятки — 3x-ui, сотни-тысячи на нескольких серверах — Marzban/Marzneshin с нодами.
Задача 2. Ты сменил домен и ключи Reality на сервере. Как сделать, чтобы у 200 пользователей конфиги обновились без рассылки каждому вручную?
Через subscription link: у каждого пользователя в клиенте прописан sub-URL, по которому приложение периодически тянет актуальный список конфигов. Поменял сервер/ключи в панели — обновил содержимое подписки, и клиенты сами подтянут новое при следующем обновлении. Именно ради этого панели и раздают sub-link, а не голые конфиги.
Задача 3. Панель поставили, всё работает, но через неделю доступ к ней получил посторонний. Назови три вероятные причины из этого урока.
(1) Не сменили дефолтные логин/пароль — боты-сканеры подбирают их за минуты. (2) Админка на стандартном порту/пути (2053, /panel) — легко находится массовым сканом. (3) Доступ к панели открыт в интернет без ограничения по IP/reverse-proxy и без 2FA. Плюс возможные: БД x-ui.db с правами не 600, отсутствие HTTPS. Взлом панели = раскрытие всех пользователей и ключей, поэтому меры обязательны сразу.
Задача 4. Почему панель — более опасная точка, чем отдельный протокол-инстанс, и как это меняет приоритеты защиты?
Панель централизует ВСЁ: список пользователей, их UUID/ключи, конфиги, статистику, часто — управление несколькими нодами. Компрометация одного протокола раскрывает один канал; компрометация панели — всю сеть сразу. Поэтому приоритет: спрятать админку (нестандартные порт+путь, reverse-proxy/Cloudflare, allow-list по IP), 2FA, свежие обновления, fail2ban, права на БД, регулярный бэкап. Удобство централизации оплачивается более строгой защитой центра.
Задача 5. Друг раздаёт sub-link напрямую всем желающим в открытом чате. Какие два риска и как правильно?
Риски: (1) утечка/переполнение — ссылку расшарят дальше, чужие сядут на твой трафик и «спалят» сервер поведением; (2) нет отзыва и учёта — не понять, кто есть кто, и отключить одного нельзя. Правильно: выдавать доступ через своего телеграм-бота, который проверяет права и выдаёт персональную подписку, каждому — свой UUID (для аудита и точечного отзыва), лимиты трафика/срока на пользователя. Тогда «протёкшего» отключаешь одной кнопкой.
9. Словарик урока
10. Дальше
Панель — это вершина айсберга. Под ней важнее сама серверная инфраструктура: какой VPS взять, какая локация, как настроить ядро для максимума скорости, как защитить от активного зондирования. Это урок 11.