REMNAWAVE REVERSE PROXY
🚀 Основные изменения
🔧 Обновления скрипта
- При самообновлении теперь обновляются все скачанные модули. Список модулей больше не ведётся вручную — скрипт сам находит всё, что скачал.
- Проверка обновлений работает через все зеркала (jsDelivr, githack, gh-proxy) и поддерживает wget — на серверах без доступа к GitHub статус обновления больше не врёт «обновлений нет».
- Когда обновление доступно, он подсвечивается красным и называется «Обновить скрипт», а когда нет — остаётся «Проверить обновления скрипта».
🖥️ Защита от опечаток в подтверждениях
- Все вопросы «Продолжить? (y/n)» теперь переспрашивают при неверном вводе. Раньше случайная клавиша (например
h) или пустой ввод молча завершала установку, отменяла обновление или обрывала проверку домена. - Принимаются
y/yes/д/даиn/no/н/нетв любом регистре.
📉 Логи больше не плодятся
- Удалён
remnawave_reverse.log— скрипт больше ничего не дописывает в файл через tee. - Убран
cron_jobs.log: задания cron (продление сертификатов, уведомления) теперь пишут в/dev/null. - При первом обновлении на новую версию старые лог-файлы удалятся автоматически — место на диске освободится.
🧊 Исправлено «зависание» после выбора языка
- На серверах с нерабочим IPv6 (есть маршрут, но он ведёт в никуда) скрипт мог молча «висеть» на несколько минут сразу после выбора языка — все загрузки упирались в таймауты.
- Теперь скрипт один раз проверяет IPv6 при запуске и, если он мёртв, автоматически переключает все загрузки на IPv4. Отключать IPv6 вручную больше не нужно. Серверы с рабочим IPv6 работают как раньше.
📡 Управление IPv6 — честный статус и надёжное определение адреса
- Аплинк-интерфейс определяется по маршруту по умолчанию, а не как «первый попавшийся» — раньше скрипт мог пытаться включить IPv6 на docker0/veth.
disable_ipv6=1на отдельном интерфейсе больше не считается «уже включено» — это честный статус «выключено».- После применения sysctl скрипт проверяет, что он реально применился, если IPv6 отключен через GRUB (
ipv6.disable=1) — предупреждает об этом вместо ложного «успешно включено». - Сеть перезапускается способом, соответствующим вашей системе (netplan / ifupdown / systemd-networkd), чтобы получить глобальный адрес.
- В результате показывается полученный адрес, а если он не появился — готовый пример конфига для вашего сетевого менеджера.
- В заголовке меню IPv6 теперь живой статус: включено / выключено / нет адреса + сам адрес.
🚦 Проверка порта 443
- Перед установкой скрипт проверяет, свободен ли порт 443. Если его держит сторонний сервис (apache, другой nginx и т.п.) — установка останавливается сразу, с именами виновников в сообщении, вместо загадочной ошибки посреди процесса. Собственные контейнеры скрипта (remnawave-nginx/caddy) конфликтом не считаются.
🎨 Legiz
- Код Legiz вынесен в отдельный модуль (
src/modules/legiz.sh) — теперь он обновляется отдельно от основного скрипта, как и остальные модули. - Вырезано устаревшее меню app-list/branding, которое больше неактуально.
🌐 Caddy
- При установке panel+sub переменная
SUB_DOMAINтеперь правильно передаётся в контейнер Caddy — подписочная страница на поддомене больше не теряется.
🌐 Прочее
- Диапазоны Cloudflare кэшируются на неделю вместо скачивания при каждой проверке домена; при недоступности cloudflare.com используется кэш.
- Проверка ОС — по номерам версий (Debian 11+, Ubuntu 22.04+), а не по кодовым именам, будущие релизы (Ubuntu 26 и т.п.) проходят без обновления скрипта.