Работа с Remnawave
Подключение, миграция пользователей, совместный режим с 3X-UI, аналитика трафика и режим NO LIMIT+.
Первичная настройка
Шаг 1 — Установка панели Remnawave
Установите панель согласно официальной документации:
docs.rw — Remnawave PanelШаг 2 — Подключение к боту
После установки панели откройте Панели → Remnawave → Настройки и заполните блоки на этой странице:
- 1Включите переключатель «Включить Remnawave» (
remnawave_enabled). - 2В блоке «Подключение к панели»:
- 3В блоке «Новые пользователи и миграция»:
- 4Отдельно: Настройки → Основные → Режим провайдера — выберите Remnawave (
subscription_providerдля новых пользователей). - 5Нажмите Сохранить на странице Remnawave. Бот начнёт создавать новых пользователей в Remnawave.
Добавление и миграция
Подготовка перед миграцией
- 1Установите и полностью настройте панель Remnawave — добавьте серверы, настройте Squad, укажите API-токен в веб-админке.
- 2Убедитесь, что параметр
remnawave_default_traffic_limit_gbвыставлен корректно — именно это значение будет присвоено каждому клиенту при миграции:Панели → Remnawave → Настройкиremnawave_default_traffic_limit_gb = 0 # 0 = безлимитЗначение используется при регистрации новых пользователей и при миграции.0означает безлимитный трафик. - 3
Рекомендуется остановить сервис бота на время миграции, чтобы исключить конфликты при одновременной обработке запросов:
bash
systemctl stop vpn-bot
Запуск миграции
- 1Откройте веб-админку → Инструменты → Миграция.
- 2Выберите направление миграции: в Remnawave.
- 3Нажмите кнопку запуска — бот обработает всех пользователей из базы данных и создаст их в Remnawave с текущими сроками подписки.
- 4После завершения миграции запустите бота обратно:
bash
systemctl start vpn-bot
После миграции
subscription_provider у каждого пользователя в базе данных меняется на remnawave. Все операции продления, выдачи подписки и управления устройствами теперь выполняются через Remnawave.remnawave_default_traffic_limit_gb. На серверах 3X-UI ограничение трафика не предусмотрено.Совместный режим с 3X-UI
Как это работает
subscription_provider) определяет, через какую панель выполняются операции: продление, управление устройствами, изменение лимитов. После миграции или при новой регистрации через Remnawave — это всегда Remnawave.Трафик закончился в Remnawave — что происходит
Это один из ключевых сценариев совместного режима. Когда пользователь расходует весь лимит трафика в Remnawave при активной подписке:
Зачем использовать совместный режим
Аналитика трафика
analytics для 3X-UI при этом не используется.
Перед установкой — что должно быть готово
Экспортёр использует те же параметры, что уже прописаны в /opt/remnawave/.env (DATABASE_URL, WEBHOOK_URL, WEBHOOK_SECRET_HEADER). Дополнительно настраивать его конфиг не нужно — но сначала проверьте три пункта ниже.
- 1Nginx на сервере бота — location для вебхука Remnawave (см. следующий блок).
- 2Webhook в Remnawave —
WEBHOOK_ENABLED,WEBHOOK_URL,WEBHOOK_SECRET_HEADERв/opt/remnawave/.env. - 3Веб-админка бота — включено «Принимать вебхуки от Remnawave» и заполнен «Секрет вебхука» (тот же 64-символьный ключ).
Шаг 1 — Location в Nginx (сервер бота)
Убедитесь, что в конфиге Nginx на сервере бота присутствует блок для вебхука Remnawave. Откройте конфиг:
nano /etc/nginx/conf.d/xuiweb.conf
Найдите или добавьте следующий блок внутри секции server { }, перед закрывающей скобкой:
location /remnawave/webhook {
proxy_pass http://127.0.0.1:8081/remnawave/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Content-Type $content_type;
proxy_set_header Content-Length $content_length;
proxy_read_timeout 30s;
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
}
Сохраните файл (Ctrl+O → Enter → Ctrl+X) и перезагрузите Nginx:
nginx -t && systemctl reload nginx
Шаг 2 — Настройка вебхука в Remnawave
На сервере с Remnawave откройте файл .env:
cd /opt/remnawave nano .env
Найдите блок # Webhook configuration и выставьте следующие значения:
# Webhook configuration WEBHOOK_ENABLED=true WEBHOOK_URL=https://бот.ваш-домен.ru/remnawave/webhook ### Секрет для подписи вебхука — 64 символа (a-z, 0-9, A-Z) WEBHOOK_SECRET_HEADER=<ваш_секрет_64_символа>
Шаг 3 — Веб-админка бота
Откройте Панели → Remnawave → Настройки → блок «Вебхуки и NO LIMIT»:
- 1Включите переключатель «Принимать вебхуки от Remnawave» (
remnawave_webhook_enabled). - 2Заполните поле «Секрет вебхука» (
remnawave_webhook_secret) — то же значение, чтоWEBHOOK_SECRET_HEADERв.envRemnawave. Сохраните страницу.
remnawave_traffic_exhausted_squad_uuid)
не обязательно, если вы не используете NO LIMIT+.
Шаг 4 — Установка экспортёра (сервер Remnawave)
На сервере с Remnawave выполните одну команду от root. Скрипт создаст каталог /opt/remnawave_node_exporter, скачает архив, соберёт Docker-контейнер и запустит его в сети Remnawave. Настройки читаются автоматически из /opt/remnawave/.env.
curl -fsSL https://update.3xstore.ru/remnawave_node_exporter/install.sh | bash
Проверка логов после установки:
cd /opt/remnawave_node_exporter && docker compose logs -f
Режим NO LIMIT+
Шаг 1 — Проверка и настройка Nginx
Убедитесь, что в конфиге Nginx на сервере бота присутствует блок для вебхука Remnawave. Откройте конфиг:
nano /etc/nginx/conf.d/xuiweb.conf
Найдите или добавьте следующий блок внутри секции server { }, перед закрывающей скобкой:
location /remnawave/webhook {
proxy_pass http://127.0.0.1:8081/remnawave/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Content-Type $content_type;
proxy_set_header Content-Length $content_length;
proxy_read_timeout 30s;
proxy_connect_timeout 30s;
proxy_send_timeout 30s;
}
Сохраните файл (Ctrl+O → Enter → Ctrl+X) и перезагрузите Nginx:
nginx -t && systemctl reload nginx
Шаг 2 — Настройка вебхука в Remnawave
На сервере с Remnawave откройте файл .env:
cd /opt/remnawave nano .env
Найдите блок # Webhook configuration и выставьте следующие значения:
# Webhook configuration WEBHOOK_ENABLED=true WEBHOOK_URL=https://бот.ваш-домен.ru/remnawave/webhook ### Секрет для подписи вебхука — 64 символа (a-z, 0-9, A-Z) WEBHOOK_SECRET_HEADER=<ваш_секрет_64_символа>
WEBHOOK_SECRET_HEADER должно быть ровно 64 символа из набора a-z, 0-9, A-Z. Это же значение укажите в Панели → Remnawave → Настройки → блок «Вебхуки и NO LIMIT» → поле remnawave_webhook_secret.Шаг 3 — Настройка Squad и нод в панели Remnawave
- 1Откройте панель Remnawave и найдите ноды, которые хотите сделать безлимитными.
- 2В настройках каждой такой ноды установите коэффициент потребления =
0. Это критически важно — только ноды с коэффициентом 0 не тратят трафик пользователя.Без коэффициента0трафик будет продолжать расходоваться даже в «безлимитном» скваде. - 3Создайте новый внутренний сквад (Internal Squad) и добавьте в него все ноды с коэффициентом
0. При желании можно добавить хосты-заглушки и включить их в этот же сквад. - 4Скопируйте UUID нового сквада — он понадобится на следующем шаге.
Шаг 4 — Настройка в веб-админке бота
Откройте Панели → Remnawave → Настройки → блок «Вебхуки и NO LIMIT»:
- 1Включите «Принимать вебхуки от Remnawave» (
remnawave_webhook_enabled), если вебхук настроен на панели. - 2Заполните поля ниже и сохраните страницу.
Как работает логика при исчерпании трафика
0 и переключает его на безлимитный сквад.