Flex-VPN

Flex-VPN Journal

Что такое VLESS: протокол, Xray и разбор ключа vless://

VLESS — протокол передачи данных из экосистемы Xray, на котором построен профиль VLESS + Reality. Если у вас есть ключ, который начинается с vless://, ниже разобрано, что в нём записано: как устроен протокол, какую роль играют ядро Xray-core, транспорт и слой защиты, что означает каждое поле ключа и почему в готовом профиле ничего не нужно править вручную.

Материал посвящён законным сценариям сетевой защиты и настройки. Соблюдайте правила, действующие в вашей юрисдикции.

Что такое VLESS простыми словами

VLESS — лёгкий протокол без хранения состояния (stateless). Он появился в 2020 году в проекте V2Ray, а сейчас развивается в Xray. Задача у него узкая: сообщить серверу, кто подключается и куда направить данные, а затем пересылать трафик в обе стороны с минимальными издержками. Клиент предъявляет идентификатор пользователя — UUID, сервер сверяет его со списком разрешённых и, если всё совпало, начинает передачу. Сам VLESS работает поверх потокового соединения, но умеет переносить как TCP-, так и UDP-трафик приложений.

Главная особенность протокола — он почти ничего не добавляет к данным. Заголовок короткий, служебных операций немного, привязки к системным часам нет. Шифрование и то, как соединение выглядит в сети, отданы отдельным слоям: транспорту и TLS или Reality. Благодаря такому разделению один и тот же VLESS работает в разных конфигурациях, а накладные расходы остаются небольшими.

Строго говоря, VLESS — протокол прокси, а не VPN в классическом смысле. Выражение «VLESS VPN» прижилось потому, что клиентские приложения умеют включать режим TUN: создают в системе виртуальный сетевой интерфейс и направляют через него трафик устройства. Для пользователя это выглядит как обычный VPN: включили подключение — и весь трафик или только выбранные приложения идут через сервер.

В Flex-VPN протокол используется в профиле VLESS + Reality — альтернативном варианте подключения поверх TCP/TLS (AmneziaWG, для сравнения, работает поверх UDP). Чем эти профили отличаются на практике и в каких случаях какой удобнее, разобрано в статье AmneziaWG и VLESS + Reality: чем отличаются.

Xray-core: ядро VLESS-клиентов

Xray-core — открытый сетевой движок на языке Go, который в 2020 году отделился от V2Ray и с тех пор развивается самостоятельно. Это «двигатель» без графического интерфейса: он читает конфигурацию, устанавливает соединения по нужному протоколу и маршрутизирует трафик. Кроме VLESS, Xray-core поддерживает VMess, Trojan, Shadowsocks, SOCKS и другие протоколы, а также собственную разработку проекта — слой защиты Reality.

Когда говорят «Xray VPN», обычно имеют в виду связку из графического приложения и ядра внутри него. Обязанности разделены так:

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

Ядро у разных клиентов может отличаться. VLESS и Reality, помимо Xray-core, поддерживает, например, sing-box — другой открытый движок со своим форматом конфигурации. Формат ссылок vless:// у них в основном общий, поэтому один и тот же ключ обычно можно импортировать в разные совместимые приложения. Есть и обратная сторона: если параметр появился в ядре недавно, устаревшая версия клиента может его не распознать. Поэтому приложение для VLESS стоит обновлять так же регулярно, как браузер.

Транспорты: TCP, WebSocket, gRPC и XHTTP

VLESS определяет, что передаётся, а транспорт — каким способом данные идут по сети. В ключе транспорт задаётся параметром type, и он должен совпадать с настройкой сервера: клиент с type=ws не договорится с сервером, который ожидает обычный TCP.

  • TCP (RAW) — данные идут прямо в TCP-соединении без дополнительных обёрток. В актуальной документации Xray этот транспорт называется RAW, но в ссылках обычно по-прежнему пишут type=tcp. Самый простой вариант с минимальными накладными расходами.
  • WebSocket — трафик упаковывается в WebSocket-соединение поверх HTTP. Удобен, когда перед сервером стоит веб-сервер или обратный прокси, который распределяет запросы по путям; путь задаётся параметром path.
  • gRPC — работает поверх HTTP/2 и умеет передавать несколько потоков в одном соединении. В ключе для него указывается имя сервиса — serviceName.
  • XHTTP — более новый транспорт Xray: передаёт данные обычными HTTP-запросами и ответами и может работать по HTTP/1.1, HTTP/2 и HTTP/3.

