НейроАгент

Как получить ключ пользователя CLI в Marzban: решение ошибки

Решение проблемы с получением ключа пользователя в Marzban CLI. Узнайте правильные команды, определение версии и устранение ошибки 'reverse'.

Вопрос

Как получить ключ пользователя через CLI в Marzban?

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

marzban cli subscription get-config -u user -f v2ray --base64

я получаю структуру JSON файла и ошибку:

TypeError: generate_subscription() missing 1 required positional argument: 'reverse'

Сам ключ пользователя не получается.

Команда marzban update якобы обновляет версию, но не указывает, на какую именно версию обновляется. Команда marzban status выводит только “запущен”, не показывая версию Marzban. Версия core - 25.8.3.

Как правильно получить ключ пользователя через CLI в Marzban и как определить текущую версию Marzban?

НейроАгент

Чтобы получить ключ пользователя через CLI в Marzban, используйте правильную команду и настройте необходимые параметры. Ошибка с отсутствующим аргументом ‘reverse’ обычно связана с версионными несовместимостями или неправильной конфигурацией.

Для получения ключа пользователя выполните команду:

marzban cli subscription get-config -u username -f v2ray

Чтобы определить текущую версию Marzban, выполните:

marzban --version

Если команда --version не работает, проверьте файлы установки или выполните:
``<arg_value>

Contents

Основные команды Marzban CLI для получения ключей пользователей

Для получения ключа пользователя через CLI в Marzban следует использовать команду get-config в разделе subscription. Основной синтаксис команды:

marzban cli subscription get-config -u [имя_пользователя] -f [формат]

Где:

  • -u или --username - имя пользователя
  • -f или --format - формат вывода (v2ray, clash)

Пример базовой команды:

marzban cli subscription get-config -u myuser -f v2ray

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

Решение ошибки с аргументом ‘reverse’

Ошибка TypeError: generate_subscription() missing 1 required positional argument: 'reverse' обычно возникает из-за:

  1. Несовместимости версий - в более новых версиях Marzban изменилась структура аргументов функции генерации подписки
  2. Отсутствующих обязательных параметров окружения - некоторые переменные окружения должны быть настроены корректно

Чтобы решить эту проблему:

  1. Обновите Marzban до последней версии:
bash
sudo marzban update
  1. Проверьте и настройте переменные окружения. Убедитесь, что в файле /opt/marzban/.env установлены необходимые переменные, особенно:

    • XRAY_SUBSCRIPTION_URL_PREFIX - префикс URL для подписок
    • SUBSCRIPTION_DOMAIN - домен для подписок
  2. Используйте альтернативный подход с сохранением в файл:

bash
marzban cli subscription get-config -u myuser -f v2ray -o config.json
  1. Если проблема persists, попробуйте использовать команду для получения ссылки на подписку вместо прямой конфигурации:
bash
marzban cli subscription get-link -u myuser

Определение версии Marzban

Поскольку команда marzban status не показывает версию, а marzban update не указывает целевую версию, используйте следующие методы:

  1. Команда версии (если доступна):
bash
marzban --version
  1. Проверка через pip (если установлен через pip):
bash
pip show marzban
  1. Проверка файлов установки:
bash
ls -la /opt/marzban/
cat /opt/marzban/requirements.txt  # может содержать версию
  1. Проверка через git (если установлен из исходников):
bash
cd /opt/marzban
git log --oneline -1
  1. Проверка конфигурации:
bash
cat /opt/marzban/.env | grep -E "(VERSION|TAG)"

Версия Xray core (25.8.3) указывается отдельно от версии Marzban GUI. Для полной совместимости убедитесь, что версия Marzban соответствует вашей версии Xray core.

Дополнительные параметры и форматы

Marzban CLI поддерживает различные форматы вывода и дополнительные параметры:

Поддерживаемые форматы:

  • v2ray - формат для V2Ray клиентов
  • clash - формат для Clash клиентов
  • base64 - кодирование в Base64 (добавляется через --base64)

Команда с сохранением в файл:

bash
marzban cli subscription get-config -u myuser -f v2ray -o v2ray_config.json

Команда с кодированием Base64:

bash
marzban cli subscription get-config -u myuser -f v2ray --base64

Просмотр всех доступных прокси пользователя:

bash
marzban cli subscription get-proxies -u myuser

Получение ссылки на подписку:

bash
marzban cli subscription get-link -u myuser

Важно: Для работы команды get-link необходимо установить переменную окружения XRAY_SUBSCRIPTION_URL_PREFIX. Добавьте её в файл /opt/marzban/.env:

XRAY_SUBSCRIPTION_URL_PREFIX=https://sub.yourdomain.com/sub/

Устранение неполадок и рекомендации

Частые проблемы и решения:

  1. Ошибка “missing 1 required positional argument: ‘reverse’”:

    • Обновите Marzban до последней версии
    • Проверьте совместимость версий Marzban и Xray core
    • Убедитесь, что все переменные окружения настроены корректно
  2. Пустой вывод или ошибка аутентификации:

    • Проверьте права доступа пользователя
    • Убедитесь, что пользователь существует
    • Проверьте подключение к API Marzban
  3. Некорректный формат вывода:

    • Убедитесь, что выбранный формат поддерживается вашим клиентом
    • Проверьте кодировку вывода

Рекомендации по обновлению:

  1. Запустите обновление:
bash
sudo marzban update
  1. Перезапустите сервис:
bash
sudo marzban restart
  1. Проверьте статус:
bash
sudo marzban status
  1. Проверьте работу CLI:
bash
marzban cli --help

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

Пример 1: Получение конфигурации пользователя в V2Ray формате:

bash
marzban cli subscription get-config -u testuser -f v2ray

Вывод будет содержать JSON конфигурацию с настройками прокси.

Пример 2: Сохранение конфигурации в файл:

bash
marzban cli subscription get-config -u testuser -f v2ray -o ~/v2ray_config.json

Пример 3: Получение конфигурации в Clash формате:

bash
marzban cli subscription get-config -u testuser -f clash

Пример 4: Получение подписки в Base64 формате:

bash
marzban cli subscription get-config -u testuser -f v2ray --base64

Пример 5: Проверка существования пользователя:

bash
marzban cli user list | grep testuser

Если пользователь не найден, сначала создайте его через веб-интерфейс или CLI:

bash
marzban cli user create --username testuser --data-limit 100 --expire 30

Sources

  1. Marzban CLI Official Documentation
  2. Neonode.cc Marzban CLI Guide
  3. GitHub Marzban CLI Source Code
  4. Marzban Configuration Documentation
  5. Marzban Subscription Documentation
  6. Marzban GitHub Repository
  7. Marzban Changelog

Conclusion

  • Для получения ключа пользователя через CLI используйте команду marzban cli subscription get-config -u [имя] -f [формат]
  • Ошибка с аргументом ‘reverse’ обычно связана с версионными несовместимостями - обновите Marzban до последней версии
  • Чтобы определить версию Marzban, попробуйте команды marzban --version, pip show marzban или проверьте файлы установки
  • Настройте необходимые переменные окружения, особенно XRAY_SUBSCRIPTION_URL_PREFIX для работы с подписками
  • Сохраняйте конфигурации в файлы с помощью параметра -o [файл] для удобства использования
  • Проверяйте совместимость версий Marzban и Xray core для стабильной работы

Если проблемы сохраняются, обратитесь к официальной документации Marzban или сообществу для получения помощи с конкретной версией и конфигурацией.