Если WireGuard и OpenVPN — это про построение туннеля, то стек Xray решает другую задачу: сделать поток данных статистически неотличимым от обычного веб-трафика. Подход принципиально иной, и терминология поначалу путает, потому что VLESS, XHTTP и Reality — три независимых слоя, которые собираются в конструктор.

Разберём каждый.

VLESS: протокол, который ничего не шифрует

VLESS — наследник VMess из экосистемы V2Ray/Xray. Главное архитектурное решение: у него нет собственного шифрования.

Звучит тревожно, но логика здравая. VMess шифровал данные сам, а затем этот трафик обычно заворачивали в TLS — получалось двойное шифрование. Второй слой не добавлял защиты, зато расходовал процессорное время и, что важнее, создавал узнаваемые особенности: собственный формат заголовка со временем стал сигнатурой для анализаторов.

VLESS делегирует шифрование транспортному слою — как правило, TLS 1.3. Сам протокол занимается только идентификацией пользователя (по UUID) и маршрутизацией. Заголовок предельно короткий.

Следствия:

  • ниже нагрузка на процессор — особенно заметно на роутерах и слабых VPS;
  • нечего детектировать на уровне протокола — весь трафик выглядит как содержимое TLS-сессии;
  • безопасность целиком зависит от транспорта — VLESS без TLS передаёт данные открытым текстом, и это не теоретическая оговорка, а реальная ошибка конфигурации.

Транспорт: как именно данные попадают в сеть

Поверх VLESS выбирается транспорт. Исторически их было несколько — TCP, WebSocket, gRPC, HTTP/2, — а сейчас основным стал XHTTP.

XHTTP (ранее известный как SplitHTTP) передаёт данные обычными HTTP-запросами: загрузка идёт серией POST-запросов, скачивание — длительным GET-ответом. Ключевое свойство — совместимость с промежуточными узлами. Такой трафик спокойно проходит через CDN, обратные прокси и корпоративные веб-прокси, потому что для них это законные HTTP-запросы, а не непонятный поток байт.

XHTTP поддерживает мультиплексирование: несколько логических соединений живут внутри одной HTTP-сессии, что снижает накладные расходы на установку соединений.

Для сравнения:

Транспорт Особенность Проходит через CDN
TCP минимум накладных расходов нет
WebSocket проверенный, широко поддерживается да
gRPC эффективен на нестабильных каналах частично
XHTTP HTTP-запросы, мультиплексирование да

Reality: TLS с чужим сертификатом

Reality — самая интересная часть конструкции и главная причина, по которой стек популярен.

Проблема классической схемы «VLESS + TLS» в том, что для TLS нужен домен и сертификат. Сервер с валидным сертификатом, но без настоящего сайта за ним, выглядит подозрительно при активной проверке: если постучаться на этот адрес браузером, ответит либо заглушка, либо ничего.

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

Внешне соединение неотличимо от обращения к популярному сервису: настоящий домен в SNI, настоящий сертификат, корректная цепочка доверия. Отличить можно только зная секрет.

Дополнительный плюс — не нужен собственный домен и сертификат, а значит нет расходов и нет следа в журналах прозрачности сертификатов.

Требование к маскировочному сайту: он должен поддерживать TLS 1.3 с X25519, быть доступным из сети клиента и не принадлежать тому же дата-центру, что и прокси-сервер.

Как это собирается вместе

Типичная рабочая конфигурация:

VLESS (идентификация)

XHTTP (транспорт HTTP-запросами)

Reality (TLS с заимствованным сертификатом)

TCP/443

Наблюдатель видит: TLS 1.3-соединение к известному домену на 443 порту с корректным сертификатом, внутри — HTTP-запросы. Ровно так выглядит обычный веб-сёрфинг.

Существует и вариант «VLESS + XTLS Vision + Reality», где Vision оптимизирует передачу, устраняя двойное шифрование для уже зашифрованного содержимого. Он даёт выше пропускную способность, но хуже проходит через CDN.

Чего это стоит

Сложность настройки. Здесь нет конфигурации из десяти строк, как у WireGuard. Нужно выбрать маскировочный домен, сгенерировать пары ключей, согласовать параметры транспорта, настроить маршрутизацию. Ошибка в любом месте либо ломает соединение, либо — что хуже — оставляет его работающим, но заметным.

Клиенты сложнее. Требуется приложение с поддержкой Xray: v2rayNG, Hiddify, Streisand, NekoBox и подобные. Это не системный VPN в одно нажатие.

Это прокси, а не VPN. По умолчанию трафик направляют выборочно — через правила маршрутизации на уровне приложений. Гибко, но требует понимания. Полноценный режим туннеля тоже возможен, но настраивается отдельно.

Производительность ниже, чем у WireGuard. Обработка идёт в пользовательском пространстве, добавляются слои HTTP и TLS. Для веба и видео разницы не видно, на гигабитных скоростях — видно.

Сравнение с другими подходами

AmneziaWG VLESS + XHTTP + Reality
Тип VPN-туннель прокси
Маскировка случайный поток UDP неотличим от HTTPS
Скорость как у WireGuard ниже
Сложность настройки низкая высокая
Проход через CDN нет да
Клиент стандартный WireGuard-подобный специализированный

Выбор зависит от того, насколько агрессивно фильтруется трафик. AmneziaWG проще и быстрее, его достаточно в большинстве случаев. Стек Xray выигрывает там, где недостаточно скрыть сигнатуру и нужно выглядеть именно обычным HTTPS.

Коротко

VLESS убирает лишнее шифрование, XHTTP превращает поток в последовательность HTTP-запросов, Reality одалживает сертификат существующего сайта. По отдельности каждый слой прост; вместе они дают трафик, который выдерживает и пассивный анализ, и активную проверку. Плата — настройка, требующая понимания всех трёх частей.