Xray поддерживает и другие транспорты, например mKCP поверх UDP и HTTPUpgrade. Связка, которую часто называют «VLESS TCP Reality», — это VLESS поверх обычного TCP со слоем защиты Reality. Если в таком ключе дополнительно указан flow=xtls-rprx-vision, получается вариант, известный как VLESS Reality Vision. Не каждый транспорт сочетается с любым слоем защиты и режимом flow: например, xtls-rprx-vision используется только с TCP (RAW). Поэтому транспорт выбирает администратор сервера, а пользователю достаточно клиента, который поддерживает указанный в ключе вариант.

Чем защищено соединение VLESS: TLS, Reality и VLESS Encryption

Классический VLESS сам данные не шифрует — отсюда параметр encryption=none в большинстве ключей. Это не значит, что трафик идёт открытым текстом: защиту берёт на себя внешний слой, заданный параметром security, — TLS или Reality. В новых версиях Xray к этому добавилось необязательное собственное шифрование протокола, которое задаётся параметром encryption.

TLS

Стандартный протокол защиты веб-трафика — тот же, что работает на сайтах с HTTPS. Сервер предъявляет сертификат для своего домена, клиент проверяет его, после чего стороны договариваются о ключах и шифруют всё содержимое соединения. Вариант хорошо изучен и поддерживается практически всеми совместимыми клиентами.

Reality

Слой защиты, созданный в проекте Xray как альтернатива классическому TLS и основанный на TLS 1.3. Клиент проверяет подлинность сервера с помощью его публичного ключа X25519 — он записан в ключе подключения в параметре pbk, — а короткий идентификатор sid используется при авторизации. Содержимое шифруется алгоритмами TLS 1.3, а само подключение выглядит как обычный защищённый HTTPS-трафик.

VLESS Encryption

В 2025 году в Xray-core появилось необязательное собственное шифрование VLESS. Оно построено на гибридном обмене ключами ML-KEM-768 + X25519: ML-KEM — постквантовый механизм инкапсуляции ключей, стандартизированный NIST в FIPS 203, а X25519 — проверенная эллиптическая криптография. Смысл гибридной схемы в том, что обмен ключами остаётся защищённым, пока надёжен хотя бы один из двух алгоритмов. Когда режим включён, в параметре encryption вместо none стоит длинная строка с настройками; поддерживать его должны и клиент, и сервер, а старые версии приложений такой ключ не примут.

encryption=none в ключе — нормальное значение, а не ошибка. При security=tls или security=reality трафик зашифрован внешним слоем, и добавлять что-то вручную не нужно. А вот сочетание security=none и encryption=none означает, что соединение ничем не защищено.

Разбор ключа vless://: адрес, порт, UUID и параметры

Ключ VLESS — это строка-ссылка, в которую упакованы все параметры подключения. Схематично она выглядит так: vless://UUID@адрес:порт?параметры#название. После знака вопроса идут пары вида имя=значение, разделённые символом &. Обезличенный пример: vless://<UUID>@<адрес>:443?type=tcp&security=reality&pbk=<ключ>&sid=<id>&sni=<имя>&fp=<профиль>&flow=xtls-rprx-vision&encryption=none#Server.

ПолеЧто означает
UUIDИдентификатор пользователя: 32 шестнадцатеричных символа в формате 8-4-4-4-12. По нему сервер узнаёт клиента, поэтому он работает как пароль.
АдресIP-адрес или доменное имя сервера.
ПортПорт, на котором сервер принимает подключения; часто это 443 — стандартный порт HTTPS.
typeТранспорт: tcp, ws, grpc, xhttp и другие.
securityВнешний слой защиты: tls, reality или none (без внешней защиты).
encryptionСобственное шифрование VLESS; none означает, что оно не используется.
sniИмя сервера в TLS-рукопожатии.
fpПрофиль TLS-рукопожатия, который использует клиент.
pbk и sidПубличный ключ сервера Reality и короткий идентификатор; нужны только при security=reality.
flowРежим обработки потока в Xray, например xtls-rprx-vision.
path, host, serviceNameПараметры транспортов WebSocket, XHTTP и gRPC.
#названиеПодпись профиля в приложении; на подключение не влияет.

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

Как импортировать ключ VLESS в приложение

