Народный

Протоколы

XTLS Vision — подпротокол flow=xtls-rprx-vision

Текущий стабильный XTLS flow (с 2023): сплайсит пользовательский TLS-трафик через VPN-туннель без двойного шифрования, переписывает длины record'ов и paddings для маскировки от TLS-in-TLS DPI.

Определение

XTLS Vision (xtls-rprx-vision) — это текущий стандартный flow-режим протокола XTLS, доступный в xray-core и совместимых клиентах с 2023 года, который обеспечивает прозрачную передачу пользовательского TLS-трафика через VLESS-туннель без двойного шифрования и без видимой TLS-in-TLS-сигнатуры. Это эволюция трёх предыдущих flow-режимов (direct, origin, splice), объединившая их сильные стороны.

Vision — то, что делает связку VLESS + Reality жизнеспособной в РФ в 2026: без него Reality защитил бы от active probing, но оставлял бы уязвимость к пассивной детекции вложенного TLS-handshake.

Как работает

Vision эксплуатирует факт, что VLESS не нуждается в собственном шифровании — все криптографические гарантии даёт внешний TLS, поэтому можно избежать двойной обёртки и сразу видимых TLS-in-TLS-паттернов. Алгоритм:

  1. Outer handshake. Клиент и сервер устанавливают TLS 1.3 или Reality-handshake (с переписанным SNI и сертификатом whitelisted-домена).
  2. VLESS-header. Клиент шлёт первый пакет с VLESS-заголовком: command (TCP/UDP), target_host, target_port, optional first-data.
  3. Vision-handshake. Сервер парсит VLESS-header. Если внутри идёт TLS-handshake пользователя (это распознаётся по первому байту 0x16 — TLS Handshake content type), Vision переходит в splice-mode.
  4. Length rewriting. Vision переписывает длины первых TLS-record’ов, чтобы они выглядели как обычные application-data, а не handshake-record’ы. Длинные handshake-record’ы режутся на несколько коротких с padding’ом.
  5. Padding injection. В первые 5–10 пакетов добавляется случайный padding (50–600 байт), что сбивает статистический анализ длин.
  6. Splice. После handshake-фазы Vision переключает поток в zero-copy режим: байты от клиента форвардятся upstream’у напрямую через TCP splice(2) syscall (Linux) или эквивалент. Сервер не расшифровывает payload.

Производительность. Поскольку Vision не делает re-encrypt, CPU-cost минимальный. На быстрых линиях (1 Gbps+) разница с обычным VLESS+TLS заметна — Vision держит 1.5–2× больший throughput при тех же ресурсах сервера.

Применение в России 2026

Vision — обязательный компонент VLESS-конфигов для РФ. Симптом отсутствия Vision: трафик работает несколько минут, потом падает throughput или появляется RST. Это TLS-in-TLS детектируется ТСПУ (по характерным длинам record’ов и таймингам).

Конфигурация:

  • Xray-core. В outbound — "flow": "xtls-rprx-vision". Без этого VLESS использует обычное шифрование.
  • Sing-box. В outbound "flow": "xtls-rprx-vision". Поддержка с версии 1.2.
  • Hiddify, NekoBox, Husi. Импортированные vless://...?flow=xtls-rprx-vision&... ссылки настраиваются автоматически.
  • Сторона сервера. Должна тоже иметь Vision-flow и совместимую версию xray (1.8+).

Old flows. Если в импортированном конфиге увидите:

  • xtls-rprx-direct — устарел с 2021, не использовать (детектируется ТСПУ).
  • xtls-rprx-origin — устарел с 2022, не использовать.
  • xtls-rprx-splice — Linux-only промежуточная версия, заменена Vision.
  • Без flow — обычное VLESS шифрование, работает но медленнее и больше TLS-in-TLS-риск.

Юзеру: при покупке VPN или импорте конфигов всегда проверяйте, что flow = xtls-rprx-vision. Это маркер актуального стека. Если провайдер шлёт что-то другое — попросите обновить или меняйте сервис.

Связанные термины

XTLS — общая система, частью которой является Vision. VLESS — базовый протокол. VLESS Reality — handshake-слой. TLS-in-TLS — атака, против которой Vision защищает. Xray-core — основная реализация.

Источники