К содержимому

Marzban на VPS: установка, SSL и VLESS Reality

Панель управления Xray

Категория
VPN / Прокси
Хостинг
VPN-сервер
Автор
Gozargah
Лицензия
AGPL-3.0
Версия
0.8.4
Обновлено

Скрипт бесплатный · VPS от $2.79 в месяц · установка около 7 минут

Установка по SSH

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

  • SystemUbuntu 24.04 · x86_64ok
  • Sourcegithub.com/Gozargah/Marzbanok
  • Version0.8.4ok
  • Port8000/tcplisten
  • Port1080/tcp/udplisten
  • Port443/tcplisten

✓ Marzban 0.8.4 установлен · около 2 минут

root@vps:~#

Команда установки из библиотеки. Вывод сокращён: на вашем сервере он может отличаться.

Что это

  • Xray
  • VLESS
  • REALITY
  • Подписки
  • Telegram-бот

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

Панель поддерживает VMess, VLESS, Trojan и Shadowsocks, в том числе TLS и REALITY. У каждого пользователя есть лимит трафика и срок действия, а подписки открываются в V2rayNG, Sing-box, Nekoray, Clash и других клиентах.

На своём VPS панель удобна, если вы продаёте доступ к VPN или раздаёте его команде: управление через браузер, REST API и встроенный Telegram-бот, а нагрузку можно разнести по нескольким серверам через Marzban Node.

  • Протоколы VMess, VLESS, Trojan и Shadowsocks, поддержка TLS и REALITY
  • Лимиты по трафику и сроку, в том числе периодические (день, неделя, месяц)
  • Ссылки-подписки для V2Ray-клиентов, Sing-box и Clash, QR-коды
  • Несколько серверов через Marzban Node
  • REST API, встроенный Telegram-бот и CLI
  • Статистика трафика и мониторинг сервера

Кому подойдёт

  • Раздаёте VPN команде или продаёте доступ: у каждого пользователя своя ссылка-подписка, лимит трафика и срок.
  • Нужны подписки для V2rayNG, Sing-box, Clash и других клиентов, REST API и встроенный Telegram-бот.
  • Нагрузку позже придётся разнести по нескольким серверам через Marzban Node.

Рекомендуемый тариф

Для Marzban — не меньше 1 vCPU, 2 ГБ RAM и 10 ГБ NVMe.

Минимум для запуска
1 vCPU · 1 ГБ RAM · 10 ГБ диска
Системы
Ubuntu 22.04 · Ubuntu 24.04 · Debian 12
Виртуализация
KVM — на всех наших VPS

Установка в 1 клик через Telegram-бот

Три шага в боте, командная строка не нужна. Бот показывает прогресс, установка обычно занимает около 7 минут.

  1. 01

    Откройте бота по кнопке

    Кнопка установки на этой странице откроет @ExpressHost_bot — скрипт Marzban бот подставит сам.

  2. 02

    Выберите тариф и ОС

    Скрипт появится на шаге «Скрипты» автоматически, останется оплатить сервер.

  3. 03

    Получите данные для входа

    Когда установка закончится, бот пришлёт данные для входа в чат.

Что настроит бот

  • Ставит Docker и Marzban (образ gozargah/marzban:latest) на Debian 12, 13 или Ubuntu 22.04, 24.04.
  • Выпускает сертификат Let’s Encrypt на домен сервера вида имя-сервера.expresshost.cloud; панель работает по HTTPS на порту 443 — https://домен/dashboard/, там же ссылки-подписки.
  • Сразу создаёт inbound «VLESS TCP REALITY» на порту 8443 с маскировкой под www.vk.com и генерирует для него приватный ключ и Short ID.
  • Администратора не создаёт: в сообщении о готовности будут адрес панели и команда marzban cli admin create --sudo — выполните её по SSH и задайте логин и пароль.

Установка Marzban вручную

Официальный скрипт ставит Docker и команду marzban. Файлы приложения будут в /opt/marzban, настройки — в /opt/marzban/.env, данные — в /var/lib/marzban.

