Skip to content

Добавление узла ​

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

Окно установки узла: вкладка «Вручную» с командой установки и вкладка «Автоматически (SSH)»Окно установки узла: вкладка «Вручную» с командой установки и вкладка «Автоматически (SSH)»

Перед началом ​

  • Linux-сервер с systemd или с Docker. Поддерживаются amd64, arm64, armv5/v6/v7, 386, s390x и riscv64.
  • root или пользователь с sudo.
  • TCP-порт 62050, доступный панели по IPv4 или IPv6.
  • Порты, которые будут использовать инбаунды узла. Их вы выберете в панели позже.

Узлу не нужен собственный лицензионный ключ. Сколькими узлами управляет панель, решает её лицензия.

Установка командой из панели ​

  1. Откройте Узлы и добавьте узел. Укажите Название и Адрес — IP или домен, по которому панель до него достаёт. Порт оставьте 62050.

  2. Откройте у узла Установка. Запуск установки сначала сохраняет узел.

  3. На вкладке Вручную скопируйте команду. Она выглядит так:

    bash
    curl -fsSL https://PANEL/install-node.sh | bash -s -- --panel PANEL --token TOKEN
  4. Выполните её от root на сервере узла.

Панель на собственном самоподписанном сертификате

Мастер настройки запускает панель с самоподписанным сертификатом, который curl на узле отвергает. Пока у панели нет сертификата от Let's Encrypt или другого ACME-центра (Сертификаты), добавьте -k к curl и --insecure к скрипту:

bash
curl -fsSLk https://PANEL/install-node.sh | bash -s -- --panel PANEL --token TOKEN --insecure

Панель на простом HTTP вообще не может использовать эту команду; вместо неё используйте автоматическую установку по SSH.

Меньше чем за минуту она:

  1. скачивает бинарный файл узла с вашей панели, а не из интернета;
  2. обменивает токен на сертификат панели. Токен работает один раз и имеет срок действия;
  3. создаёт собственный сертификат узла;
  4. записывает /opt/nexora-node/config.json и службу и запускает её.

Затем подключается панель. При первом подключении она запоминает сертификат узла и дальше принимает только его, а узел принимает только панель. Никто другой не может пользоваться портом 62050.

На странице узлов у узла появляется статус connected. Пока у него нет шаблона, он ничего не обслуживает: откройте узел и выберите шаблон в поле шаблона. Первый шаблон создаётся на странице Первый пользователь за десять минут.

Автоматическая установка по SSH ​

Панель может сделать всё это сама. В окне Установка узла перейдите на Автоматически (SSH):

  1. Укажите SSH-хост, SSH-порт, Пользователь и Пароль или Приватный ключ. Пользователю, отличному от root, нужен sudo.
  2. Нажмите Определить. Панель сообщит систему сервера, архитектуру, есть ли там systemd или Docker и что уже установлено, а затем покажет свой план.
  3. Нажмите Установить. Вывод приходит в реальном времени.

Этот способ загружает всё по SSH-соединению: установщик, сертификат панели и бинарный файл узла. Серверу не нужен ни маршрут до панели, ни токен.

Учётные данные используются только для этого соединения и не сохраняются. Отметьте Разрешить ключ панели на этом сервере, чтобы панель потом входила своим ключом и обновлениям не нужен был пароль. Этот доступ убирается пунктом Отозвать ключ панели в меню узла.

При первом подключении панель запоминает SSH-ключ хоста. Если позже сервер покажет другой ключ, панель откажется подключаться и сообщит об этом. Если вы действительно заменили машину, используйте Перенести на другой сервер в меню узла.

Файрвол ​

Порт 62050 принимает только панель, но держать его открытым для всех нет причин:

bash
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, затем:

bash
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); где нужно, панель сама добавит скобки в ссылках.

Дальше ​

Текст и изображения — CC BY 4.0.