Что такое Marzban и зачем он нужен
Marzban — это инструмент с открытым исходным кодом для управления прокси-серверами на базе Xray-core. Он предоставляет удобный веб-интерфейс для создания и управления учетными записями, поддержки различных протоколов и масштабирования инфраструктуры. Название происходит от персидского слова «пограничник» и произносится как /mærz'ban/.
Основные возможности Marzban:
- Веб-панель для управления пользователями и трафиком
- REST API для автоматизации
- Поддержка нескольких узлов (нод) для распределения нагрузки
- Протоколы: VLESS (включая Reality), VMess, Trojan, Shadowsocks
- Ограничение трафика по объему и времени
- Автоматическая генерация ссылок и QR-кодов
- Мониторинг ресурсов сервера
- Встроенный Telegram-бот и CLI
Marzban подходит как для личного использования, так и для коммерческих VPN-сервисов. Он позволяет создавать неограниченное количество пользователей, назначать им лимиты и отслеживать использование.
Что такое VLESS Reality и почему это важно
VLESS Reality — это современный протокол, разработанный для маскировки трафика под обычные HTTPS-соединения. В отличие от традиционных VPN-протоколов, Reality не требует наличия собственного SSL-сертификата и использует технологию «реального» TLS-рукопожатия с публичными сайтами (например, google.com или microsoft.com).
Ключевые преимущества Reality:
- Высокая устойчивость к блокировкам и DPI (глубокой фильтрации пакетов)
- Отсутствие необходимости в домене и SSL-сертификате
- Низкая задержка и высокая скорость
- Сложность обнаружения: трафик выглядит как обычное HTTPS-соединение с популярным сайтом
Reality работает на основе XTLS (Xray TLS), который обеспечивает шифрование и аутентификацию без дополнительных накладных расходов. Это делает его одним из лучших выборов для обхода блокировок в странах с жесткой интернет-цензурой.
Подготовка к установке: выбор VPS и системные требования
Перед установкой Marzban вам понадобится виртуальный сервер (VPS) с минимальными характеристиками:
- Не менее 1 ГБ оперативной памяти
- Один выделенный IPv4-адрес
- Операционная система: Ubuntu 22.04/24.04 или Debian 12
При выборе VPS обратите внимание на:
- Пропускную способность канала (чем выше, тем лучше)
- Географическое расположение сервера (ближе к вам — меньше задержка)
- Репутацию провайдера и отзывы
Для новичков рекомендуются такие провайдеры, как DMIT и RackNerd, но вы можете выбрать любого, кто предоставляет доступ по SSH и возможность установки чистой ОС.
Также вам понадобится:
- Компьютер с Windows, macOS или Linux для управления сервером
- Клиент для подключения: Hiddify, v2rayN, v2rayNG, NekoBox и другие
- Базовые знания командной строки (SSH)
Пошаговая установка Marzban на сервер
Установка Marzban состоит из нескольких этапов. Ниже приведен проверенный порядок действий.
Шаг 1: Подключение к серверу
Используйте SSH для подключения к вашему VPS. В Windows откройте PowerShell или терминал, в macOS — Terminal. Команда для подключения:
ssh root@ваш_IP_сервераЕсли вы используете не root-пользователя, замените root на ваше имя пользователя. При первом подключении система спросит о подтверждении — введите yes и затем пароль.
Шаг 2: Установка необходимых пакетов
Обновите систему и установите curl:
apt update -y && apt install -y curlШаг 3: Запуск установочного скрипта
Выполните команду для установки Marzban:
bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ installЕсли вы вошли как root, не используйте sudo. После завершения установки вы увидите логи — их можно остановить, нажав Ctrl+C.
Шаг 4: Создание администратора
Создайте учетную запись администратора для панели управления:
marzban cli admin create --sudoВведите желаемые имя пользователя и пароль. Эти данные понадобятся для входа в веб-интерфейс.
Шаг 5: Проверка установки
По умолчанию панель доступна по адресу http://ваш_IP:8000/dashboard/. Однако для безопасности рекомендуется не открывать порт 8000 в интернет, а использовать SSH-туннель (см. следующий раздел).
Безопасный доступ к панели управления через SSH-туннель
Чтобы защитить панель управления от несанкционированного доступа, не открывайте порт 8000 в интернет. Вместо этого используйте SSH-туннель, который создает зашифрованное соединение между вашим компьютером и сервером.
Настройка SSH-туннеля
На вашем локальном компьютере выполните команду:
ssh -L 8000:127.0.0.1:8000 root@ваш_IP_сервераЭта команда перенаправляет локальный порт 8000 на порт 8000 сервера через SSH. Теперь вы можете открыть в браузере http://127.0.0.1:8000/dashboard/ и войти в панель.
Преимущества SSH-туннеля:
- Панель не видна из интернета
- Все данные шифруются
- Не требуется настройка HTTPS для панели
Недостаток: для доступа к панели каждый раз нужно устанавливать SSH-соединение. Если вам нужен постоянный доступ, рассмотрите вариант с доменом и SSL-сертификатом (описано далее).
Настройка VLESS Reality в Marzban
После установки Marzban необходимо настроить входящее соединение VLESS Reality. Это делается в разделе Core Settings панели управления.
Шаг 1: Генерация ключей
В SSH-терминале выполните команду для генерации пары ключей X25519:
docker exec marzban-marzban-1 xray x25519Скопируйте Private key и Public key. Также сгенерируйте shortId:
openssl rand -hex 8Шаг 2: Редактирование конфигурации
В панели Marzban перейдите в Settings → Core Settings. Замените содержимое на следующую конфигурацию (замените ваш_PrivateKey и ваш_shortId на сгенерированные значения):
{
"log": {"loglevel": "warning"},
"routing": {"rules": [{"ip": ["geoip:private"], "outboundTag": "BLOCK", "type": "field"}]},
"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,
"dest": "www.microsoft.com:443",
"xver": 0,
"serverNames": ["www.microsoft.com"],
"privateKey": "ваш_PrivateKey",
"shortIds": ["ваш_shortId"]
}
},
"sniffing": {"enabled": true, "destOverride": ["http", "tls", "quic"]}
}],
"outbounds": [
{"protocol": "freedom", "tag": "DIRECT"},
{"protocol": "blackhole", "tag": "BLOCK"}
]
}Сохраните изменения и перезапустите ядро (кнопка в панели или команда marzban restart).
Шаг 3: Создание пользователя
В панели нажмите «Create User», укажите имя (например, myphone), выберите inbound «VLESS TCP REALITY» и flow xtls-rprx-vision. При необходимости задайте лимит трафика и срок действия. После создания скопируйте ссылку vless:// или QR-код для импорта в клиент.
Выбор транспортного протокола: TCP, XHTTP, gRPC и другие
Marzban поддерживает несколько транспортных протоколов для VLESS Reality. Каждый имеет свои особенности:
- TCP Reality — самый простой и надежный вариант. Рекомендуется для большинства случаев.
- XHTTP Reality — использует HTTP-подобный транспорт, может быть более устойчив к блокировкам, но требует поддержки клиентом.
- gRPC Reality — использует протокол gRPC, хорошо подходит для мобильных сетей, но может быть сложнее в настройке.
- H2 Reality — HTTP/2 транспорт, менее распространен.
Для новичков оптимален TCP Reality. Если вы столкнулись с блокировками, можно попробовать XHTTP или gRPC, но убедитесь, что ваш клиент поддерживает эти протоколы.
Также можно использовать TLS (с собственным сертификатом) вместо Reality, но это требует наличия домена и сертификата. Reality проще и безопаснее.
Подключение клиентов: настройка устройств
Для подключения к вашему VLESS Reality серверу используйте один из популярных клиентов:
- Hiddify (Windows, macOS, Android, iOS) — универсальный клиент с поддержкой многих протоколов.
- v2rayN (Windows) — легкий и функциональный.
- v2rayNG (Android) — популярный клиент для Android.
- NekoBox (Android) — современный клиент с поддержкой Reality.
- Streisand (iOS) — рекомендуемый для iOS.
Импорт конфигурации:
- Скопируйте ссылку
vless://из панели Marzban (или отсканируйте QR-код). - В клиенте выберите «Импорт из буфера обмена» или «Добавить конфигурацию».
- Вставьте ссылку и сохраните.
- Подключитесь и проверьте доступ к интернету.
Если ссылка содержит 127.0.0.1 вместо вашего IP, замените его на реальный IP сервера.
Проверка подключения:
Откройте любой сайт, например, google.com. Если он загружается, все работает. Если нет, проверьте:
- Открыт ли порт 443 в файрволе сервера
- Правильно ли указаны Private key и shortId
- Выбран ли правильный inbound и flow
Расширенные настройки: домен, HTTPS-панель и дополнительные узлы
Для более удобного управления и масштабирования вы можете настроить домен и HTTPS для панели, а также добавить дополнительные узлы.
Настройка домена и HTTPS
Если вы хотите получить доступ к панели через HTTPS-домен (например, panel.example.com), выполните следующие шаги:
- Приобретите домен и настройте A-запись, указывающую на IP вашего сервера.
- Установите Caddy (или используйте acme.sh) для автоматического получения SSL-сертификата.
- Измените порт Reality с 443 на 8443, чтобы освободить 443 для Caddy.
- Настройте Caddyfile для проксирования запросов к Marzban через Unix-сокет.
- Обновите
.envфайл, указавUVICORN_UDSиXRAY_SUBSCRIPTION_URL_PREFIX.
Это позволит вам открывать панель по адресу https://panel.example.com/dashboard/ и использовать HTTPS для подписок.
Добавление дополнительных узлов
Для масштабирования вы можете подключить несколько серверов (нод) к одной панели. Для этого:
- В панели перейдите в раздел «Узлы» и добавьте новый узел, указав его IP и порт.
- Скопируйте ключ аутентификации.
- На новом сервере установите Marzban-node и вставьте ключ в файл
/var/lib/marzban-node/ssl_client_cert.pem. - Запустите узел командой
docker compose up -d.
Теперь вы можете распределять пользователей между узлами, увеличивая общую пропускную способность.
Безопасность и обслуживание: резервное копирование, обновления и защита
После настройки сервера важно обеспечить его безопасность и регулярное обслуживание.
Резервное копирование
Регулярно создавайте резервные копии панели:
marzban backupЭто создаст архив с базой данных, конфигурациями и сертификатами. Храните резервные копии в надежном месте, не публикуйте их в открытом доступе.
Обновление
Периодически обновляйте Marzban и Xray-core:
marzban backup
marzban update
marzban core-updateПосле обновления проверьте работоспособность панели и подключений.
Защита SSH
Настройте SSH-ключи и отключите вход по паролю:
- Сгенерируйте ключ на локальном компьютере:
ssh-keygen -t ed25519 - Скопируйте публичный ключ на сервер:
ssh-copy-id root@ваш_IP - В файле
/etc/ssh/sshd_configустановитеPasswordAuthentication noиPermitRootLogin prohibit-password. - Перезапустите SSH:
systemctl reload ssh
Дополнительная защита
- Установите Fail2ban для автоматической блокировки подозрительных IP.
- Используйте файрвол UFW, разрешив только необходимые порты (22, 443, 8443).
- Не открывайте порт 8000 в интернет.
- Создавайте отдельных пользователей для каждого устройства, чтобы можно было отозвать доступ при утечке.
Вопросы и ответы
Что такое VLESS Reality и чем он отличается от обычного VLESS+TLS?
VLESS Reality — это протокол, который маскирует трафик под обычное HTTPS-соединение с реальным сайтом (например, microsoft.com). В отличие от VLESS+TLS, Reality не требует собственного SSL-сертификата и домена, что упрощает настройку и делает его более устойчивым к блокировкам. Он использует технологию XTLS для шифрования и аутентификации, обеспечивая высокую скорость и низкую задержку.
Можно ли использовать Marzban без домена и SSL-сертификата?
Да, для VLESS Reality домен и SSL-сертификат не нужны. Reality использует публичные сайты для маскировки, поэтому достаточно только IP-адреса сервера. Однако для доступа к панели управления по HTTPS потребуется домен и сертификат, если вы не хотите использовать SSH-туннель.
Какой клиент лучше всего подходит для VLESS Reality?
Для Windows рекомендуется v2rayN или Hiddify, для Android — v2rayNG или NekoBox, для iOS — Streisand или Shadowrocket. Все эти клиенты поддерживают VLESS Reality. Hiddify является универсальным решением для всех платформ и прост в использовании.
Что делать, если подключение к серверу не работает?
Проверьте: 1) открыт ли порт 443 в файрволе сервера; 2) правильно ли указаны Private key и shortId в конфигурации; 3) выбран ли правильный inbound и flow (xtls-rprx-vision); 4) не блокирует ли ваш интернет-провайдер протокол. Если все настроено верно, попробуйте перезапустить Marzban командой marzban restart и проверьте логи marzban logs.
Как обезопасить панель управления Marzban от несанкционированного доступа?
Рекомендуется не открывать порт 8000 в интернет, а использовать SSH-туннель для доступа к панели. Также установите сложный пароль для администратора, настройте SSH-ключи и отключите вход по паролю. Можно дополнительно настроить Fail2ban и файрвол UFW, разрешив только необходимые порты.
Можно ли использовать Marzban для коммерческого VPN-сервиса?
Да, Marzban поддерживает создание множества пользователей, ограничение трафика и срока действия, а также несколько узлов для масштабирования. Это позволяет организовать коммерческий VPN-сервис с веб-панелью для управления клиентами. Однако убедитесь, что вы соблюдаете законодательство вашей страны и правила хостинг-провайдера.