Вводить параметры по одному не нужно: совместимый клиент разбирает ссылку сам. Форматов два. Одиночный ключ vless:// описывает одно подключение к одному серверу. VLESS-подписка — это ссылка, по которой приложение загружает список ключей и может обновлять его без повторного импорта. Подробнее о разнице — в материале VPN-ключ и подписка: что получает пользователь.

  1. Получите ключ или ссылку подписки. В Flex-VPN подключение оформляется в официальном Telegram-боте @vpn_flex_bot.
  2. Установите совместимый клиент, например Happ или v2RayTun. Ссылки на приложения собраны на странице загрузки.
  3. Скопируйте ключ или ссылку целиком — без пробелов, переносов строк и обрезанного конца.
  4. В приложении откройте добавление профиля и выберите импорт из буфера обмена. Названия пунктов меню в разных клиентах отличаются, но эта функция обычно находится рядом с кнопкой добавления.
  5. Выберите сервер и подключитесь. При первом запуске система может запросить разрешение на создание VPN-подключения: без него режим TUN не заработает.
  6. Проверьте результат: откройте несколько сайтов и убедитесь, что внешний IP-адрес сменился на адрес сервера.

Пошаговые инструкции для конкретных клиентов — настройка Happ и VLESS + Reality и как добавить ключ и подписку в v2RayTun. Если вы пользуетесь подпиской в Happ, список серверов приложение обновляет само, повторно импортировать ссылку не придётся.

VLESS, VMess и Trojan: отличия

Все три протокола поддерживаются Xray-core и решают похожую задачу, но устроены по-разному.

ПараметрVLESSVMessTrojan
АвторизацияUUIDUUIDПароль
Собственное шифрованиеВ классическом варианте нет; опционально VLESS EncryptionЕсть (AEAD)Нет, защиту даёт TLS
Зависимость от системного времениНетДа, часы клиента и сервера должны быть синхронизированыНет
Внешний слой защитыTLS или RealityНеобязателен, но часто используется TLSTLS
Накладные расходыМинимальныеВыше из-за собственного шифрованияНебольшие

VMess — исходный протокол V2Ray. Он шифрует данные сам и поэтому может работать без внешнего TLS, но платит за это дополнительной нагрузкой и требованием к точному времени: при заметном расхождении часов соединение не установится. VLESS задумывался как облегчённая замена — без привязки ко времени и без двойного шифрования поверх TLS. Trojan изначально рассчитан на работу внутри TLS и проверяет клиента по паролю. Протоколы другого устройства — WireGuard, AmneziaWG, OpenVPN — сравниваются в обзоре протоколов VPN.

Нужно ли менять параметры ключа вручную

Нет. Каждый параметр ключа должен совпадать с настройками сервера: UUID — со списком пользователей, pbk и sid — с ключами Reality, транспорт, порт и flow — с конфигурацией входящего подключения. Стоит изменить хотя бы одно значение, и сервер не примет соединение, а клиент покажет ошибку или зависнет на этапе подключения.

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

Если профиль не подключается, прежде чем трогать параметры, проверьте простые вещи:

  • ключ скопирован полностью и начинается с vless://;
  • приложение обновлено до актуальной версии — старое ядро может не знать новых параметров;
  • на устройстве правильно выставлены дата и время: от них зависит проверка TLS;
  • подписка обновлена в приложении, а другой VPN-клиент в это время не запущен.

Если вы изменили параметры и профиль перестал работать, не пытайтесь угадать исходные значения: удалите профиль и импортируйте ключ заново. Если проблема останется, напишите в поддержку @vpn_flex_support и опишите ошибку, не пересылая сам ключ в открытые чаты.

Частые вопросы

VLESS — это VPN или прокси?

Технически VLESS — протокол прокси. VPN-подобным подключение делает клиент: в режиме TUN он направляет через сервер трафик всего устройства или выбранных приложений.

Шифруется ли трафик, если в ключе указано encryption=none?

Да, если в ключе задан security=tls или security=reality. Параметр encryption относится только к собственному шифрованию VLESS, а защиту в этом случае обеспечивает внешний слой.

Чем VLESS отличается от Xray?

VLESS — протокол, то есть набор правил обмена данными между клиентом и сервером. Xray-core — программа-ядро, которая реализует VLESS и ряд других протоколов.

Чем ключ vless:// отличается от подписки?

Ключ описывает одно подключение к одному серверу. Подписка — ссылка, по которой приложение загружает и обновляет список ключей, поэтому новые серверы появляются без повторного импорта.

Можно ли использовать один ключ VLESS на нескольких устройствах?

Лучше завести отдельный профиль для каждого устройства. Базовый тариф Flex-VPN рассчитан на три устройства, и с отдельными ключами проще управлять доступом и заменить ключ, если устройство потеряно.

Что делать, если приложение не принимает ключ?

Проверьте, что строка скопирована целиком и начинается с vless://, и обновите приложение: старая версия ядра может не поддерживать новые параметры. Если не помогло, обратитесь в поддержку @vpn_flex_support.

Flex-VPN

Готовы настроить подключение?

Выберите тариф на три устройства и получите профили подключения в Telegram.

Открыть бота