You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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 и т.п.) проходят без обновления скрипта.