Протоколы
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-паттернов. Алгоритм:
- Outer handshake. Клиент и сервер устанавливают TLS 1.3 или Reality-handshake (с переписанным SNI и сертификатом whitelisted-домена).
- VLESS-header. Клиент шлёт первый пакет с VLESS-заголовком: command (TCP/UDP), target_host, target_port, optional first-data.
- Vision-handshake. Сервер парсит VLESS-header. Если внутри идёт TLS-handshake пользователя (это распознаётся по первому байту
0x16— TLS Handshake content type), Vision переходит в splice-mode. - Length rewriting. Vision переписывает длины первых TLS-record’ов, чтобы они выглядели как обычные application-data, а не handshake-record’ы. Длинные handshake-record’ы режутся на несколько коротких с padding’ом.
- Padding injection. В первые 5–10 пакетов добавляется случайный padding (50–600 байт), что сбивает статистический анализ длин.
- 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 — основная реализация.
Источники
- GitHub: XTLS/Xray-core — Vision flow — основной репозиторий.
- XTLS Vision overview — official документация по flow’ам.
- Project V community — обсуждения и обновления.