XTLS Vision в VLESS — это режим управления потоком данных, который в готовом ключе обычно обозначается параметром:
flow=xtls-rprx-vision
Пользователь может увидеть его рядом с UUID, адресом сервера, SNI, fingerprint, public key и другими параметрами. Иногда в приложении поле называется просто Flow, Поток, XTLS flow или Flow control.
Vision часто воспринимают как отдельный протокол, разновидность шифрования или транспорт. На самом деле это не совсем так.
VLESS остаётся протоколом связи клиента с сервером Xray. RAW, XHTTP или gRPC являются транспортами. TLS и другие механизмы отвечают за защиту внешнего соединения. А flow выбирает способ обработки потока с помощью XTLS.
Упрощённая схема выглядит так:
приложение → HAPP → VLESS → XTLS Vision → транспортное соединение → сервер Xray
Главная задача Vision — распознавать подходящие зашифрованные потоки и передавать их с меньшими накладными расходами. В определённых условиях Linux может использовать механизм Splice и передавать TCP-данные практически напрямую через ядро, не копируя каждый блок через память процесса Xray.
При этом Vision не является волшебным ускорителем. Он не сокращает физическое расстояние до сервера, не исправляет плохой маршрут провайдера и не увеличивает реальную пропускную способность дата-центра.
Что означает параметр flow
В конфигурации VLESS поле flow выбирает алгоритм XTLS.
В актуальной документации Xray доступны следующие варианты:
- пустое значение или отсутствие
flow; xtls-rprx-vision;xtls-rprx-vision-udp443на клиентской стороне.
- пустое значение или отсутствие
Если flow отсутствует или оставлен пустым, используется стандартная схема TLS-прокси.
Если указано:
flow=xtls-rprx-vision
включается XTLS Vision, включая случайное дополнение внутреннего рукопожатия и специальную обработку подходящего трафика.
Если указано:
flow=xtls-rprx-vision-udp443
работает тот же Vision, но клиент не перехватывает UDP-трафик, направленный на порт 443. Этот вариант нужен для приложений, которые принудительно используют QUIC и не умеют нормально переключаться на TCP.
Где находится flow в VLESS-ключе
Упрощённый пример:
vless://UUID@server.example:443?encryption=none&security=reality&type=tcp&flow=xtls-rprx-vision&sni=example.com&fp=chrome&pbk=PUBLIC_KEY&sid=SHORT_ID#Server
Нужный участок:
flow=xtls-rprx-vision
Он отделяется от остальных параметров символами &.
В интерфейсе HAPP значение может быть импортировано автоматически вместе с ключом. В официальных примерах ссылок HAPP также используется сочетание type=tcp и flow=xtls-rprx-vision.
Пользователю не нужно вручную открывать профиль и включать Vision, если параметр уже содержится в исходной ссылке.
XTLS Vision — это не транспорт
Нельзя ставить в один ряд:
- RAW;
- XHTTP;
- gRPC;
- XTLS Vision.
RAW, XHTTP и gRPC определяют способ передачи данных между клиентом и сервером.
Vision определяет, как Xray обрабатывает отдельные потоки внутри подходящей конфигурации.
Поэтому формулировка:
VLESS + RAW + XTLS Vision
имеет смысл.
А выражение:
«Выбрать XHTTP или Vision»
не совсем корректно, поскольку речь идёт о разных уровнях.
В классической и наиболее распространённой конфигурации Vision используется с прямым TCP/RAW-транспортом и TLS либо другим совместимым механизмом транспортной безопасности.
В актуальной документации Xray также существует VLESS Encryption, при котором XTLS может применяться без ограничения по нижележащему транспорту. Но это более новая и сложная серверная схема, которую обычному пользователю не нужно собирать вручную.
XTLS Vision — это не шифрование
Vision не заменяет TLS и не является сертификатом.
Он также не заменяет:
- SNI;
- fingerprint;
- public key;
- short ID;
- UUID;
- транспортную безопасность.
Внешний защищённый слой настраивается отдельно. Xray поддерживает транспортную безопасность tls и reality, а также разные транспортные методы. Параметры клиента и сервера должны быть совместимыми.
Vision работает с уже защищённым потоком и пытается уменьшить лишнюю обработку подходящих данных.
Важно: Vision не расшифровывает содержимое HTTPS-сайтов для оператора сервера. При подходящем TLS 1.3-соединении он может передавать уже зашифрованные данные более прямым способом.
Зачем вообще нужен XTLS Vision
Представим обычное подключение к HTTPS-сайту через proxy.
Приложение создаёт собственное защищённое TLS-соединение с сайтом. Затем этот поток передаётся внутри ещё одного защищённого соединения между VLESS-клиентом и сервером.
Получается несколько уровней обработки:
- приложение шифрует данные для сайта;
- proxy-клиент принимает этот поток;
- внешний транспорт обрабатывает его для отправки серверу;
- сервер принимает и снова обрабатывает данные;
- поток направляется конечному сайту.
Некоторые операции неизбежны, но часть копирований и обработки можно уменьшить.
XTLS Vision распознаёт подходящий внутренний TLS 1.3-поток. После начального этапа соединения Xray может передавать зашифрованные данные более эффективно, не обрабатывая каждый блок обычным способом.
На Linux при соблюдении условий может использоваться Splice.
Что такое Splice
Splice — функция ядра Linux для передачи данных между файловыми дескрипторами без обычного копирования каждого блока через пользовательскую память программы.
В стандартной схеме данные проходят примерно так:
сеть → ядро → память Xray → обработка → память ядра → сеть
При Splice часть пути сокращается:
сеть → ядро Linux → сеть
Xray продолжает управлять соединением, но основной поток может передаваться ядром напрямую.
Это уменьшает:
- копирование данных;
- переключения между ядром и процессом;
- загрузку процессора;
- накладные расходы Xray;
- потребление ресурсов при больших скоростях.
Согласно документации Xray, Splice автоматически применяется в Vision при подходящих условиях: Linux, TCP-подключение на входе и VLESS с XTLS на выходе.
Где именно работает Splice
Splice является функцией Linux. Поэтому он не работает непосредственно в ядре Windows, Android или iOS таким же способом.
Но это не означает, что пользователям этих систем нельзя использовать Vision.
Например:
- на Windows работает HAPP;
- клиент подключается к серверу;
- сервер работает на Linux;
- подходящая часть обработки оптимизируется на серверной стороне.
Vision поддерживается клиентами на разных платформах, но максимальный эффект от Splice проявляется там, где участок обработки работает в Linux и выполняются остальные условия.
На слабом VPS, роутере или одноплатном компьютере уменьшение нагрузки может быть особенно полезным. Сам проект Xray называет низкие накладные расходы и Splice одной из причин, по которым VLESS подходит для OpenWRT, Raspberry Pi и других ограниченных устройств.
Ускоряет ли Vision интернет
Иногда — да, но результат зависит от причины ограничения.
Vision может повысить производительность, если узким местом были:
- процессор сервера;
- копирование данных внутри Xray;
- обработка больших TLS-потоков;
- слабое серверное устройство;
- высокая скорость при большом количестве трафика.
Официальная документация отмечает, что сочетание подходящей транспортной безопасности и XTLS Vision в определённых сценариях может давать многократный рост производительности.
Однако это не означает, что каждый пользователь увидит рост Speedtest в несколько раз.
Vision не исправит:
- медленный домашний интернет;
- слабый Wi-Fi;
- перегруженный канал дата-центра;
- плохой маршрут;
- высокий ping из-за расстояния;
- ограничения конкретного сайта;
- потери пакетов у провайдера;
- перегруженный VLESS-сервер.
Если без Vision сервер уже спокойно обрабатывает доступные 100–300 Мбит/с, пользователь может вообще не заметить разницы.
Уменьшает ли Vision пинг
Сам по себе Vision обычно не способен заметно изменить физическую сетевую задержку.
Ping в первую очередь зависит от:
- расстояния;
- маршрута;
- провайдера;
- дата-центра;
- Wi-Fi;
- загрузки канала;
- потерь пакетов;
- конечного сервиса.
Уменьшение нагрузки на процессор способно сделать задержку стабильнее на перегруженном сервере. Но Vision не превратит маршрут в другую страну из 100 мс в 20 мс.
Поэтому не стоит менять flow только ради уменьшения игрового ping.
Почему Vision перехватывает UDP 443
Порт UDP 443 обычно используется QUIC и HTTP/3.
Современный браузер может открыть сайт не через TCP/TLS, а через QUIC поверх UDP. Для Vision это важно, потому что механизм Splice работает с TCP-потоками.
По умолчанию:
xtls-rprx-vision
перехватывает UDP-трафик к порту 443. В результате браузер не может использовать QUIC и обычно переключается на стандартный HTTPS через TCP.
После переключения появляется больше TCP/TLS-потоков, которые Vision способен обработать и при подходящих условиях передать через Splice. Именно такую цель указывает документация Xray.
Упрощённо:
без перехвата: браузер → QUIC/UDP 443;
с Vision: QUIC не проходит → браузер переключается на HTTPS/TCP 443 → поток может использовать оптимизацию XTLS.
Ломает ли это YouTube и другие сайты
Обычно браузеры умеют переключаться с HTTP/3 на HTTP/2 или HTTP/1.1 поверх TCP. Поэтому пользователь чаще всего вообще не замечает перехват UDP 443.
YouTube, сайты Google и другие современные ресурсы способны работать без QUIC.
Однако некоторые программы:
- принудительно используют QUIC;
- плохо переключаются на TCP;
- используют собственный UDP-протокол на 443;
- считают отсутствие UDP критической ошибкой.
Для таких случаев существует:
xtls-rprx-vision-udp443
Этот вариант не перехватывает UDP 443.
Чем отличается xtls-rprx-vision-udp443
Название может показаться обратным по смыслу.
xtls-rprx-vision:
- включает Vision;
- перехватывает UDP 443;
- заставляет совместимые приложения перейти на TCP;
- увеличивает долю трафика, подходящего для Splice.
xtls-rprx-vision-udp443:
- тоже включает Vision;
- не перехватывает UDP 443;
- позволяет QUIC и другому UDP/443 проходить;
- нужен, если приложение без UDP 443 перестаёт работать.
Обычно вариант без суффикса является стандартным.
-udp443 не означает «ускоренный UDP», «улучшенный QUIC» или «специальный режим для YouTube». Он всего лишь отключает стандартное для Vision вмешательство в UDP-трафик на порт 443.
Когда нужен вариант udp443
Проверить xtls-rprx-vision-udp443 имеет смысл, если:
- конкретное приложение не работает в обычном Vision;
- приложение требует QUIC;
- сервис запускается только при доступном UDP 443;
- обычные сайты работают, а отдельная программа нет;
- поддержка сервиса прямо рекомендует этот вариант.
Не стоит переключаться на него только потому, что QUIC считается современным и быстрым.
При разрешённом UDP 443 часть трафика перестаёт подходить для TCP Splice. Кроме того, QUIC внутри туннеля не всегда даёт преимущество и может хуже переносить определённые сочетания транспортов.
Выбирать вариант нужно по реальной совместимости.
Влияет ли Vision на UDP игр и Discord
Стандартный Vision перехватывает не весь UDP-трафик, а именно трафик к порту 443.
Игры и голосовые серверы Discord могут использовать другие UDP-порты. Такой трафик не блокируется автоматически только из-за xtls-rprx-vision.
Но отдельные сервисы действительно могут использовать UDP 443. Поэтому при проблемах с конкретным приложением нужно проверить:
- какой порт оно использует;
- работает ли UDP через сервер;
- включён ли TUN;
- не мешает ли firewall;
- помогает ли вариант
-udp443; - работает ли другая VLESS-локация.
Не следует автоматически связывать любую проблему с голосом или игрой с параметром Vision.
Должен ли flow совпадать на сервере и клиенте
Да, параметры должны быть совместимыми.
На сервере flow может быть назначен конкретному пользователю VLESS. На клиенте соответствующее значение передаётся в outbound-профиле.
Если сервер ожидает Vision, а клиент отправляет обычное соединение без нужного flow, подключение может завершиться ошибкой.
Если сервер настроен без Vision, простое добавление:
flow=xtls-rprx-vision
в клиентскую ссылку не включит эту функцию на сервере.
Изменение должно выполняться согласованно с обеих сторон.
Можно ли дописать flow в любой VLESS-ключ
Нет.
Недостаточно открыть ссылку и добавить:
&flow=xtls-rprx-vision
Vision должен поддерживаться всей конфигурацией:
- серверным inbound;
- пользователем VLESS;
- клиентским outbound;
- выбранной защитой;
- транспортом;
- версией Xray;
- используемым приложением.
Особенно важно учитывать транспорт. Классическая схема Vision с encryption=none рассчитана прежде всего на прямое TCP/RAW-соединение с совместимой транспортной безопасностью. XHTTP или gRPC не превращаются в Vision-профиль после добавления одного параметра.
В более новых схемах XTLS может использоваться с VLESS Encryption и другими транспортами, но там должны быть правильно настроены поля шифрования на сервере и клиенте. Самостоятельно собирать такую конфигурацию по частям не стоит.
Можно ли удалить flow из рабочего ключа
Тоже не рекомендуется.
Если серверный пользователь настроен с Vision, после удаления flow клиент перейдёт к другой схеме обработки и может перестать подключаться.
Даже если соединение формально установится, поведение будет отличаться от конфигурации, задуманной администратором.
Безопаснее:
- не менять техническую часть ключа;
- запросить отдельный профиль без Vision;
- использовать другой сервер из подписки;
- обновить подписку;
- обратиться в поддержку.
Почему Vision не работает в старом клиенте
Поддержка зависит не только от интерфейса приложения, но и от встроенного ядра Xray.
Старый клиент может:
- не распознать
flow; - удалить параметр при импорте;
- показать неизвестное значение;
- использовать старую версию алгоритма;
- не поддержать текущие параметры transport security;
- выдавать ошибку подключения.
- не распознать
В истории Xray уже менялись алгоритмы дополнения Vision, из-за чего старые и новые версии могли быть несовместимы. Проект рекомендовал обновлять обе стороны подключения.
Если новый ключ не работает:
- обновите HAPP;
- обновите подписку;
- удалите старый профиль;
- импортируйте ссылку заново;
- проверьте ключ на другом устройстве;
- уточните актуальность сервера.
Старые названия XTLS flow
В старых инструкциях могут встречаться:
xtls-rprx-origin;xtls-rprx-direct;xtls-rprx-splice.
Это прежние режимы XTLS. Они больше не являются актуальным вариантом для современной конфигурации Xray.
Сейчас в готовых пользовательских ключах обычно применяется:
xtls-rprx-vision
Не стоит копировать значения direct, origin или splice из старых статей и пытаться использовать их в новом клиенте.
Название Splice при этом продолжает встречаться, но теперь оно обозначает низкоуровневый механизм Linux, который Vision включает автоматически при подходящих условиях, а не отдельное современное значение flow.
XTLS Vision и REALITY — одно и то же?
Нет.
Это разные элементы конфигурации.
REALITY:
- относится к транспортной безопасности;
- изменяет TLS-рукопожатие;
- использует SNI, fingerprint, ключевые параметры и short ID;
- определяет внешний вид и проверку защищённого соединения.
XTLS Vision:
- выбирается через
flow; - управляет обработкой внутренних потоков;
- добавляет случайное дополнение рукопожатия;
- может использовать Splice;
- по умолчанию перехватывает UDP 443.
- выбирается через
Они часто используются вместе, поэтому пользователи воспринимают их как единый протокол. Но технически это разные функции Xray. REALITY совместим не только с RAW, но также с XHTTP и gRPC, тогда как классическая Splice-оптимизация Vision требует более конкретных условий.
Нужно ли искать ключ обязательно с Vision
Не всегда.
Vision полезен, но качество подключения определяется всей системой:
- сервером;
- маршрутом;
- транспортом;
- дата-центром;
- нагрузкой;
- клиентом;
- провайдером.
Хорошо настроенный профиль без Vision может работать быстрее плохо настроенного профиля с Vision.
Для обычного пользователя важнее:
- стабильное подключение;
- нормальная скорость;
- отсутствие потерь;
- работа Telegram, YouTube и Discord;
- совместимость с домашней и мобильной сетью;
- качественная поддержка сервиса.
Vision является преимуществом подходящей конфигурации, но не гарантией качества всего сервиса.
Что можно менять в HAPP
Безопасно менять:
- название профиля;
- активный сервер;
- группу;
- режим маршрутизации;
- global/proxy/direct;
- локальные правила;
- настройки автоматического выбора.
Не следует самостоятельно менять:
flow;security;type;- SNI;
- fingerprint;
- public key;
- short ID;
- UUID;
- порт;
- адрес;
- encryption.
Если требуется профиль с xtls-rprx-vision-udp443, его лучше получить у сервиса либо использовать готовый вариант из подписки.
Что проверить при ошибке flow
Если HAPP показывает ошибку, связанную с Vision или flow:
- Обновите HAPP.
- Обновите подписку.
- Удалите профиль и добавьте его заново.
- Убедитесь, что ссылка скопирована полностью.
- Не меняйте
type,securityиflowвручную. - Проверьте другой сервер.
- Попробуйте другую сеть.
- Проверьте ключ на другом устройстве.
- Передайте точный текст ошибки поддержке.
Не публикуйте полный VLESS-ключ. На скриншоте закройте UUID, адрес сервера, public key, short ID и QR-код.
Краткое сравнение режимов
| Значение flow | Что происходит |
|---|---|
| Пусто | Стандартная обработка TLS-прокси |
xtls-rprx-vision | Vision, padding, перехват UDP 443 и попытка Splice |
xtls-rprx-vision-udp443 | Vision без перехвата UDP 443 |
Итог
XTLS Vision в VLESS — это режим управления потоком данных, а не отдельный протокол, транспорт или тип сертификата.
В готовой ссылке он обозначается:
flow=xtls-rprx-vision
Vision распознаёт подходящие TLS 1.3-потоки и может передавать их с меньшими накладными расходами. В Linux при соблюдении необходимых условий используется Splice: ядро передаёт TCP-данные напрямую, уменьшая копирование и нагрузку на Xray.
Стандартный xtls-rprx-vision перехватывает UDP 443, чтобы браузеры переключались с QUIC на обычный HTTPS через TCP. Это увеличивает долю трафика, который может использовать Splice.
Вариант:
xtls-rprx-vision-udp443
не перехватывает UDP 443 и нужен для программ, которые принудительно используют QUIC или другой UDP-трафик на этом порту.
Vision способен повысить производительность на подходящем сервере, но не исправляет плохой Wi-Fi, перегруженный канал, неудачный маршрут или большое расстояние до сервера.
Пользователю не нужно дописывать, удалять или менять flow вручную. Значение должно соответствовать серверной конфигурации, транспорту, защите и версии Xray. Надёжнее импортировать готовый ключ в HAPP и использовать профиль в том виде, в котором его выдал сервис.
