REMNAWAVE REVERSE PROXY
🚀 Основные изменения
🧩 Расширения ноды — новый пункт 4
Внутри — привычные selfsteal-шаблоны, новый раздел «Плагины ноды» (на серверах только с нодой раздел скрыт — плагины настраиваются на сервере с панелью) и «Ядро Xray» (появляется там, где найдена нода).
🛡 Torrent Blocker
Полное управление анти-торрент плагином без захода в UI панели:
=== Torrent Blocker ===
Torrent Blocker: ВКЛЮЧЁН
1. Отключить Torrent Blocker
2. Настройки (длительность бана, белый список IP)
3. Статистика и последние отчёты
4. Разблокировать IP
5. Пересоздать таблицы nftables
6. Настроить Telegram-уведомления (панель)
7. Удалить плагин Torrent Blocker
- Статистика: всего / за 24 часа / юзеры / ноды, топ-5 юзеров и нод, таблица последних 15 отчётов (дата, юзер, IP, нода).
- Настройки: длительность бана (по умолчанию 3600 с) и белый список IP с валидацией — чтобы не забанить самого себя.
- Разбан IP и пересоздание nftables — через executor панели, на все подключённые ноды сразу.
📨 Telegram-уведомления
Настраиваются скриптом через .env панели (TELEGRAM_NOTIFY_TBLOCKER):
- токен бота + чат (
chat_idилиchat_id:thread_id— топики поддерживаются). - тестовое сообщение перед сохранением — сразу видно, что токен и чат рабочие.
- если
api.telegram.orgнедоступен — предлагается SOCKS/HTTP-прокси, он же прописывается панели (TELEGRAM_BOT_PROXY).
🚪 Ingress Filter — постоянный бан входящих
Блокирует тех, кто подключается к серверу, на уровне nftables.
Три готовых пресета:
| Пресет | Записей | Источник |
|---|---|---|
| RU-сканеры (Skipa) | ~145 подсетей | CyberOK_Skipa_ips |
| Классические сканеры (Censys, Shodan, Palo Alto, Shadowserver, Driftnet, ONYPHE, ZoomEye, LeakIX, Rapid7) | ~270 подсетей | OpenFilters/internet-scanners |
| FOFA + Quake | ~950 записей | OpenFilters/internet-scanners |
- Зеркала: списки качаются через ту же цепочку, что и сам скрипт (direct → gh-proxy.com → ghfast.top → ghproxy.net) — работает даже там, где GitHub заблокирован.
- Обновление без потерь: повторное применение пресета заменяет только его прежние записи — ручные добавления и другие пресеты остаются на месте.
- Пометки об обновлении: при входе в «Пресеты» применённые списки сверяются с удалёнными (красным:
установлен: 145, доступно: 148 — обновите). Если проверка не прошла из-за сети — пометок нет, ложной тревоги не будет. - Ручное добавление/удаление IP и CIDR.
📤 Egress Filter — контроль исходящих
Блокирует, куда сервер (и клиенты через него) может соединяться.
🏠 Частные диапазоны (умный пресет)
Кандидаты: 10/8, 172.16/12, 192.168/16, 100.64/10 (CGNAT — территория Tailscale/Netbird), 169.254/16, fc00::/7.
Перед применением скрипт анализирует маршруты и адреса хоста и пропускает всё занятое — docker-сети, mesh-VPN, внутренние подсети провайдера. Loopback не трогается в принципе. С превью:
Будет заблокировано (5):
10.0.0.0/8, 192.168.0.0/16, 100.64.0.0/10, 169.254.0.0/16, fc00::/7
Пропущено — уже используется на хосте (1):
172.16.0.0/12 ← 172.17.0.0/16 (docker)
Зачем: клиент через ноду не сможет лазить во внутреннюю сеть хостера и в metadata-сервис облака.
✉️ Почтовые порты
25, 465, 587 — исходящая почта с сервера закрыта, IP не улетает в спам-листы.
Плюс ручное редактирование IP/подсетей и портов (удаление — одной командой вперемешку).
⚙️ Ядро Xray — кастомное для ноды
Замена штатного ядра из образа ноды одним пунктом меню, без ручных правок compose:
- Два источника: официальное ядро
XTLS/Xray-coreи серверный форкJolymmiles/Xray-core(sing-mux/h2mux, Brutal congestion control, расширенный сниффинг — в том числе BitTorrent UDP). - Выбор релиза с датами: последние 5 релизов источника списком с датами выхода, Enter — последний.
- Скачивание через зеркала GitHub (та же цепочка, что и везде в скрипте), проверка SHA256 из
.dgstи ELF-магии бинаря. - Безопасные правки compose: бинарь ставится рядом как
xray-custom, монтируется поверх/usr/local/bin/xray; правка анкерная, с бэкапом на время операции, валидациейdocker compose configи авто-откатом при поломке. - Перезапуск только ноды — панель не трогается.
- Обновление и откат: «Обновить» тянет последний релиз того же источника; «Вернуть штатное ядро» удаляет бинарь и монтирование одной командой. Статус показывает установленную и реально работающую в контейнере версии.
- Офлайн-режим: при недоступном GitHub API используются проверенные закреплённые версии обоих источников.
📋 Логи ноды
Все четыре шаблона с нодой (nginx/caddy × node-only/панель+нода) теперь монтируют /var/log/remnanode:/var/log/remnanode
Существующие установки не трогаются: добавить строку в
volumesсервисаremnanodeиdocker compose up -d remnanodeможно вручную.