Установка и настройка Remnawave Node пошагово

Установка узла Remnawave

Remnawave Node — это легковесный контейнер с встроенным Xray-core для подключения к панели Remnawave.

Заметка:

Панель Remnawave не содержит Xray-core внутри, поэтому для полноценного использования Remnawave необходимо установить Remnawave Node на отдельном сервере.

Установка скриптом

Для вашей простоты и удобства, вы можете воспользоваться скриптом установки ноды:

bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh) @ install

В результате установки у вас будет CLI интерфейс управления вызываемый командой remnanode

Скриншот

изображение

Ручная установка

Шаг 1. Создание директории проекта

mkdir /opt/remnanode && cd /opt/remnanode

Шаг 2. Настройка файла .env

nano .env
Информация:

SSL_CERT можно найти в главной панели во вкладке Nodes, на странице Management, после нажатия кнопки Create new node. APP_PORT может быть настроен по желанию, убедитесь, что порт не используется другими сервисами.

APP_PORT=2222

SSL_CERT=CERT_FROM_MAIN_PANEL

Шаг 3. Создание файла docker-compose.yml

nano docker-compose.yml

Вставьте следующее содержимое в файл:

services:
    remnanode:
        container_name: remnanode
        hostname: remnanode
        image: remnawave/node:latest
        restart: always
        network_mode: host
        env_file:
            - .env

Шаг 4. Запуск контейнеров

Запустите контейнеры командой:

docker compose up -d && docker compose logs -f -t

Расширенное использование

Файлы GeoSite

Вы можете подключить дополнительные файлы geosite в директорию /usr/local/share/xray/ в контейнере.

Предупреждение:

Не монтируйте всю папку целиком. Иначе вы перезапишете стандартные файлы geosite от Xray. Монтируйте каждый файл по отдельности.

Добавьте следующие строки в файл docker-compose.yml:

services:
    remnanode:
        container_name: remnanode
        hostname: remnanode
        image: remnawave/node:latest
        restart: always
        network_mode: host
        env_file:
            - .env
        volumes:
            - './zapret.dat:/usr/local/share/xray/zapret.dat'

Использование в конфигурации xray:

  "routing": {
    "rules": [
       // Другие правила
      {
        "type": "field",
        "domain": [
          "ext:zapret.dat:zapret"
        ],
        "inboundTag": [ // Опционально
          "VLESS_TCP_REALITY"
        ],
        "outboundTag": "NOT_RU_OUTBOUND"
      }
      // Другие правила
    ]
  }

Логи узла

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

Предупреждение:

Вы обязательно должны настроить ротацию логов, иначе они заполнят весь диск!

Добавьте следующие строки в файл docker-compose.yml:

services:
    remnanode:
        container_name: remnanode
        hostname: remnanode
        image: remnawave/node:latest
        restart: always
        network_mode: host
        env_file:
            - .env
        volumes:
            - '/var/log/remnanode:/var/log/remnanode'

Использование в конфигурации xray:

  "log": {
      "error": "/var/log/remnanode/error.log",
      "access": "/var/log/remnanode/access.log",
      "loglevel": "warning"
  }

На сервере, где размещен узел, создайте папку /var/log/remnanode:

mkdir -p /var/log/remnanode

Установите logrotate (если еще не установлен):

sudo apt update && sudo apt install logrotate

Создайте файл конфигурации logrotate:

nano /etc/logrotate.d/remnanode

Вставьте следующую конфигурацию logrotate для RemnaNode:

/var/log/remnanode/*.log {
      size 50M
      rotate 5
      compress
      missingok
      notifempty
      copytruncate
  }

Запустите logrotate вручную для тестирования:

logrotate -vf /etc/logrotate.d/remnanode

SSL-сертификаты XRay для узла

Если вы используете сертификаты для конфигурации XRay, необходимо смонтировать их в панель.

Заметка:

Монтируйте папку через Docker volumes, а в конфигурации ссылайтесь на внутренний путь.
Внутри контейнера есть специальная (пустая) папка для сертификатов:
/var/lib/remnawave/configs/xray/ssl/

Добавьте следующие строки в файл docker-compose.yml:

remnawave:
  image: remnawave/backend:latest
  container_name: 'remnawave'
  hostname: remnawave
  restart: always
  ports:
    - '127.0.0.1:3000:3000'
  env_file:
    - .env
  networks:
    - remnawave-network
  volumes:
      - '/opt/remnawave/nginx:/var/lib/remnawave/configs/xray/ssl'
  depends_on:
    remnawave-db:
      condition: service_healthy
    remnawave-redis:
      condition: service_healthy
Заметка:

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

Использование в конфигурации XRay:

  "certificates": [
    {
    "keyFile": "/var/lib/remnawave/configs/xray/ssl/privkey.key",
    "certificateFile": "/var/lib/remnawave/configs/xray/ssl/fullchain.pem"
    // Другие поля
    }
  ]
Предупреждение:

Обратите внимание на расширения .key и .pem.

If I used the node setup script, do I need to perform advanced configuration, or did the script already do all the necessary settings?

Advanced customization needs to be done by yourself if it’s relevant to you.\nBUT the script has some options, for example logrotate can be done through the self menu remnanode