github eGamesAPI/remnawave-reverse-proxy v3.5.0

3 hours ago

REMNAWAVE REVERSE PROXY

🚀 Основные изменения

Трафик пользователей теперь можно разделить между двумя серверами: русские сайты пойдут через один IP, зарубежные через другой. Второй сервер скрипт настроит целиком по SSH, вплоть до установки Docker и ноды, а списки российских доменов подключаются расширенные и обновляются сами. Для личного выбора есть второй тип моста: каждый пользователь сам решает, через какую страну выходить, просто выбирая хост в подписке. Скрипт заодно перестал переспрашивать логин панели: после первого входа он выпускает себе API-токен на 10 лет.


🔀 Серверный роутинг (мост)

«Расширения ноды → Серверный роутинг (мост)». Классическая схема: входная нода за рубежом принимает пользователей, а русские сервисы видят родной российский IP второй машины. Работает и наоборот. Подробности в wiki.

  • Между серверами один Shadowsocks-туннель (chacha20-ietf-poly1305), весь трафик, включая UDP. Пользователи ничего не замечают: та же подписка, те же адреса.
  • Направление выбирается одним вопросом, подсказка у каждого варианта говорит, какой IP увидит какая сторона, и поменять его можно в любой момент без переустановки.
  • Всё считает скрипт: профиль моста, внутренний сквад и сервисный пользователь создаются через API панели. Задаёте одно название, получаете аккуратные объекты вроде Kazan bridge и bridge-kazan вместо случайных цифр.
  • Ноды на второй машине нет? Скрипт поставит её удалённо по SSH: Docker (с зеркалами на случай блокировок), контейнер ноды, регистрация в панели, открытие порта в ufw. Домен и сертификаты машине выхода не нужны: слушает порт и завершает туннель.
  • В конце всё проверяется живьём: нода подключилась, порт отвечает. Проверка с клиента: yandex.ru/internet покажет один IP, ifconfig.me другой.
Режим Когда подходит RU-сайты видят Зарубежные видят
Через мост входная нода за рубежом IP машины выхода IP входной ноды
Напрямую со входной ноды входная нода в России IP входной ноды IP машины выхода

Мостов может быть несколько, каждое со своей машиной и своими профилями. Профиль, уже занятый другим мостом, скрипт честно пометит и переспросит перед перепривязкой.

В меню моста: подключить ещё профиль (вторая входная нода через тот же выход), RU-списки, полная перенастройка, переименование (один ввод, и сквад с юзером, нодой и профилем меняют имена) и удаление роутинга. Профили получат прямой выход, сервисный пользователь и сквад уйдут, порт закроется. Нода моста остаётся и ничего не маршрутизирует.


🧭 Свой выход для каждого (VLESS Route)

Второй тип моста не делит трафик автоматически: через какую страну выходить, каждый пользователь решает сам. Разбор в wiki. У профиля появляется дополнительный хост в подписке, вроде Germany → Moscow, и выбрав его, пользователь целиком выходит через машину моста: телефон может висеть на московском хосте ради банков, а компьютер на обычном. Переключение происходит в клиенте, без переустановки и второй подписки.

  • Панель делает это штатно: у хоста есть поле номера маршрута, число вшивается в UUID ссылки, входная нода читает его и везёт соединение через нужный выход.
  • Линия на каждый выход: свой номер маршрута, свой сервисный пользователь и своя статистика. Вторая линия на тот же выход создаётся без новой машины.
  • «Подключить ещё профиль» добавляет хост второй входной ноде одним вопросом, тем же номером маршрута.
  • Контейнер ноды без записи в панели скрипт подключит как есть, без переустановки.
  • ufw включается сам: уже открытые порты остаются открытыми, закрывается всё прочее.
  • Снять мост можно в любой момент: хост уходит из подписок, пользователь со старой ссылкой просто возвращается к общим правилам.

🔑 SSH-доступ к удалённым машинам

«Расширения ноды → SSH-доступ». Обслуживание второго сервера из меню скрипта: обновить пакеты, перезапустить контейнер ноды, посмотреть логи, не открывая вторую сессию. Инструкция в wiki.

  • Если на панели уже есть ключ, открывающий вторую машину, скрипт молча возьмёт его: вопросы не задаются.
  • Если нет, спросит пароль root один раз, поставит свой ключ и забудет пароль: на диск он не пишется никогда. Для серверов с закрытым парольным входом есть режим ручной вставки публичного ключа.
  • Ваш собственный ключ не читается и не копируется. В authorized_keys на второй машине появляется ровно одна строка с пометкой remnawave-reverse-proxy, ваши строки не трогаются.
  • Машин может быть сколько угодно, у каждой своё название в списке, и любую можно отключить одним пунктом.
  • Тот же доступ роутинг использует для установки ноды: вручную трогать ничего не нужно.

