VPN·HUB·CRACK
Remnawave Admin: бот и веб-панель управления (анти-абуз, мониторинг) · VPN HUB CRACK
Remnawave Admin: бот и веб-панель управления (анти-абуз, мониторинг)
Remnawave Admin: бот + веб-панель управления
Стандартная панель Remnawave (веб-центр управления сервисом: юзеры, ноды, хосты) даёт минимум: создать юзера, ноду, хост. Всё остальное (массовые операции, борьба с шерингом аккаунтов, мониторинг трафика, карта подключений, автоматизация) приходится делать руками или городить скрипты. Remnawave Admin (проект Case211/remnawave-admin) закрывает эту дыру: это связка Telegram-бот + веб-панель, которая встаёт рядом с вашей Remnawave и управляет ею через API.
📖 Незнакомые слова? Все термины простыми словами смотрите в Словаре терминов.
Зачем это вам. Когда у сервиса больше ~50 платящих клиентов, ручное управление и ловля «шерящих» аккаунт на 10 устройств съедают время и деньги. Этот инструмент автоматизирует рутину и сам ловит абуз.
Что умеет (коротко)
Telegram-бот:
- Пользователи: поиск, создание, правка, HWID-устройства (привязка подписки к «железу» устройства), статистика, массовые операции.
- Ноды: просмотр, вкл/выкл, рестарт, мониторинг трафика.
- Хосты: управление + bulk-действия.
- Ресурсы: шаблоны подписки, сниппеты, API-токены, конфиги.
- Биллинг и история платежей, здоровье системы (/health), статистика трафика.
Веб-панель: - Дашборд: онлайн-тренды, нарушения, очередь сборщика. - Карта подключений (гео, города, детализация по юзерам). - Аналитика: топ-юзеры, тренды за 24ч поминутно, трафик по нодам, детект P2P/торрентов. - Хаб автоматизации: конструктор правил, расписание, шаблоны, логи запусков. - Терминал: выполнение команд на нодах прямо из браузера (xterm.js), каталог скриптов. - Управление заблокированными IP (импорт/экспорт, сроки), бэкапы БД, аудит-лог админов. - Аутентификация: Telegram Login, пароль, 2FA (TOTP), RBAC; 6 тёмных тем + светлая, RU/EN.
Анти-абуз (главная фишка): - 7 анализаторов: временной, гео, ASN, поведенческий профиль, устройство, HWID, User-Agent. - Детект «невозможных перемещений» (impossible travel) и распознавание 60+ российских агломераций: ловит, когда один аккаунт «логинится» из Москвы и через 2 минуты из Владивостока (= шеринг). - Авто-действия по порогам скоринга: warn → soft-block → temp-block → hard-block. - Контроль скорости расхода трафика с авто-блоком, отчёты о нарушениях в Telegram с inline-кнопками.
Также есть встроенный mail-сервер (прямая MX-доставка, DKIM), webhook-уведомления, поддержка ARM64, MaxMind GeoIP. Всё это опционально.
Требования
| Масштаб | CPU | RAM | Диск |
|---|---|---|---|
| < 1 000 юзеров | 2 vCPU | 4 ГБ | 40 ГБ SSD |
| 1 000–5 000 | 4 vCPU | 8 ГБ | 80 ГБ SSD |
| 5 000–20 000 | 8 vCPU | 16+ ГБ | 240 ГБ NVMe |
Перед установкой подготовьте:
- Docker + Docker Compose на сервере.
- Токен Telegram-бота: создайте у @BotFather командой /newbot.
- API-токен Remnawave: панель → Settings → API Tokens.
- Свой Telegram ID: узнайте у @userinfobot.
- (для веба) две A-записи DNS: одна под webhook бота, одна под веб-панель.
Установка (Docker, по шагам)
1. Склонировать репозиторий
git clone https://github.com/Case211/remnawave-admin.git
cd remnawave-admin
2. Создать и заполнить .env
cp .env.example .env
nano .env
Минимум для старта бота:
BOT_TOKEN=1234567890:ABCdef... # от @BotFather
API_BASE_URL=http://remnawave:3000 # API панели (имя контейнера в той же docker-сети)
API_TOKEN=ваш_api_токен_панели # Remnawave → Settings → API
ADMINS=123456789 # ваш tg_id (через запятую, если несколько)
PostgreSQL:
POSTGRES_USER=remnawave
POSTGRES_PASSWORD=надёжный_пароль
POSTGRES_DB=remnawave_bot
DATABASE_URL=postgresql://remnawave:надёжный_пароль@remnawave-admin-db:5432/remnawave_bot
3. Поднять (общая docker-сеть с панелью)
docker network create remnawave-network # если ещё не создана
docker compose up -d
docker compose logs -f bot
Бот в Telegram → /start. Если задан веб, он поднимется на порту 3000 (фронт) / 8081 (бэкенд).
4. Веб-панель (опционально)
Добавьте в .env:
WEB_SECRET_KEY=$(openssl rand -hex 32) # JWT-секрет, ≥32 символов
TELEGRAM_BOT_USERNAME=имя_бота_без_@
WEB_CORS_ORIGINS=https://admin.ваш-домен.com
Веб-панель слушает только локально, наружу выводите её через reverse-proxy с TLS (как и саму Remnawave). Логин: Telegram Login Widget или пароль; есть фоллбэк
WEB_ADMIN_LOGIN/WEB_ADMIN_PASSWORD.
5. Webhook от панели (опционально, для реактивного анти-абуза)
NOTIFICATIONS_CHAT_ID=-1001234567890
WEBHOOK_SECRET=$(openssl rand -hex 64)
В Remnawave: WEBHOOK_URL = http://bot:8080/webhook, WEBHOOK_SECRET_HEADER = тот же WEBHOOK_SECRET.
6. Node Agent на ноды (опционально, сбор данных для анти-абуза/терминала)
В вебе: Nodes → нода → Agent Token → Install Agent, скопируйте команду:
curl -sSL https://raw.githubusercontent.com/Case211/remnawave-admin/main/node-agent/install.sh | bash -s -- --uuid UUID --url URL --token TOKEN
Команды бота
| Команда | Что делает |
|---|---|
/start |
главное меню |
/health |
статус системы |
/stats · /bandwidth |
статистика панели / трафика |
/user <username\|id> |
инфо о юзере |
/node <uuid> · /host <uuid> |
инфо о ноде / хосте |
/config |
управление динамическими настройками |
Бэкап и обновление
Бэкап БД (или кнопкой в вебе: Backups → Create):
docker exec remnawave-admin-db pg_dump -U remnawave remnawave_bot > backup.sql
# восстановление:
docker exec -i remnawave-admin-db psql -U remnawave remnawave_bot < backup.sql
Обновление (миграции Alembic применяются автоматически):
git pull origin main && docker compose down && docker compose up -d
Потеряли доступ к веб-панели? CLI работает напрямую с БД, без запущенного веба:
docker exec -it <контейнер> python3 scripts/admin_cli.py reset-password
docker exec -it <контейнер> python3 scripts/admin_cli.py create-superadmin --username newadmin
⚠️ Безопасность. Инструмент имеет полный доступ к вашей панели и нодам (через API-токен + терминал на нодах). Поэтому: веб только за reverse-proxy + TLS, включите 2FA, ограничьте
WEB_ALLOWED_IPS, храните.envи бэкапы вне сервера. Скомпрометировали этот бот → скомпрометировали весь сервис.Дальше: как продавать доступ клиентам и принимать оплату (см. «Бот продаж» и «Платёжные системы»).