Skip to content

About

Настройка VLESS XHTTP TLS через готовый CDN: Windows/Linux, один или два VPS, отдельные ссылки для пользователей.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

CDN XHTTP Setup

Программа для настройки VLESS XHTTP TLS через готовый CDN. Запускается на домашнем компьютере с Windows или Linux, подключается к VPS по SSH и выполняет установку. Выдаёт отдельную ссылку для каждого пользователя с адресом вашего CDN-домена и проверяет VLESS-туннель с вашего компьютера.

Можно использовать один VPS или добавить второй сервер для выхода в интернет. CDN-ресурс и DNS-записи нужно подготовить заранее.

Что понадобится

  • Python 3.10 или новее на вашем компьютере. Скачать Python. В установщике Windows отметьте Add Python to PATH.
  • VPS с Ubuntu 22.04 или 24.04, доступ по SSH через root или пользователя с sudo. Используйте сервер без других сайтов и панелей на портах 80/443.
  • Домен сервера-источника (origin), например origin.example.com. Его A-запись должна указывать на IP вашего VPS.
  • Готовый CDN с собственным доменом, например cdn.example.com, настроенным CNAME и выпущенным HTTPS-сертификатом.

На VPS должны быть доступны SSH, TCP 80 и 443. В CDN укажите HTTPS к origin, Host/SNI origin-домена, разрешите GET/HEAD/OPTIONS, отключите кеширование и сохраните заголовки запроса X-Cache и X-Data-N. Подробная настройка CDN.

Как запустить

1. Скачайте архив cdn-xhttp-setup-vX.Y.Z.zip из Assets последнего выпуска и распакуйте его. Для версии 0.4.0 файл называется cdn-xhttp-setup-v0.4.0.zip.

2. Откройте терминал в распакованной папке.

Windows — командная строка CMD:

run.cmd

Linux:

bash run.sh

При первом запуске нужен интернет: программа подготовит окружение и установит зависимости в свою папку. При следующих запусках исправное окружение используется повторно. Если Linux сообщает об отсутствии venv, установите пакет python3-venv.

3. Подключитесь к VPS и пройдите мастер.

  • Введите IP, SSH-логин, порт и пароль сервера. При первом подключении сверьте отпечаток SSH-ключа с данными в консоли VPS.
  • Если программа найдёт свою прежнюю установку, она загрузит её настройки и UUID с сервера и откроет управление. Локальный deployment.json для этого не обязателен.
  • Для нового сервера выберите один VPS или мост с отдельным exit. Укажите домены, email для сертификата, название подключения и количество ссылок.
  • Проверьте сводку и подтвердите установку.

Пароли вводятся скрыто, живут только в памяти и не сохраняются в JSON. В вопросах Y/N подходят строчные y/n, а при опечатке программа повторит вопрос. Параметры XHTTP задаются автоматически.

4. Заберите ссылки из result/vless.txt.

После настройки VPS программа сразу записывает ссылки и клиентские конфиги. Адрес подключения в них — CDN-домен на порту 443, он же в TLS SNI и HTTP Host; конкретный адрес CDN (edge) выбирает DNS самого CDN. Искать IP и переносить его куда-либо не требуется.

Затем программа проверяет подключение с вашего компьютера: запрос /cdn-check через CDN-домен и временный Xray с авторизованным VLESS, передачей данных и внешним IP. Проверка только информирует: ссылки выдаются и при её неудаче, а результат записывается в result/status.json. Активный VPN и настройки сети компьютера не переключаются. Подробнее о проверке.

Каждая строка vless.txt имеет свой UUID. Импортируйте её в клиент с поддержкой VLESS, XHTTP и extra. Данные от клиента передаются в заголовках запросов (Yandex CDN не пропускает тело OPTIONS), поэтому нужно ядро Xray с uplinkDataPlacement: проверены 26.3.27, 26.7.11 и 26.9.9. Если импорт теряет параметры, используйте полный result/client.json или соответствующий файл из result/clients/. Режим packet-up должен сохраниться в XHTTP settings, вне extra.

Управление существующей установкой

