Marzban и VLESS Reality: полное руководство по настройке защищенного прокси-сервера

Узнайте, как установить Marzban и настроить VLESS Reality для безопасного и обходного интернета. Подробное руководство для начинающих и опытных пользователей.

Что такое 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.

Импорт конфигурации:

  1. Скопируйте ссылку vless:// из панели Marzban (или отсканируйте QR-код).
  2. В клиенте выберите «Импорт из буфера обмена» или «Добавить конфигурацию».
  3. Вставьте ссылку и сохраните.
  4. Подключитесь и проверьте доступ к интернету.

Если ссылка содержит 127.0.0.1 вместо вашего IP, замените его на реальный IP сервера.

Проверка подключения:

Откройте любой сайт, например, google.com. Если он загружается, все работает. Если нет, проверьте:

  • Открыт ли порт 443 в файрволе сервера
  • Правильно ли указаны Private key и shortId
  • Выбран ли правильный inbound и flow

Расширенные настройки: домен, HTTPS-панель и дополнительные узлы

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

Настройка домена и HTTPS

Если вы хотите получить доступ к панели через HTTPS-домен (например, panel.example.com), выполните следующие шаги:

  1. Приобретите домен и настройте A-запись, указывающую на IP вашего сервера.
  2. Установите Caddy (или используйте acme.sh) для автоматического получения SSL-сертификата.
  3. Измените порт Reality с 443 на 8443, чтобы освободить 443 для Caddy.
  4. Настройте Caddyfile для проксирования запросов к Marzban через Unix-сокет.
  5. Обновите .env файл, указав UVICORN_UDS и XRAY_SUBSCRIPTION_URL_PREFIX.

Это позволит вам открывать панель по адресу https://panel.example.com/dashboard/ и использовать HTTPS для подписок.

Добавление дополнительных узлов

Для масштабирования вы можете подключить несколько серверов (нод) к одной панели. Для этого:

  1. В панели перейдите в раздел «Узлы» и добавьте новый узел, указав его IP и порт.
  2. Скопируйте ключ аутентификации.
  3. На новом сервере установите Marzban-node и вставьте ключ в файл /var/lib/marzban-node/ssl_client_cert.pem.
  4. Запустите узел командой docker compose up -d.

Теперь вы можете распределять пользователей между узлами, увеличивая общую пропускную способность.

Безопасность и обслуживание: резервное копирование, обновления и защита

После настройки сервера важно обеспечить его безопасность и регулярное обслуживание.

Резервное копирование

Регулярно создавайте резервные копии панели:

marzban backup

Это создаст архив с базой данных, конфигурациями и сертификатами. Храните резервные копии в надежном месте, не публикуйте их в открытом доступе.

Обновление

Периодически обновляйте Marzban и Xray-core:

marzban backup
marzban update
marzban core-update

После обновления проверьте работоспособность панели и подключений.

Защита SSH

Настройте SSH-ключи и отключите вход по паролю:

  1. Сгенерируйте ключ на локальном компьютере: ssh-keygen -t ed25519
  2. Скопируйте публичный ключ на сервер: ssh-copy-id root@ваш_IP
  3. В файле /etc/ssh/sshd_config установите PasswordAuthentication no и PermitRootLogin prohibit-password.
  4. Перезапустите 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-сервис с веб-панелью для управления клиентами. Однако убедитесь, что вы соблюдаете законодательство вашей страны и правила хостинг-провайдера.