Перейти на сайт
База знаний/Руководства/Установка и настройка Marzban на VPS. Альтернатива 3X-UI для своего VPN

Установка и настройка Marzban на VPS. Альтернатива 3X-UI для своего VPN

Что такое Marzban и чем отличается от 3X-UI

Marzban это панель управления прокси-сервером с красивым интерфейсом и продвинутыми функциями. Если 3X-UI это "просто и быстро", то Marzban это "гибко и масштабируемо".

Сравнение Marzban и 3X-UI

Возможность Marzban 3X-UI
Веб-интерфейс Современный, React Простой
REST API Полноценный Базовый
Подписки (subscription) Встроенные, авто-обновление Ручные
Мульти-нодовость Да (Node-серверы) Нет
Telegram-бот Встроенный Через плагин
Протоколы VLESS, VMess, Trojan, ShadowSocks VLESS, VMess, Trojan, SS, WireGuard
Поддержка Reality Да Да
Шаблоны Inbound Да Нет
Сложность установки Средняя Простая
Потребление ресурсов Выше (Python + React) Ниже (Go)

Когда выбрать Marzban: если нужен API, подписки для клиентов, Telegram-бот, несколько серверов (нод), или вы раздаёте VPN множеству пользователей.

Когда выбрать 3X-UI: если нужно быстро поднять VPN для себя и нескольких друзей.

Установка Marzban на VPS

Требования

  • Ubuntu 20.04+ или Debian 11+
  • Минимум 1 ГБ RAM (лучше 2 ГБ)
  • Python 3.8+

Быстрая установка (рекомендуется)

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

Скрипт установит все зависимости, настроит Docker и запустит панель.

После установки:

marzban cli admin create --sudo

Эта команда создаст администратора. Введите логин и пароль.

Доступ к панели

Панель будет доступна по адресу:

http://ваш_ip:8000/dashboard

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

  1. Клонируйте репозиторий:
git clone https://github.com/Gozargah/Marzban.git
cd Marzban
  1. Создайте файл .env:
cp .env.example .env
nano .env

Основные переменные:

UVICORN_HOST=0.0.0.0
UVICORN_PORT=8000
SUDO_USERNAME=admin
SUDO_PASSWORD=YourSecurePassword123
  1. Запустите:
docker compose up -d

Настройка Inbound. Протоколы подключений

Inbound в Marzban настраивается через JSON-конфигурацию Xray.

Перейдите в Core Settings

В панели откройте Core Settings (иконка шестерёнки), там находится конфигурация Xray в формате JSON.

VLESS + Reality (рекомендуется)

Добавьте в секцию inbounds:

{
  "tag": "VLESS-Reality",
  "listen": "0.0.0.0",
  "port": 443,
  "protocol": "vless",
  "settings": {
    "clients": [],
    "decryption": "none"
  },
  "streamSettings": {
    "network": "tcp",
    "security": "reality",
    "realitySettings": {
      "show": false,
      "dest": "dl.google.com:443",
      "xver": 0,
      "serverNames": ["dl.google.com"],
      "privateKey": "",
      "shortIds": [""]
    }
  },
  "sniffing": {
    "enabled": true,
    "destOverride": ["http", "tls", "quic"]
  }
}

Нажмите Generate Keys в панели для автоматической генерации privateKey и shortIds.

VMess + WebSocket

{
  "tag": "VMess-WS",
  "listen": "0.0.0.0",
  "port": 8080,
  "protocol": "vmess",
  "settings": {
    "clients": []
  },
  "streamSettings": {
    "network": "ws",
    "wsSettings": {
      "path": "/vmess"
    }
  }
}

Trojan

{
  "tag": "Trojan",
  "listen": "0.0.0.0",
  "port": 2083,
  "protocol": "trojan",
  "settings": {
    "clients": []
  },
  "streamSettings": {
    "network": "tcp",
    "security": "tls",
    "tlsSettings": {
      "certificates": [
        {
          "certificateFile": "/var/lib/marzban/certs/fullchain.pem",
          "keyFile": "/var/lib/marzban/certs/key.pem"
        }
      ]
    }
  }
}

Управление пользователями

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

  1. Перейдите в Users > Create User
  2. Заполните:
    • Username для имени пользователя
    • Data Limit для лимита трафика (ГБ)
    • Expire Date для срока действия
    • Protocols, какие протоколы доступны пользователю
  3. Нажмите Create

Подписки (Subscription)

Одно из главных преимуществ Marzban это встроенные подписки. Каждый пользователь получает уникальную ссылку подписки:

https://ваш_домен/sub/уникальный_токен

Клиент добавляет эту ссылку в VPN-приложение, и конфигурации обновляются автоматически при любых изменениях на сервере. Не нужно пересылать QR-коды каждый раз.

Настройка Telegram-бота

В Marzban есть встроенный Telegram-бот для управления.

Настройка

Добавьте в .env:

TELEGRAM_API_TOKEN=ваш_токен_от_BotFather
TELEGRAM_ADMIN_ID=ваш_telegram_id

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

marzban restart

Возможности бота

  • Создание и удаление пользователей
  • Просмотр статистики трафика
  • Управление сроками действия
  • Уведомления об истечении подписок
  • Генерация QR-кодов и ссылок

Мульти-нодовость. Несколько серверов

Marzban позволяет подключить дополнительные серверы (ноды) к одной панели. Пользователи автоматически получают доступ ко всем нодам.

Установка ноды

На дополнительном сервере:

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

Подключение ноды к панели

  1. В панели Marzban перейдите в Nodes
  2. Нажмите Add Node
  3. Укажите IP-адрес ноды и порт
  4. Скопируйте сертификат и вставьте на ноде

Клиенты для подключения

По ссылке подписки (рекомендуется)

Платформа Приложение
Windows / macOS / Linux Happ, Hiddify, NekoRay
Android Happ, Hiddify, v2rayNG
iOS Happ, FoXray, v2box, ShadowRocket

Добавьте ссылку подписки в приложение, и все конфигурации загрузятся автоматически.

По QR-коду

В панели нажмите на пользователя > иконка QR-кода > отсканируйте в приложении.

REST API

Marzban предоставляет полноценный API для интеграции:

https://ваш_домен:8000/api

Документация API доступна по адресу:

https://ваш_домен:8000/docs

Примеры использования:

# Получить токен
curl -X POST https://ваш_домен:8000/api/admin/token \
  -d "username=admin&password=password"

# Список пользователей
curl -H "Authorization: Bearer TOKEN" \
  https://ваш_домен:8000/api/users

Обновление Marzban

marzban update

Или через Docker:

cd Marzban
docker compose pull
docker compose down
docker compose up -d

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

# Статус Marzban
marzban status

# Логи
marzban logs

# Перезапуск
marzban restart

# Создать администратора
marzban cli admin create --sudo

# Бэкап
marzban cli backup

Решение проблем

Проблема Решение
Панель не открывается Проверьте порт 8000 в файрволе: ufw allow 8000
Пользователи не подключаются Проверьте порты Inbound в файрволе
Ошибка сертификата Обновите SSL: certbot renew
Высокое потребление RAM Уменьшите количество Inbound или увеличьте RAM
Нода не подключается Проверьте сертификат и сетевую связность

Marzban требует больше ресурсов, чем 3X-UI. Для комфортной работы с 10+ пользователями лучше взять VPS с 2 ГБ RAM.