Сайт Selfsteal
Документация · Профили · Установка ноды
Selfsteal размещает настоящий мини-сайт на той же ноде и домене, что и подключение VLESS REALITY. Посетитель открывает домен в браузере и видит сайт. VPN-клиенты используют тот же внешний TCP-порт 443.
Что подготовить
- Обновите панель и агент ноды до выпуска с поддержкой Selfsteal. Старые агенты сохраняют текущую конфигурацию и запрашивают обновление.
- Нужна обычная установка ноды с systemd: Debian 12/13 или Ubuntu 22.04/24.04/26.04. В Docker-образе ноды управляемый сайт не запускается.
- Для каждой ноды используйте отдельные профиль и домен. Все A/AAAA-записи домена должны вести на эту ноду. Если IPv6 не настроен, удалите неверную AAAA-запись.
- Откройте входящие TCP 80 и 443 в сетевом экране сервера и у хостера. В Cloudflare выберите «Только DNS». Домены панели и страницы подписки относятся к своим отдельным сервисам.
- Для сайта нужны свободные TCP 80 и локальный
127.0.0.1:9443. Существующий веб-сервер автоматически не останавливается и не заменяется.
Создание профиля
- Откройте Профили → Новый профиль и выберите VLESS REALITY · свой сайт на ноде. Для уже существующего подключения VLESS REALITY TCP/RAW можно включить «Свой сайт на ноде · Selfsteal» в редакторе параметров.
- Выберите мини-сайт. Кнопка «Посмотреть» открывает предпросмотр для компьютера и телефона. Язык сайта выбирается отдельно от языка панели.
- Введите домен сайта, например
nl.example.com. При желании измените название и текст главной страницы. Пустые текстовые поля используют готовое содержимое выбранного сайта. - Проверьте и сохраните профиль. Недостающие ключи REALITY создаются автоматически; уже заданные ключи сохраняются.
- Назначьте профиль ноде и выберите его инбаунд. Создайте хост с публичным доменом/адресом ноды и портом 443, затем выдайте тестовому клиенту доступ через сквад.
- Откройте Ноды → сервер → Диагностика → Сайт на ноде. Дождитесь готовности сайта и доверенного сертификата, затем проверьте адрес в браузере и подключение настоящим VPN-клиентом.
Редактор согласованно заполняет адрес сайта внутри ноды, SNI и target REALITY. Вручную писать массив JSON или переносить приватный ключ сертификата в профиль не нужно.
Девять мини-сайтов
| Оформление | Что внутри |
|---|---|
| Дизайн-студия | Авторские абстрактные работы и заметки о дизайне |
| Журнал | Небольшие раскрывающиеся статьи |
| Путешествия | Идеи маршрутов и список вещей в дорогу |
| Рецепты | Рецепты с пересчётом порций |
| Текстовые инструменты | Подсчёт слов и символов, форматирование текста в браузере |
| Книжная полка | Подборка книг с поиском |
| Галерея | Авторские геометрические композиции |
| Сад | Раскрывающиеся заметки об уходе за растениями |
| Часы | Текущее время с выбором часового пояса |
У каждого варианта есть русское и английское содержимое. Это встроенные статические сайты с небольшими интерактивными функциями. Им не нужны сторонний сервис или аккаунт. Выбранное оформление, название и текст применяются агентом при следующей синхронизации.
Как это работает
Браузер или VPN-клиент → нода:443 (Xray REALITY)
└→ 127.0.0.1:9443 (HTTPS сайта)
Центр сертификации → нода:80 (проверка HTTP-01)
Агент загружает фиксированную официальную сборку Caddy и проверяет SHA256. Отдельная служба sn-selfsteal.service работает от своего системного пользователя. Caddy получает и продлевает сертификат через HTTP-01: порт 80 и корректный DNS нужны и после установки. Xray обращается к Caddy без заголовка PROXY protocol (xver: 0).
Параметры сайта хранятся в блоке _selfsteal профиля. Перед записью конфигурации Xray агент убирает этот блок. Файлы сайта находятся в /var/lib/sn-selfsteal/sites/, сертификаты остаются на ноде в /var/lib/sn-selfsteal/data/. Не публикуйте ключи сертификатов в Git.
Новый домен подготавливается до переключения Xray. Если подготовка не удалась, прежняя конфигурация движка и рабочий сайт сохраняются. Проверка синтаксиса или готовый сертификат сами по себе не подтверждают подключение VPN-клиента.
Тестирование, изменение и отключение
Для «Проверки на тестовой ноде» используйте свободную ноду и отдельный тестовый домен, направленный на неё. При публикации проверенной конфигурации сохраняется домен рабочего профиля. Не перенаправляйте рабочий домен на тестовую ноду ради проверки.
Чтобы сменить оформление, откройте параметры профиля, выберите другой мини-сайт, проверьте и примените конфигурацию. Чтобы отключить управляемый сайт, верните режим «Сторонний сайт» и заполните домен этого сайта либо снимите профиль с ноды. После успешного применения новой конфигурации движка агент остановит свою веб-службу. Сертификаты сохранятся для повторного использования.
Если что-то не работает
Выполните на ноде:
systemctl status sn-node sn-selfsteal --no-pager
journalctl -u sn-selfsteal -n 80 --no-pager
journalctl -u sn-node -n 80 --no-pager
ss -lntp
- Порт занят: перенесите существующий сайт или используйте отдельную ноду. Агент не останавливает чужие службы Caddy, Nginx или Apache.
- HTTPS не готов: проверьте все A/AAAA-записи, режим «Только DNS», входящий TCP 80 и исходящий доступ по HTTPS. Центр сертификации может ограничивать повторные запросы. Не удаляйте хранилище сертификатов для повторной попытки.
- Нужно обновить агент: выполните обновление через управление движком и агентом в панели, затем дождитесь синхронизации.
- Сайт открывается, VPN не работает: проверьте выбранный инбаунд, порт хоста, публичный ключ/SNI/short ID REALITY, доступ через сквад и активность подписки клиента.