Marzban 0.7.0
Данная инструкция подходит только на тот случай, если вы впервые устанавливаете Marzban.
Изменения в Marzban начиная с версии 0.7.0
Последние изменения ждали релиза несколько месяцев.
Здесь же применились и последние требования к безопасности панели и подключений выдвинутые и сформулированные командой Xray.
Подробные изменения
🚀 Улучшения
- telegramBot: Добавлено время ожидания для onhold (3c2bbed)
- Добавлена поддержка списка адресов в hosts (e80e119)
- subscription: Добавлен шаблон настроек для Clash (94a3f28)
- subscription: Синхронизирован splithttp с версией 1.8.23 (d0c16a1)
- Переменные SQLALCHEMY_POOL_SIZE и SQLIALCHEMY_MAX_OVERFLOW (cea7f2f)
- Переменные для настройки интервала задач: JOB_CORE_HEALTH_CHECK_INTERVAL, JOB_RECORD_NODE_USAGES_INTERVAL, JOB_RECORD_USER_USAGES_INTERVAL, JOB_REVIEW_USERS_INTERVAL, JOB_SEND_NOTIFICATIONS_INTERVAL (2d50bf9)
- Добавлен выбор узла для логов в CoreSettingsModal.tsx (b4dbba7)
- Добавлена функция дублирования хоста в HostsDialog (48b91c2)
- Добавлены иконки вверх и вниз для изменения порядка хостов (1a3c0a0)
- Добавлен белый список IP/хостов для отключения уведомлений о входе (b6d2658)
- api: Добавлена возможность расчета потребления для администраторов (c2c98b7)
- Добавлен шум в hosts (7d738cd)
- Добавлена поддержка новых переменных для splithttp (2a7636a)
- Добавлена поддержка протокола Transport RAW (8942abe)
🩹 Исправления
- Принудительное требование SSL для публичного доступа XTLS/Xray-core#3884 (e60e54f)
- subscription: Отправка корректной сортировки для разных версий v2rayng (5c5503d)
- Исправлена ошибка редактирования протокола пользователя в Telegram-боте (ef82864)
- Исправлена ошибка сброса использования у пользователя в Telegram-боте (92fdeef)
- Добавлена документация для работы с БД (48a5ad2)
- Исправлена ошибка ссылок в Telegram-боте, когда on_hold равно null (d69fac6)
- subscription: Удалён user-agent для sing-box и clash (ff03e3a)
- Единый строковый порт для v2ray-json (8f0c909)
- Небольшие исправления статуса on_hold в telegram-bot (cf98e95)
- Перехват ошибки, если не найден шаблон настроек (582b2bb)
- config: Повреждение данных hosts (6483e42)
- Обновление документации статуса пользователя (3fb46c1)
- Исправление некоторых багов на фронтенде (2f2cbd1)
- subscription: Разделение настроек http и none header (e4bd603)
- subscription: Разделение настроек http и h2 (2260d28)
- subscription: Мульти-режим для grpc (a2ba2c0)
- subscription: Singbox ws игнорирует wsSettings (c02ef96)
- subscription: Использование неправильной переменной в настройках (70dfb6d)
- subscription: Предотвращение использования noneSettings как настройки безопасности (87dca23)
- Неверная конфигурация как внешняя (c63f95a)
- subscription: Предотвращение создания network_setting для reality (fb77570)
- subscription: Временное отключение shuffle, чтобы избежать отправки неверных данных (e7d6756)
- splithttp: Значение по умолчанию для splithttp (aa664a2)
- NOTIFY_DAYS_LEFT (530649d)
- Ошибка Pydantic в user.links (25c07ac)
- Удаление RANDOMIZE_SUBSCRIPTION_CONFIGS (cb7aa7a)
- subscription: Использование deepcopy для предотвращения конфликтов (f7d20b6)
- Совместимость Marzban-cli с python3.8 (f3e6197)
- Предотвращение ошибки при входе, если request.client отсутствует (d77eb30)
- subscription: Исправление потока Vless и заголовка tcp (7a0a9ca)
- Отображение подписки в Hiddify в user_subscription (5169810)
- Аннулирование подписки не обновляет конфигурацию xray в Telegram-боте (791a7f2)
- Изменение outbound тега на proxy в пользовательской конфигурации v2ray (eb84a09)
- Предотвращение дублирования имен в clash (e37a3da)
- subscription: Исправление потока Vless и заголовка tcp (efc55ac)
- subscription: Заголовок tcp без tls и пустой тип заголовка (241d823)
- Исправление некоторых багов api (a10745d)
- Предотвращение передачи неожиданных переменных для генерации подписки (f1395ee)
- Избежание создания словаря при каждом запросе и удаление внешней проверки (47d8336)
- Неправильное написание ALLOWED_ORIGINS (f0a7e21)
- Проблема с Node_user_usages (68dab4c)
- Ошибка Node_usage (1332c7a)
- Ошибочный рефакторинг (использование неверного админа по полю) (d7281c2)
- Рефакторинг функции validate_dates для избежания дублирования кода (aea3273)
- Telegram-бот не отправляет результат лимита пользователя (0ebbff3)
- db: Миграция настроек шума (#1352)
- hosts: Проверка наличия шума (dcc9fd9)
- subscription: Удаление поля network для sing-box (f9c15a1)
- Subscription: Корректное создание списка proxy remarks для конфигурации clash (#1357)
- config: Http и allyes (bc81290)
- Clash-meta неожиданный аргумент ‘remark’ (9d49a11)
- subscription: Транспорт H3 (a930ed4)
- Добавлен DASHBOARD_PATH как базовый URL vites в dev-среде (327e79a)
- Циклический импорт (75bcdd9)
💅 Рефакторинг
- api: ⚠️ Добавлен роутер к API (cf6d8ac)
- admin-endpoints: ⚠️ Рефакторинг админских точек доступа и добавлены две новые зависимости (e87e15b)
- node-endpoints: ⚠️ Рефакторинг точек доступа узлов и добавлены две новые зависимости для узлов (cf4472b)
- system-endpoints: ⚠️ Рефакторинг системных точек доступа (d631db5)
- core-endpoints: ⚠️ Рефакторинг основных точек доступа (ee341cb)
- usertemplates-endpoints: ⚠️ Рефакторинг точек доступа шаблонов пользователей (6918f7f)
- home-endpoints: ⚠️ Рефакторинг точек доступа главной страницы (36532a9)
- sub-endpoints: ⚠️ Рефакторинг точек доступа подписок (215bf32)
- user: ⚠️ Рефакторинг API пользователя и исправление функции validate_dates (b551447)
📖 Документация
🏡 Технические задачи
- subscription: Использование union вместо динамического типа (d19f567)
- subscription: Настраиваемые параметры конфигурации для v2ray-json и sing-box (68a7936)
- subscription: Использование fsring вместо if else (9b6741a)
- subscription: Использование deepcopy вместо copy (d5822b7)
- Исправление значения переменной env (a287147)
- Удаление MASTER_SERVER_USAGE_RATIO (8695b8c)
- Удаление CSS класса Box Shadow, изменение “Host” на “Master” в CoreSettingsModal.tsx (eac8f06)
- Изменение названия белого списка входа (ae5b6a6)
- Перенос маршрута главной страницы в модуль роутеров (d87fee5)
- subscription: Создание исходящих соединений для Dialer (30201ba)
⚠️ Критические изменения
- api: ⚠️ Добавлен роутер к API (cf6d8ac)
- admin-endpoints: ⚠️ Рефакторинг админских точек доступа и добавлены две новые зависимости (e87e15b)
- node-endpoints: ⚠️ Рефакторинг точек доступа узлов и добавлены две новые зависимости для узлов (cf4472b)
- system-endpoints: ⚠️ Рефакторинг системных точек доступа (d631db5)
- core-endpoints: ⚠️ Рефакторинг основных точек доступа (ee341cb)
- usertemplates-endpoints: ⚠️ Рефакторинг точек доступа шаблонов пользователей (6918f7f)
- home-endpoints: ⚠️ Рефакторинг точек доступа главной страницы (36532a9)
- sub-endpoints: ⚠️ Рефакторинг точек доступа подписок (215bf32)
- user: ⚠️ Рефакторинг API пользователя и исправление функции validate_dates (b551447)
Подробнее тут: https://github.com/Gozargah/Marzban/releases/tag/v0.7.0
Моя философия выбора сервера для аренды
Философия
Если ваш сервер Marzban уже приносит, или планирует приносить хороший доход, тогда вам нужно обеспечить достаточный уровень надежности вашей инфраструктуры.
- Не нужно экономить на хороших и надежных серверах
- Не нужно экономить на ресурсах для хорошей нагрузки
- Не нужно экономить на стоимости ваш серверов для НОД - стабильность подключений и качество связи - это обязательное условия роста вашего “бизнеса”/“проекта”
- Брать сервера под Мэйн в идеале нужно у крупных провайдеров, ориентированных на корпоративных клиентов. Примеры: Selectel, Cloud.Vk.Com, Yandex Cloud, Cloud.ru и др.. Также можно рассматривать крупных провайдеров типа: AWS, Vultr, Kamatera, Hetzner, но опять же - тарифы выбираем с выделенными ядрами, не Шэред, и главное - должна быть 100% гарантия что ваш сервер не удалят и вы сможете всегда его оплачивать.
- Ситуации с сайтами могут быть самыми разными, начиная от ДДоС атак, заканчивая наплывом клиентов. Но конечно про экономику забывать не нужно.
- Чем лучше провайдер и каналы - тем довольнее будут клиенты. Не нужно стараться дать им 30 стран на выбор, уверяю вас, они не оценят. Отталкивайтесь от географии ваших клиентов. Для РФ это сервер в Европе. ОООЧень редко кому нужна локация в США.. и тем более где нибудь в Чили или Австралии.. Нахрена им?
Поэтому, провайдер должен быть стабильный, а компания иностранная.
Своими рекомендациями я уже поделился в канале VPS Insider (но по причине отсутствия заинтересованности я перестал его поддерживать, оставив всю историю там) вступить можно по ссылке за 170 Звёзд ТГ: https://t.me/+lQBQTGym57hmOTAy
- Скорость должна быть 10Гбс - минимум 2-5Гбс.
- Трафика от 3-5Тб (суммарного). Конечно лучше безлимит, но качественный сервер обычно имеет лимитированный трафик. Но итоговый вариант будет зависит от вашего суммарного трафика.
Иметь сервер со скоростью 10Гб/с, но при этом 1 ядро и 1 Гб памяти - вы никогда не получите максимальную скорость. Уже на стабильной нагрузке 1Гб/с у вас 1 ядро будет работать под 100%, и будет потеря трафика, скорости и клиентов.
Аренда сервера
Возьмите сервер здесь: Procloud.ru
- Локация: Москва. (либо любая другая по вашему желанию)
- ОС: Ubuntu 24.04.
- ЦП: 2 ядра.
- Память: 4 Гб.
- Диск: 30 Гб.
Установка
На момент написания статьи, мой PR к скриптам установки находится на рассмотрении: Marzban PR
Скрипт установки:
sudo bash -c "$(curl -sL https://github.com/DigneZzZ/Marzban-scripts-beta/raw/main/marzban.sh)" @ install --database mariadb
На выходе вы получите установленный Marzban, но без домена.
Создайте администратора для входа
sudo marzban cli admin create --sudo
Привязка домена в CloudFlare.
После того как вы выберете себе и приобрете домен, его нужно где то захостить, и привязать к серверу.
лучшим вариантом для этого будет CloudFlare.
Выпуск сертификата
Для этих задач, отличным решением будет Acme.sh
Выпустите его на сервере для вашего домена:
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone \
-d DOMAIN \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem
Вместо DOMAIN укажите свой приобретенный и привязанный домен к вашему серверу.
Скорректируйте файл .env
Откройте файл .env, командой:
marzban edit-env
Измените порт на 443
UVICORN_PORT = 443
Добавьте записи к полученным сертификатам
UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem"
UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem"
На этом впринципе всё
Теперь вам останется добавить конфигурацию в Xray и начать пользоваться.
Расширенная инструкция и детальные описания.
Полная версия моей статьи со всеми детальными инструкциями, настройками и вариантами установки (в том числе как спрятать за Reverse Proxy) - я размещаю в клубе Marzban на форуме: https://openode.xyz
Чтобы получить туда доступ, нужно сперва приобрести подписку: https://openode.xyz/subscriptions/
С анонсами моих статьей можно ознакомиться здесь: https://openode.xyz/forum/90-marzban/
- Наше сообщество Openode.XYZ OpeNode.xyz
- Aeza VPS (+15% к пополнению) Aeza.net
- Лучший Евро-хостер VPS (+1 месяц бесплатно на 100$) Kamatera.com
- VPS hosting - 4vps.su (-10% скидка!) 4VPS.su
- TG Channel TG-Channel Neonode.cc