Marzban: установка панели и VLESS Reality на VPS

Ставим Marzban официальным установщиком, настраиваем VLESS Reality на порту 443 с отпечатком firefox, создаём пользователя и подключаем телефон. Debian 12 и Ubuntu 24.04.

7 октября 2026 г.·5 мин чтения·marzban, xray, vless, reality

Marzban — веб-панель над ядром Xray. Через браузер создаёте пользователей, выдаёте им ссылки на подписку, видите расход трафика и отключаете доступ одной кнопкой. Для личного VPN на несколько устройств это самый простой вариант, где не нужно править JSON на каждого нового человека.

Ниже — установка с нуля на чистом сервере: панель, подключение VLESS Reality на порту 443, первый пользователь и проверка с телефона. Проверено на Debian 12 с Marzban 0.8.x.

Что нужно

  • Сервер на tanaka.host с Debian 12 или Ubuntu 24.04, 1 ядро и 1 ГБ памяти хватает.
  • Доступ по SSH под root — см. подключение по SSH.
  • Свободный порт 443. Если на сервере уже крутится nginx или другой VPN, сначала освободите его.

Скрипт рассчитан на чистую систему. Если сервер уже чем-то занят, переустановите ОС из кабинета tanaka.host — так проще, чем вычищать остатки.

1. Установите Marzban

Официальный установщик ставит Docker, скачивает образы и запускает панель:

sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install

В конце он начнёт показывать журнал контейнера. Выйдите из него клавишами Ctrl+C — контейнеры продолжат работать. Файлы панели лежат в двух местах: настройки в /opt/marzban/.env, данные и конфигурация Xray — в /var/lib/marzban/.

Создайте администратора:

marzban cli admin create --sudo

Команда спросит логин и пароль. Запишите их в менеджер паролей.

2. Настройте VLESS Reality

По умолчанию в /var/lib/marzban/xray_config.json лежит демонстрационный набор инбаундов. Заменим его одним подключением VLESS Reality. Сначала сгенерируйте ключи и Short ID внутри контейнера Marzban:

docker compose -f /opt/marzban/docker-compose.yml exec marzban xray x25519
openssl rand -hex 8

Первая команда выведет Private key и Public key (в новых версиях Xray — PrivateKey и Password). Приватный ключ идёт в конфиг сервера, публичный панель сама подставит в ссылки клиентам. Вторая команда даёт Short ID.

Откройте конфиг и замените содержимое, подставив свой приватный ключ и Short ID:

nano /var/lib/marzban/xray_config.json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "VLESS TCP REALITY",
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "show": false,
          "target": "www.computerbase.de:443",
          "xver": 0,
          "serverNames": ["www.computerbase.de"],
          "privateKey": "PRIVATE_KEY",
          "shortIds": ["SHORT_ID"]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

Массив clients оставляйте пустым — Marzban сам добавляет туда пользователей из панели. Перезапустите панель:

marzban restart

Сайт для маскировки www.computerbase.de — просто рабочий пример. Как выбирать свой, рассказано ниже.

3. Откройте порты

Если брандмауэр ещё не настроен, сделайте это сейчас по статье про UFW и firewalld. Нужны SSH, 443 и порт панели (по умолчанию 8000):

ufw allow 22/tcp
ufw allow 443/tcp
ufw allow 8000/tcp
ufw enable

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

Адрес панели — http://IP-сервера:8000/dashboard/. Логин и пароль — из шага 1. Язык переключается кнопкой с иконкой перевода в правом верхнем углу.

Панель работает по HTTP. Пароль уходит в открытом виде. Не входите с общественного Wi-Fi и не пересылайте адрес вместе с паролем в чатах. Если панель нужна надолго — поставьте перед ней nginx с сертификатом по статье про Let’s Encrypt.

Сразу проверьте отпечаток TLS: меню ☰ → Настройки хоста → VLESS TCP REALITY → Дополнительные опции → поле Fingerprint. По умолчанию там chrome, поставьте firefox и нажмите Применить.

5. Создайте пользователя

Пользователь — это отдельный ключ. На каждого человека и желательно на каждое устройство создавайте своего: при утечке удалите одного, остальные продолжат работать.

  1. Нажмите Создать.
  2. Имя пользователя — например phone.
  3. В блоке Протоколы убедитесь, что карточка Vless выделена.
  4. Лимит трафика и Дата истечения срока можно не заполнять.
  5. Нажмите Создать.

У пользователя в списке три кнопки:

Кнопка Что делает
Скопировать ссылку на подписку Ссылка, по которой приложение само забирает актуальные настройки. Её и давайте людям
Скопировать конфигурации Прямая ссылка vless:// на одно подключение
QR Code QR-коды подписки и подключения для сканирования телефоном

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

Подойдёт любой клиент на ядре Xray: Incy, Happ, v2rayN для компьютеров, v2rayNG для Android. В приложении выберите добавление из буфера обмена и вставьте ссылку на подписку либо отсканируйте QR-код. Включите подключение и откройте api.ipify.org — там должен быть IP вашего сервера.

Ссылка на подписку — это ключ. Кто её получил, тот подключился. Не публикуйте и не отправляйте в открытые чаты.

Клиенты на ядре sing-box (Hiddify, NekoBox, Throne, NekoRay) с Reality на свежих версиях Xray не работают — сервер принимает только клиентов с постквантовым обменом ключами ML-KEM. Берите приложения на Xray-core и держите их обновлёнными.

Почему firefox, а не chrome

Фильтры провайдеров оценивают TLS-соединение по совокупности: подсеть хостинга, SNI и отпечаток клиента. chrome стоит по умолчанию почти во всех VPN-приложениях, и пара «отпечаток Chrome + IP дата-центра» стала надёжным признаком прокси. На практике при нескольких одновременных подключениях с chrome соединение «замораживается» на минуты, с firefox — нет.

edge больше не подходит: с Xray 26.9.8 сервер Reality требует ML-KEM, а профиль edge соответствует старому Edge 85 без него. random и randomized тоже не используйте — могут выбрать профиль без ML-KEM.

Сайт для маскировки

Reality прячет VPN под обращение к обычному сайту. Требования к нему: TLS 1.3, HTTP/2, поддержка X25519MLKEM768 и — главное — не за Cloudflare, Akamai или другим CDN. Крупные бренды вроде microsoft.com не берите: их адреса известны, и «Microsoft на IP небольшого хостинга» выглядит подозрительно. Лучше небольшой европейский сайт на собственном сервере. Проверить, не стоит ли сайт за CDN:

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

Ответ server: nginx — хорошо, cloudflare — не подходит. Ещё надёжнее маскироваться под свой домен — см. self-steal для VLESS Reality.

Полезные команды

Команда Что делает
marzban status Состояние контейнеров, должно быть running
marzban logs Журнал панели и Xray
marzban restart Перезапуск после правки конфигов
marzban update Обновление, пользователи и настройки сохраняются
marzban down Остановить панель

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

  • Панель не открывается. Адрес через http://, а не https://, порт 8000 открыт в брандмауэре, marzban status показывает running.
  • Xray не стартует после правки конфига. Смотрите marzban logs — чаще всего пропущена запятая в JSON или занят порт 443 (ss -lntp | grep ':443 ').
  • Подключается, но сайты не грузятся. Обновите подписку в приложении и само приложение; проверьте, что у пользователя статус Active, а в настройках хоста отпечаток firefox.
  • Забыли пароль администратора. marzban cli admin update сменит пароль существующего.

Когда пользователей станет много и серверов несколько, посмотрите на Remnawave — есть инструкция по переезду.