Neonode.cc - Mind space blog
open main menu
Part of series: MarzbanGuide

Marzban 0.7.0

/ 6 min read

Данная инструкция подходит только на тот случай, если вы впервые устанавливаете 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)

📖 Документация

  • Шаблоны для V2ray и sing-box (1f0d8dd)
  • Добавлены поддерживаемые сети для sing-box и v2ray (4209ef4)

🏡 Технические задачи

  • 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 уже приносит, или планирует приносить хороший доход, тогда вам нужно обеспечить достаточный уровень надежности вашей инфраструктуры.

  1. Не нужно экономить на хороших и надежных серверах
  2. Не нужно экономить на ресурсах для хорошей нагрузки
  3. Не нужно экономить на стоимости ваш серверов для НОД - стабильность подключений и качество связи - это обязательное условия роста вашего “бизнеса”/“проекта”
  4. Брать сервера под Мэйн в идеале нужно у крупных провайдеров, ориентированных на корпоративных клиентов. Примеры: Selectel, Cloud.Vk.Com, Yandex Cloud, Cloud.ru и др.. Также можно рассматривать крупных провайдеров типа: AWS, Vultr, Kamatera, Hetzner, но опять же - тарифы выбираем с выделенными ядрами, не Шэред, и главное - должна быть 100% гарантия что ваш сервер не удалят и вы сможете всегда его оплачивать.
  5. Ситуации с сайтами могут быть самыми разными, начиная от ДДоС атак, заканчивая наплывом клиентов. Но конечно про экономику забывать не нужно.
  6. Чем лучше провайдер и каналы - тем довольнее будут клиенты. Не нужно стараться дать им 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/