#
Настройки узла
Если Вы не планируете использовать дополнительные узлы (например для расширения географии Вашего сервиса), можете пропустить данный шаг.
Узел - продолжение вашего сервиса и расширение существующей, центральной панели, дублировать установку панели на сервер узла не нужно.
#
Введение
Marzban Node - это приложение на Python, предоставляющее сервис для управления экземпляром ядра Xray. Приложение разработано с учетом требований безопасности и использует взаимную аутентификацию самоподписанными SSL-сертификатами, для связи между панелью и ее клиентами(узлами).
В зависимости от Вашего выбора, приложение может использовать или RPyC для удаленных вызовов процедур, или REST, используя стандартные HTTP-методы (GET, POST, PUT, DELETE и т.д.) для выполнения различных операций.
С помощью этого руководства вы можете создать узел Marzban Node на дополнительном сервере и подключить его к панели.
#
Установка
Обратите внимание, что и Ваша панель и узел должны быть обновлены до последних latest версий
#
Получение ключа
Открываем настройка узлов и переходим в меню добавление нового узла.
Скачиваем сертификат в файловую систему вашего устройства по нажатию на кнопку скачать сертификат
Теперь переходим на наш узел.
#
Настройка узла
Обновляем сервер
sudo apt-get update && sudo apt-get upgrade
Устанавливаем нужный софт
sudo apt install socat -y && sudo apt install curl socat -y && apt install git -y
Клонируем репозиторий
git clone https://github.com/Gozargah/Marzban-node
Входим в рабочую папку узла
cd Marzban-node
Устанавливаем Docker
sudo curl -fsSL https://get.docker.com | sh
Создаем папку, куда поместим наш сертификат
sudo mkdir -p /var/lib/marzban-node/
Теперь нам необходимо разместить ключ центальной панели на узле, для этого мы можем скопировать ранее полученный ключ по пути /var/lib/marzban-node/ssl_client_cert.pem
если Вы скопировали значение ключа ранее просто вставив его в нужный файл.
nano /var/lib/marzban-node/ssl_client_cert.pem
Обьявляем в docker-compose.yml файле нашего проекта, о используемых сертификатах, открыв его через nano
nano docker-compose.yml
приведя его к такому виду:
В случае, если Вы хотите вернутся к старому RPC, вместо нового REST, не устанавливайте значение SERVICE_PROTOCOL: rest
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
После этого, теперь, Вы сможете запустить узел.
docker compose up -d
Теперь вернемся в основную панель
#
Настройка панели
Открываем настройки узлов
Заполняем данные узла:
- Name - Имя узла;
- Adress - IP адрес узла.
- Port - Оставляем по умолчанию, если не изменяли их.
Оставляем галку, если хотим добавить узел в качестве нового хоста во все входящие
Жмем Добавить узел
Если Вы не нажали галку добавить узел в качестве нового хоста во все входящие, Вы всегда сможете добавить узел в любой inbound, после ее подключения, просто указав ее адрес (IP или домен/суб-домен)
#
Дополнительные советы
Совет первый Если для лучшего управления узлами вы хотите назначить каждому узлу отдельный inbound, вам нужно добавить новый inbound с уникальным тегом и портом в настройках ядра (Core Settings).
Совет второй Если вы планируете использовать конфигурации с TLS, вам нужно получить сертификат для вашего суб-домена узла. Кроме того, вместо нескольких сертификатов для разных субдоменов, вы можете получить один Wildcard сертификат для основного домена, чтобы использовать его для всех субдоменов.
Совет третий
Файл docker-compose.yml чувствителен к выравниванию строк и пробелам. Для проверки правильности настройки вы можете использовать инструмент yamlchecker.
Совет четвертый
Если вы внесли изменения в файл docker-compose.yml, перезапустите узлы с помощью следующей команды:
cd ~/Marzban-node
docker compose down --remove-orphans; docker compose up -d