Skip to content

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

NodaFullScript

Установщик фронтовой ноды Remnawave: один запуск на чистом Debian или Ubuntu поднимает узел, отдающий всё через 443 — HAProxy впереди, Caddy с настоящим сайтом прикрытия, ядро Xray за ними и любая комбинация из семи транспортов.

С панелью скрипт не разговаривает. Он готовит серверную часть и печатает точные значения, которые нужно ввести в Remnawave руками.

Быстрый старт

curl -fsSL -o /tmp/rw-edge-install.sh \
  https://raw.githubusercontent.com/Vlone111/NodaFullScript/main/installer/rw-edge-install.sh
bash /tmp/rw-edge-install.sh

Двумя командами, а не одной: curl | bash не годится вовсе — скрипт задаёт вопросы, а в конвейере stdin занят самим скриптом. Подстановка процесса bash <(curl ...) эту проблему решает, но заводит другую: bash читает файл из FIFO по мере выполнения, и при обрыве чтения curl падает с (23) Failure writing output to destination, а bash остаётся с обрывком и виснет. Скачанный файл выполняется целиком и ни от чего не зависит.

Что внутри

Каталог Что это
installer/ сам установщик, собирается из parts/*.sh через build.sh
DESIGN.md контракт архитектуры: карта портов, матрица транспортов, взаимные исключения
GRAFANA-AGENT-PROMPT.md задание для настройки Grafana на отдельном сервере

Подробности установки — в installer/INSTALL.md, устройство и ограничения — в installer/README.md.

Транспорты

Выбираются при установке, можно несколько сразу. Скрипт сам разведёт их по SNI на 443 и откажется собирать заведомо конфликтную пару.

id Домен Сертификат Кто терминирует TLS
reality-tcp-steal 1 да Xray, fallback в Caddy
reality-tcp-borrow 0 нет Xray, target — внешний донор
reality-xhttp-steal 1 да Xray, fallback в Caddy
xhttp-tls 1 да Caddy, дальше h2c
grpc-tls 1 да Caddy, дальше h2c
tcp-tls 1 да Xray, сертификат смонтирован
hysteria2 1 да Xray на UDP/443, masquerade на сайт

Метрики

Ставятся по желанию, отдельным вопросом «да/нет», и живут полностью независимо от панели: ничего из Remnawave не читается, при её падении или обновлении сбор продолжается. Три контейнера на ~29 МБ, все слушают только 127.0.0.1, входящих портов не открывается.

Кроме системных метрик собираются зонды пути наружу с самой ноды и состояния Docker-контейнеров. Первое важно потому, что проба с сервера мониторинга меряет путь того сервера, а не этого; второе — потому, что node_exporter про Docker не знает ничего, и упавшее ядро выглядит для него здоровой машиной.

Сайт прикрытия

Живёт в отдельном репозитории и клонируется установщиком по тегу — версия сайта не меняется под ногами при переустановке ноды.

Копии исходников здесь намеренно нет, и это не оплошность. Сайт прикрытия отдаётся публично на каждой ноде, поэтому его содержимое находится обычным поиском по коду. Лежи он рядом с этим репозиторием — по одной характерной строке со страницы находился бы установщик прокси-узла, и смысл прикрытия терялся бы. По той же причине у него нейтральное имя, а не термин из документации REALITY.

Проверка перед выкаткой

cd installer
./build.sh                 # собрать один файл из parts/
shellcheck rw-edge-install.sh
./test-matrix.sh           # 16 комбинаций на настоящих Xray, HAProxy и Caddy

Матрица не имитирует бинарники: каждая комбинация транспортов рендерится и скармливается реальным xray -test, haproxy -c и caddy validate.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages