# Subscription Distribution for v2rayNG — Session Example ## Context VPS (80.209.240.167, debian, `vps03.nixg.ru`), XRay с одним UUID на все протоколы. Рабочий протокол: VLESS+WebSocket без TLS на порту 50002. Reality порты (443, 8443, 50000) заблокированы DPI (TLS fingerprint). Shadowsocks нестабилен. ## Цель Раздать конфиг WS 50002 на несколько Android-устройств членов семьи через subscription. ## Шаги ### 1. Установить Caddy ```bash apt-get update && apt-get install -y caddy systemctl status caddy # active (running) ``` ### 2. Создать файл subscription ```bash cat > /etc/caddy/subscription.txt << 'EOF' vless://cf4d32e5-9c19-460e-a5de-f881b01dcfe1@vps03.nixg.ru:50002?encryption=none&security=none&type=ws&host=discord.com&path=%2F#XRay+WS+50002 EOF ``` ### 3. Скопировать в document root Caddy ```bash cp /etc/caddy/subscription.txt /usr/share/caddy/subscription ``` ### 4. Настроить Caddyfile (HTTP только, порт 80) ```caddyfile :80 { root * /usr/share/caddy file_server } ``` ### 5. Перезагрузить и проверить ```bash systemctl stop caddy # правим Caddyfile systemctl start caddy curl -s http://localhost/subscription # → vless://... (должен вернуть ссылку) ``` ## Генерация share-ссылки Формат для v2rayNG (VLESS+WS без TLS): ``` vless://UUID@host:port?encryption=none&security=none&type=ws&host=discord.com&path=%2F#remark ``` - `path=%2F` — это URL-encoded `/` (корневой путь) - `host=discord.com` — заголовок Host в HTTP Upgrade - `#remark` — имя профиля в v2rayNG ## Проблема: Caddy не может занять 443 XRay Reality уже слушает 443. Caddy пытается повесить HTTPS на 443 и падает: ``` listen tcp :443: bind: address already in use ``` **Решение:** раздавать subscription через HTTP (порт 80). v2rayNG не требует HTTPS для subscription. ## Добавление в v2rayNG 1. Открыть v2rayNG 2. Меню (⋮) → **Subscription Group** 3. `+` → ввести URL: `http://vps03.nixg.ru/subscription` 4. ✅ → **Update** → появится профиль **XRay WS 50002** 5. Тапнуть на профиль, чтобы подключиться ## Добавление нескольких конфигов Просто дописать каждую share-ссылку с новой строки в файл `/usr/share/caddy/subscription`: ``` vless://...@...:50002?...#WS+50002 vless://...@...:443?...#Reality+443 ss://...@...:50003?...#Shadowsocks ``` ## Важные детали - **UUID общий для семьи** — если не нужно разграничение доступа, хватит одного UUID на всех - **Обновление конфигов** — отредактировать файл на сервере → v2rayNG обновит при следующем poll (или нажать Update вручную) - **HTTP vs HTTPS** — subscription не содержит секретов (ссылки уже есть у пользователя), HTTP безопасен для этой задачи