Установка и настройка 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.