Добавление узла
Узел — это сервер, к которому подключаются ваши пользователи. У него нет ни своей базы, ни своих настроек: всё ему сообщает панель. Сначала вы добавляете узел в панели, а затем панель даёт команду, которая его устанавливает.


Перед началом
- Linux-сервер с systemd или с Docker. Поддерживаются amd64, arm64, armv5/v6/v7, 386, s390x и riscv64.
- root или пользователь с sudo.
- TCP-порт 62050, доступный панели по IPv4 или IPv6.
- Порты, которые будут использовать инбаунды узла. Их вы выберете в панели позже.
Узлу не нужен собственный лицензионный ключ. Сколькими узлами управляет панель, решает её лицензия.
Установка командой из панели
Откройте Узлы и добавьте узел. Укажите Название и Адрес — IP или домен, по которому панель до него достаёт. Порт оставьте 62050.
Откройте у узла Установка. Запуск установки сначала сохраняет узел.
На вкладке Вручную скопируйте команду. Она выглядит так:
bashcurl -fsSL https://PANEL/install-node.sh | bash -s -- --panel PANEL --token TOKENВыполните её от root на сервере узла.
Панель на собственном самоподписанном сертификате
Мастер настройки запускает панель с самоподписанным сертификатом, который curl на узле отвергает. Пока у панели нет сертификата от Let's Encrypt или другого ACME-центра (Сертификаты), добавьте -k к curl и --insecure к скрипту:
curl -fsSLk https://PANEL/install-node.sh | bash -s -- --panel PANEL --token TOKEN --insecureПанель на простом HTTP вообще не может использовать эту команду; вместо неё используйте автоматическую установку по SSH.
Меньше чем за минуту она:
- скачивает бинарный файл узла с вашей панели, а не из интернета;
- обменивает токен на сертификат панели. Токен работает один раз и имеет срок действия;
- создаёт собственный сертификат узла;
- записывает
/opt/nexora-node/config.jsonи службу и запускает её.
Затем подключается панель. При первом подключении она запоминает сертификат узла и дальше принимает только его, а узел принимает только панель. Никто другой не может пользоваться портом 62050.
На странице узлов у узла появляется статус connected. Пока у него нет шаблона, он ничего не обслуживает: откройте узел и выберите шаблон в поле шаблона. Первый шаблон создаётся на странице Первый пользователь за десять минут.
Автоматическая установка по SSH
Панель может сделать всё это сама. В окне Установка узла перейдите на Автоматически (SSH):
- Укажите SSH-хост, SSH-порт, Пользователь и Пароль или Приватный ключ. Пользователю, отличному от root, нужен sudo.
- Нажмите Определить. Панель сообщит систему сервера, архитектуру, есть ли там systemd или Docker и что уже установлено, а затем покажет свой план.
- Нажмите Установить. Вывод приходит в реальном времени.
Этот способ загружает всё по SSH-соединению: установщик, сертификат панели и бинарный файл узла. Серверу не нужен ни маршрут до панели, ни токен.
Учётные данные используются только для этого соединения и не сохраняются. Отметьте Разрешить ключ панели на этом сервере, чтобы панель потом входила своим ключом и обновлениям не нужен был пароль. Этот доступ убирается пунктом Отозвать ключ панели в меню узла.
При первом подключении панель запоминает SSH-ключ хоста. Если позже сервер покажет другой ключ, панель откажется подключаться и сообщит об этом. Если вы действительно заменили машину, используйте Перенести на другой сервер в меню узла.
Файрвол
Порт 62050 принимает только панель, но держать его открытым для всех нет причин:
ufw allow from 203.0.113.10 to any port 62050 proto tcpЕсли панель достаёт до узла по IPv6, правило должно называть IPv6-адрес панели: правило для IPv4 не покрывает соединение по IPv6.
Порты для пользователей открывайте после того, как дали узлу шаблон и знаете, какие порты он использует.
Параметры установки
Добавьте их в конец команды:
| Параметр | Действие |
|---|---|
--listen ADDR | слушать управляющий порт не на [::]:62050, а на другом адресе |
--method script|docker | установить как службу systemd или как контейнер (по умолчанию — оставить как есть) |
--source panel|github | брать бинарный файл с панели или из публичного выпуска |
--version TAG | установить конкретный выпуск узла (берётся с GitHub) |
--image REF | образ контейнера для --method docker |
--binary-url URL | скачать бинарный файл с другого адреса |
--binary-file PATH | использовать бинарный файл, который уже есть на сервере |
--ca-file PATH | использовать уже лежащий на сервере сертификат панели вместо токена |
--insecure | не проверять TLS-сертификат панели при скачивании |
--detect | показать, что есть на сервере, ничего не меняя |
--uninstall | остановить и удалить узел |
Панель держит бинарные файлы для amd64 и arm64. На других архитектурах установщик берёт узел с GitHub. Если установка останавливается с node binary not provisioned, см. Решение проблем.
Docker
Вкладка Вручную показывает и команду для Docker: ту же команду с --method docker. Установщик сам пишет файл compose и запускает контейнер.
Чтобы вместо этого запустить файл compose узла вручную, сохраните сертификат из поля Сертификат mTLS на той же вкладке как certs/panel_ca.pem, затем:
git clone https://github.com/nexora-vpn/node
cd node
mkdir -p certs
cp /path/to/panel_ca.pem certs/
docker compose up -dКонтейнер узла использует сеть хоста, поэтому порты его инбаундов работают без правки файла compose.
IPv6
Ничего дополнительно не нужно. Узел слушает IPv4 и IPv6 одновременно, а на сервере с выключенным IPv6 переходит на IPv4. Узел только с IPv6-адресом добавляйте с адресом как есть (2001:db8::1); где нужно, панель сама добавит скобки в ссылках.
Дальше
- Первый пользователь за десять минут даёт узлу то, что обслуживать.
- Узлы описывает всё остальное на странице узлов.
- Панель и узел на одном сервере — если узел делит сервер с панелью.
