Skip to content

Releases: CraftStick/node-installer-cdn

v2.0 — Remnawave + Yandex Cloud

Choose a tag to compare

@CraftStick CraftStick released this 31 Aug 01:05

VPN за российским CDN: VLESS на Xray в режиме XHTTP packet-up, спрятанный за
Yandex Cloud. Снаружи — обычный HTTPS к адресу CDN.

Что нового по сравнению с v1.0

Три режима вместо пяти

  1. Панель + нода на этом сервере
  2. Нода + CDN к существующей панели
  3. Только CDN перед уже работающей нодой

Режимы «только панель», «только нода» и «панель здесь + нода по SSH» убраны:
они путали и почти не использовались. Старые номера принимаются и
переназначаются автоматически.

Только Remnawave. 3x-ui удалён целиком — вместе с его SQLite-правками,
паролями в argv и пином версии. Флаг --panel 1 принимается молча, чтобы не
ломать старые команды.

Один CDN-провайдер вместо четырёх. Остался Yandex Cloud — единственный, где
туннель проверен на живой установке от начала до конца.

VK Cloud и Beeline (CDNvideo) убраны раньше. Timeweb убран в этом релизе: его
CDN пропускает на источник только запросы, у которых последний сегмент пути
похож на файл — имеет расширение. XHTTP шлёт /<путь>/<сессия>/<номер>, и
каждый такой запрос возвращается с 403, не доходя до сервера. Замер с одного
адреса: /index.html → 200, /a/b/t.m3u8 → 404 от nginx, а
/a/b/t.m3u8/abc123/0 → 403 от CDN. Со стороны клиента это не обходится.

Один вход вместо двух. Запасной gRPC Reality убран: прямой вход в обход CDN
открывает наружу порт, по которому ноду видно как ноду, — ровно то, от чего
прячемся. Теперь Xray слушает только 127.0.0.1, а файрвол открывает наружу
SSH, 80 и 443, и больше ничего.

Пошаговая инструкция по Yandex Cloud — в README и прямо в консоли, с уже
подставленными вашими доменами и IP: сертификат, группа источников, ресурс,
DNS. Отдельно расписаны грабли: разрешённые методы только GET/HEAD/OPTIONS,
запись проверки сертификата нельзя удалять после выпуска, 15 минут раскатки с
миганием 502.

Понятные имена в панели. Профиль CDN-YANDEX, нода Server-CDN, страна
RU, хост подписан провайдером — Yandex bypass.

Исправлено

  • Нода не создавалась на исправной панели: ключ берётся из /api/keygen, а не
    из ответа создания ноды.
  • Хост отвергался панелью — перешли на вложенный объект inbound
    (configProfileUuid + configProfileInboundUuid).
  • Туннель отвечал 400 на каждый запрос: настройки XHTTP (xPadding*,
    uplinkHTTPMethod: GET, лимиты постинга) должны совпадать у ноды и у хоста —
    теперь берутся из одного места.
  • vless://-ссылка не работала при рабочей подписке: в неё не попадал блок
    extra с настройками XHTTP.
  • Установка выглядела готовой, но не работала несколько минут: юзер создаётся
    после запуска ноды, а конфиг нода забирает только на старте. Теперь после
    создания юзера нода перезапускается и подхватывает его сразу.
  • Снос прошлой установки чистит и веб-фронт: раньше Caddy с прошлого запуска
    держал :443 и новый nginx на порт не вставал.
  • Случайный поддомен для источника вместо предсказуемого origin.<домен>.
  • Файрвол больше не может отрезать SSH: порты определяются по sshd -T,
    конфигу, ssh.socket и текущему подключению.
  • daemon.json дописывается, а не затирается; прежний сохраняется в .bak.
  • Секреты генерируются из SystemRandom, файлы создаются сразу с нужными
    правами, пароли не передаются через argv (есть переменные окружения
    CDN_PANEL_PASS, CDN_PANEL_SSH_PASS, CDN_PANEL_TOKEN).
  • Загрузки идут во временный каталог из mktemp -d, а не в /tmp с
    предсказуемым именем.

Проверка

177 юнит-тестов (python3 -m unittest discover -v), все генерируемые
shell-команды прогоняются через sh -n, в конце установки — шесть
самопроверок: слушает ли xray на 127.0.0.1:4443, отдаёт ли голый путь
туннеля 404, жив ли фронт, на месте ли сертификат.

Установка

curl -fsSL https://raw.githubusercontent.com/CraftStick/node-installer-cdn/main/node-installer-cdn.py -o node-installer-cdn.py && sudo python3 node-installer-cdn.py

v1.0_Release

Choose a tag to compare

@CraftStick CraftStick released this 16 Aug 02:57
6f2043d

Установщик: скрипт, справочник команд, gitignore
node-installer-cdn.py — установщик панели, ноды и CDN-origin (6 режимов,
Xray 26.3.27, XHTTP packet-up, транзит через РФ).
commands.sh — справочный список shell-команд.