Запустите run.cmd или bash run.sh повторно. Если локальный deployment.json есть, откроется меню; без него подключитесь к origin для восстановления. В меню можно:

  • заново выдать ссылки с прежними UUID и проверить подключение;
  • изменить количество UUID: при увеличении сохранить прежние и добавить новые, при уменьшении отозвать последние;
  • изменить домены, название, email сертификата, путь, профиль и ключ padding;
  • повторить установку с сохранёнными UUID или подключиться к другому VPS.

Перед применением изменений и повторной выдачей ссылок программа перечитывает серверные настройки по SSH. Это сохраняет актуальный список UUID, даже если установкой управляли из другой папки. При уменьшении количества UUID удалённые ссылки перестают работать. Изменение CDN/origin-доменов требует согласованной настройки DNS и панели CDN владельцем.

С сохранённой конфигурацией доступны прямые команды:

run.cmd deploy
run.cmd check
run.cmd link

На Linux замените run.cmd на bash run.sh. link и check сначала читают актуальную установку по SSH и выдают ссылки, затем проверяют подключение; check завершается кодом 2, если туннель не подтверждён. После успешного deploy используются только что применённые настройки. Если SSH-чтение не удалось, ссылки не выдаются: список действующих UUID не подтверждён. Прежняя команда repair-edge выполняет link.

Для просмотра будущих серверных конфигов без сети используйте run.cmd plan --output preview. Такой план не подтверждает доступность подключения.

Не публикуйте deployment.json, его резервные копии и папку result: они содержат данные доступа. Пользователю достаточно передать одну назначенную ему ссылку.

Если изменение двух VPS прервалось, сохраните deployment.pending.json и выберите продолжение незавершённого изменения в меню. Это повторит применение с теми же UUID. Восстановление после ошибки.

Что программа настраивает

Установщик ставит отдельные Nginx/Xray-службы проекта, выпускает и продлевает сертификат origin, сохраняет резервные копии своих конфигов. Поддерживаются 1–1000 UUID и прямой выход с origin либо выход через второй VPS.

CDN-ресурс, DNS-записи и сертификат CDN-домена настраивает владелец у провайдера. Программа не меняет облачную панель. Для второго VPS нужны его SSH-доступ и отдельный домен; схема двух серверов.

Обновление программы

Начиная с 0.3.0, при обычном интерактивном запуске программа проверяет новый стабильный выпуск на GitHub и предлагает установку Y/N. Обновление выполняется после согласия: новая версия получает отдельную соседнюю папку и копию пользовательских данных. Исходная папка и установленные VPS сохраняются. При недоступности GitHub можно продолжать работу с текущей версией.

Если у вас 0.1.x или 0.2.0: закройте установщик, сохраните старую папку, распакуйте новый выпуск отдельно и перенесите deployment.json, known_hosts, а также deployment.pending.json, если он есть. Для сохранения старых ссылок и отчётов перенесите result; сохраните и свои нестандартные файлы настроек/резервные копии. .venv переносить не нужно. Запустите новую копию и откройте управление прежней установкой. Создание новых UUID для обновления программы не нужно.

Переход на 0.4.0: данные клиента теперь идут в заголовках запросов, потому что Yandex CDN отклоняет тело OPTIONS. После обновления программы выберите в меню 4 — Повторить установку с сохранёнными настройками (или deploy): UUID, домены и настройки сохранятся, на VPS встанут новая схема и Xray 26.9.9. Затем заново раздайте ссылки. Программа сама сообщает, если VPS ещё работает по прежней схеме. Подробнее.

Пошаговое обновление и восстановление описывает перенос нескольких конфигураций, незавершённого изменения и восстановление без локального файла. SSH-пароли вводятся заново.

Совместимость

Установщик рассчитан на Ubuntu 22.04/24.04 с systemd, amd64/arm64. Версия Xray на сервере закреплена на 26.9.9. Документация по тестированию отделяет локальные проверки и прежнюю серверную приёмку от проверки на конкретном CDN и сети.

Помощь и диагностика · Устройство программы · Тесты

Лицензия: MIT.

About

Настройка VLESS XHTTP TLS через готовый CDN: Windows/Linux, один или два VPS, отдельные ссылки для пользователей.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages