Перейти к содержимому

Узлы

Введение

Marzban Node - это приложение на Python, предоставляющее сервис для управления экземпляром ядра Xray. Приложение разработано с учетом требований безопасности и использует взаимную аутентификацию самоподписанными SSL-сертификатами, для связи между панелью и ее клиентами(узлами).

В зависимости от Вашего выбора, приложение может использовать или RPyC для удаленных вызовов процедур, или REST, используя стандартные HTTP-методы (GET, POST, PUT, DELETE и т.д.) для выполнения различных операций.

С помощью этого руководства вы можете создать узел Marzban Node на дополнительном сервере и подключить его к панели.

Используемые файлы:

  • Директория~/Marzban-node/
    • .env
    • docker-compose.yml

Установка

Получение ключа

  1. Открываем настройка узлов screenshot 2. Переходим в меню добавление нового узла 3. Скачиваем сертификат screenshot 4. Или, копируем его значение из меню. screenshot

Теперь переходим на наш узел.

Настройка узла

  1. Обновляем сервер

    Окно терминала
    sudo apt-get update && sudo apt-get upgrade
  2. Устанавливаем нужный софт

    Окно терминала
    sudo apt install socat -y && sudo apt install curl socat -y && apt install git -y
  3. Клонируем репозиторий

    Окно терминала
    git clone https://github.com/Gozargah/Marzban-node
  4. Входим в рабочую папку узла

    Окно терминала
    cd Marzban-node
  5. Устанавливаем Docker

    Окно терминала
    sudo curl -fsSL https://get.docker.com | sh
  6. Создаем папку, куда поместим наш сертификат

    Окно терминала
    sudo mkdir -p /var/lib/marzban-node/
  7. Копируем ранее полученный ключ

    Окно терминала
    sudo nano /var/lib/marzban-node/ssl_client_cert.pem

    screenshot

  8. Редактируем файл docker-compose.yml

    Окно терминала
    sudo nano docker-compose.yml

    приведя его к такому виду:

    ~/Marzban-node/docker-compose.yml
    services:
    marzban-node:
    image: gozargah/marzban-node:latest
    restart: always
    network_mode: host
    volumes:
    - /var/lib/marzban-node:/var/lib/marzban-node
    environment:
    SSL_CLIENT_CERT_FILE: "/var/lib/marzban-node/ssl_client_cert.pem"
    SERVICE_PROTOCOL: rest

Доступные переменные окружения

ПеременнаяОписаниеЗначение по умолчанию
SERVICE_PORTСервисный порт62050
XRAY_API_PORTПорт API xray-core62051
XRAY_EXECUTABLE_PATHПуть к исполняемым файлам xray/usr/local/bin/xray
XRAY_ASSETS_PATHПуть к ассетам xray/usr/local/share/xray
SSL_CERT_FILEСертификат узла для связи с панелью/var/lib/marzban-node/ssl_cert.pem
SSL_KEY_FILEКлюч сертификата для связи с панелью/var/lib/marzban-node/ssl_key.pem
SSL_CLIENT_CERT_FILEСертификат панели для связи с узлом/var/lib/marzban-node/ssl_client_cert.pem
SERVICE_PROTOCOLСервисный протоколrpyc
DEBUGВывод отладочной информацииfalse
  1. Запускаем узел

    Окно терминала
    sudo docker compose up -d

Теперь вернемся в основную панель

Настройка панели

  1. Открываем настройки узлов

    screenshot

  2. Заполняем данные узла:

    • Name - Имя узла;
    • Adress - IP адрес узла.
    • Port - Оставляем по умолчанию, если не изменяли их.

    Оставляем галку, если хотим добавить узел в качестве нового хоста во все входящие

  3. Жмем Добавить узел Если Вы не нажали галку добавить узел в качестве нового хоста во все входящие, Вы всегда сможете добавить узел в любой inbound, после ее подключения, просто указав ее адрес (IP или домен/суб-домен)

Дополнительные советы

Совет 1

Если для лучшего управления узлами вы хотите назначить каждому узлу отдельный inbound, вам нужно добавить новый inbound с уникальным тегом и портом в настройках ядра (Core Settings).

Совет 2

Если вы планируете использовать конфигурации с TLS, вам нужно получить сертификат для вашего суб-домена узла. Кроме того, вместо нескольких сертификатов для разных субдоменов, вы можете получить один Wildcard сертификат для основного домена, чтобы использовать его для всех субдоменов.

Совет 3

Файл docker-compose.yml чувствителен к выравниванию строк и пробелам. Для проверки правильности настройки вы можете использовать инструмент yamlchecker.

Совет 4

Если вы внесли изменения в файл docker-compose.yml, перезапустите узлы с помощью следующей команды:

Окно терминала
cd ~/Marzban-node
docker compose down --remove-orphans; docker compose up -d