🇷🇺 Расширенные RU-списки

Стандартное правило category-ru накрывает все домены в зонах .ru, .su и .рф, но русские сервисы на иностранных доменах мимо него: тот же vk.com в списке отсутствует. Пункт «RU-списки» в меню моста подключает списки проекта runetfreedom, они пересобираются ежедневно.

  • Штатные правила не заменяются: поверх добавляется одно правило для доменов, доступных только изнутри России.
  • Таким адресам обеспечен российский выход в любом режиме работы моста.
  • Файл списков ставится на входные ноды, где принимаются решения о маршрутизации.
  • Обновляется сам: каждый день в 4:30 свежая версия скачивается с зеркал, контрольная сумма сверяется. Ноды перезапускаются только если файл изменился: в обычный день ничего не происходит и соединения не рвутся.

🔐 Свой токен для панели

Раньше любое протухание токена входа означало новый вопрос про логин и пароль: входной токен панели живёт около недели. Теперь после первого успешного входа скрипт выпускает себе отдельный API-токен на 10 лет и сохраняет его вместо разового. Логин спросит в последний раз.

  • Токен называется remnawave-reverse-proxy и лежит в панели рядом с остальными API-токенами: отозвать можно там же, одним действием.
  • Права полные: скрипт управляет нодами, профилями, хостами, пользователями, сквадами и расширениями нод.
  • Установка панели выпускает токен сразу, поэтому первый запуск меню после установки не спросит логин.
  • Сохранённый с прошлых версий токен входа скрипт обменяет на долгий сам, при первом же открытии меню.
  • Панели с входом только через OAuth или MFA работают как раньше: токен создаётся в панели руками и вставляется один раз.
  • Через 10 лет или после отзыва токена достаточно одного входа: скрипт выпустит новый и удалит старый.
  • Панель слишком старая для выпуска токенов? Скрипт заметит и останется на прежнем режиме.

📦 Установка «только панели» без нодовых вопросов

Раньше установка панели без ноды всё равно спрашивала домен будущей ноды и заранее создавала её записи в панели: профиль, ноду и хост. Дальше эти записи мешались: домен оказывался «занят», и добавить ноду через меню не выходило, записи приходилось удалять руками. Теперь панель ставится без вопросов про ноду, а нода добавляется после, через «Добавить ноду в панель»: автоматически по SSH или вручную.

  • «Установить только ноду» на сервере ноды работает как раньше: домен и Secret Key берутся из карточки ноды в панели.
  • Если на панели осталась запись ноды, которая так и не подключилась, меню добавления ноды само предложит удалить старые записи и продолжить с тем же доменом.
  • Живая нода при этом не трогается: предложение появится, только если нода не подключена.
  • Финальный баннер после установки панели ведёт в меню добавления ноды и называет данные, которые понадобятся на её сервере.

🔧 Исправления

  • «Обновить панель» мог написать «успешно обновлена» и почистить старые образы, когда пересоздание стека упало: панель оставалась лежать. Теперь запуск, остановка и обновление проверяют каждый шаг, а при неудаче скрипт пишет красным и подсказывает команду ручного подъёма.
  • Xray Checker: «Обновить образы» отвечает «Обновлено» только если контейнер чекера реально поднялся.
  • Шаблон страницы подписки: смена шаблона больше не рапортует «обновлено», когда контейнер страницы не встал.
  • Установка «панель + нода» с подпиской: финальный баннер не покажется, пока стек не поднялся после перезапуска, вместо него ошибка и команда восстановления.
  • Сайт-заглушка: редкий отказ с целевым каталогом больше не оставляет крутиться индикатор и распакованные шаблоны в /opt.

🩹 Мелочи

  • На свежих минимальных системах ufw ставится с предварительным обновлением списков пакетов, а если поставить не вышло, скрипт прямо скажет, какой порт открыть руками.
  • В wiki появились две статьи: серверный роутинг и SSH-доступ, с таблицами «кто какой IP видит» и примерами команд.

⬆️ Обновление

Пункт 11 меню, или:

bash <(curl -Ls https://raw.githubusercontent.com/eGamesAPI/remnawave-reverse-proxy/refs/heads/main/install_remnawave.sh)

📖 Wiki

https://wiki.egam.es/

Don't miss a new remnawave-reverse-proxy release

NewReleases is sending notifications on new releases.