Порты Marzban
ПортПротоколНазначение
8000tcpВеб-панель (/dashboard/), API и подписки
1080tcp/udpInbound Shadowsocks из стандартного конфига Xray
443tcpОбычно занимают под VLESS REALITY или TLS (настраивается)
  1. 01

    Подключитесь к серверу

    IP и пароль root бот присылает после создания сервера.

    Код
    ssh root@SERVER_IP
  2. 02

    Запустите установку

    По умолчанию база — SQLite. Для MySQL или MariaDB добавьте к команде --database mysql или --database mariadb. В конце установщик покажет логи — выйти из них можно по Ctrl+C.

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

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

    Команда спросит логин и пароль для входа в панель.

    Код
    marzban cli admin create --sudo
  4. 04

    Откройте панель

    Панель слушает порт 8000, но по IP-адресу не открывается: нужен домен с SSL (https://YOUR_DOMAIN:8000/dashboard/, см. следующий раздел). Для проверки без домена пробросьте порт по SSH и откройте http://localhost:8000/dashboard/ — доступ пропадёт, когда закроете терминал.

    Код
    ssh -L 8000:localhost:8000 root@SERVER_IP

Домен и SSL для панели Marzban

Создайте A-запись домена на IP сервера до выпуска сертификата. Файлы сертификата должны лежать в /var/lib/marzban/certs — оттуда их читает Marzban.

  1. 01

    Установите socat и acme.sh

    Вместо YOUR_EMAIL укажите свою почту.

    Код
    apt install curl socat -y
    curl https://get.acme.sh | sh -s email=YOUR_EMAIL
  2. 02

    Выпустите сертификат

    Вместо YOUR_DOMAIN укажите домен или поддомен. На время проверки acme.sh сам слушает порт 80, он должен быть свободен.

    Код
    export DOMAIN=YOUR_DOMAIN
    mkdir -p /var/lib/marzban/certs
    ~/.acme.sh/acme.sh \
      --issue --force --standalone -d "$DOMAIN" \
      --fullchain-file "/var/lib/marzban/certs/$DOMAIN.cer" \
      --key-file "/var/lib/marzban/certs/$DOMAIN.cer.key"
  3. 03

    Пропишите сертификат в .env

    Добавьте строки в /opt/marzban/.env. Панель можно оставить на порту 8000 или перевести на 443 строкой UVICORN_PORT = 443, если порт не занят inbound’ом.

    Код
    UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/YOUR_DOMAIN.cer"
    UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/YOUR_DOMAIN.cer.key"
    XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN
  4. 04

    Перезапустите Marzban

    После перезапуска панель и подписки откроются по HTTPS на вашем домене.

    Код
    marzban restart

Как добавить VLESS Reality в Marzban

Inbound’ы Marzban — это конфиг Xray: он правится в панели (Core Settings) или в файле /var/lib/marzban/xray_config.json. После ручной установки в нём только Shadowsocks на порту 1080. Свой домен для REALITY не нужен.

  1. 01

    Сгенерируйте приватный ключ

    Приватный ключ останется в конфиге сервера.

    Код
    docker exec marzban-marzban-1 xray x25519
  2. 02

    Сгенерируйте Short ID

    Short ID и SpiderX необязательны, но Short ID лучше задать.

    Код
    openssl rand -hex 8
  3. 03

    Добавьте inbound в Core Settings

    Вместо SITE укажите чужой посещаемый сайт с TLS 1.3 и HTTP/2, домен которого не служит редиректом; в serverNames — имена из его сертификата.

    Код
    {
      "tag": "VLESS TCP REALITY",
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": { "clients": [], "decryption": "none" },
      "streamSettings": {
        "network": "tcp",
        "tcpSettings": {},
        "security": "reality",
        "realitySettings": {
          "show": false,
          "dest": "SITE:443",
          "xver": 0,
          "serverNames": ["SITE"],
          "privateKey": "PRIVATE_KEY",
          "shortIds": ["SHORT_ID"]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"]
      }
    }
  4. 04

    Проверьте Host Settings

    Здесь для inbound задаются адрес, порт, SNI и fingerprint, которые попадут в ссылки пользователей. По умолчанию адрес — IP сервера.

  5. 05

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

    Добавьте пользователя с протоколом VLESS, задайте лимит трафика и срок и отправьте ему ссылку-подписку.

Обновление и бэкап Marzban

Важные файлы — /var/lib/marzban (база, конфиг Xray, сертификаты) и /opt/marzban (.env и docker-compose.yml). Последний релиз на GitHub — v0.8.4.

  1. 01

    Обновите Marzban

    Команда обновляет Marzban до последней версии.

    Код
    marzban update
  2. 02

    Сделайте бэкап

    Ручной бэкап запускает marzban backup, а marzban backup-service настраивает регулярную отправку архива в Telegram.

    Код
    marzban backup

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

  • Панель не открывается по IP

    Так задумано: без SSL панель доступна только через localhost. Выпустите сертификат на домен или пробросьте порт по SSH.

  • После установки из бота не войти в панель

    Администратора бот не создаёт. Подключитесь по SSH и выполните marzban cli admin create --sudo.

  • Не выпускается сертификат

    A-запись домена должна уже указывать на сервер, а порт 80 — быть свободен на время проверки.

  • Клиент Reality не подключается

    Проверьте dest и serverNames: сайт с TLS 1.3 и H2, без редиректа, serverNames из его сертификата. Порт inbound должен быть открыт в файрволе.

  • Нужно посмотреть, что происходит

    marzban status покажет состояние контейнеров, marzban logs — логи.

Источники

Команды и шаги сверены с официальной документацией 25 октября 2026. Что делает установка из бота — по её скрипту.

Вопросы о Marzban

Не нашли ответ? Пишите @ExpressHost_SupportBot.

Сколько пользователей выдержит тариф?

Сама панель лёгкая, упор идёт в канал и процессор на шифровании. Для старта и нескольких десятков активных пользователей хватает 1 vCPU и 2 ГБ RAM. При росте добавьте ещё сервер через Marzban Node.

Как обновить Marzban?

Командой marzban update. Она скачает новые образы и перезапустит контейнеры, данные пользователей сохранятся.

Где лежат данные?

Файлы приложения — в /opt/marzban, настройки — в /opt/marzban/.env, база и конфиг Xray — в /var/lib/marzban. Для бэкапа есть команда marzban backup.

Можно ли использовать MySQL вместо SQLite?

Да: добавьте к команде установки --database mysql или --database mariadb.

Marzban ставится при заказе — в боте.