Что такое VLESS и чем он отличается от WireGuard

VLESS и WireGuard — два современных VPN-протокола, которые часто упоминают вместе, но устроены они совершенно по-разному. WireGuard — это компактный универсальный VPN с акцентом на скорость и простоту. VLESS — это транспортный протокол, изначально спроектированный для маскировки трафика под обычный TLS-трафик. Разберём, в чём разница на уровне архитектуры и почему каждый из них выбирают для разных задач.

Краткая история

WireGuard появился в 2015 году как академический проект Джейсона Доненфельда и быстро вошёл в ядро Linux в 2020-м. Цель — заменить OpenVPN и IPsec на что-то простое: примерно 4 тысячи строк кода против сотен тысяч у конкурентов. Меньше кода — меньше поверхность для уязвимостей.

VLESS — это эволюция протокола VMess, появившаяся в 2020 году в рамках проекта V2Ray (теперь Xray). Если VMess был «универсальным», то VLESS пошёл в сторону минимализма транспортного слоя. Главная идея: положить шифрование на плечи TLS, а сам протокол сделать максимально похожим на обычный HTTPS-трафик, чтобы трудно было отличить VPN-соединение от посещения сайта.

Архитектурные различия

Уровень OSI

WireGuard работает на сетевом уровне (Layer 3) — он передаёт IP-пакеты внутри UDP-туннеля. С точки зрения операционной системы это полноценное сетевое устройство (wg0 на Linux).

VLESS работает на прикладном уровне (Layer 7) — это поток TCP-байтов поверх существующего транспорта (TLS, WebSocket, gRPC). С точки зрения сети это просто очередное TLS-соединение, неотличимое от любого HTTPS-запроса.

Шифрование

WireGuard использует фиксированный набор криптографии: ChaCha20 для шифрования, Poly1305 для целостности, Curve25519 для обмена ключами, BLAKE2s для хеширования. Никаких настроек — либо так, либо никак. Это удобно для безопасности (нечего настроить неправильно), но негибко.

VLESS сам по себе не шифрует трафик — он опирается на транспорт. Если транспорт — TLS 1.3, шифрование такое же надёжное, как у любого современного сайта. Сам VLESS добавляет лишь идентификацию пользователя по UUID. В современных конфигурациях используется ещё и Reality — это техника, при которой клиент представляется обычным TLS-клиентом, идущим на популярный сайт, и сервер действительно завершает TLS-рукопожатие с подложным доменом. С точки зрения внешнего наблюдателя это неотличимо от посещения этого сайта.

Установление соединения

WireGuard использует UDP. Установление туннеля — это 1-RTT обмен ключами (handshake) с использованием Noise Protocol. После этого пакеты летят без дополнительных накладных расходов.

VLESS через TLS/Reality — это TCP + полноценное TLS 1.3 рукопожатие (1-2 RTT). Это медленнее на старте, но соединение выглядит как обычный HTTPS, что критично для маскировки.

Производительность

При прочих равных WireGuard быстрее. Причины:

  1. UDP без TCP-overhead — нет окна перегрузки, нет повторных передач на уровне транспорта, нет TCP-over-TCP при туннелировании TCP-приложений
  2. Меньше копирований памяти — WireGuard работает прямо в ядре на Linux, без переключений контекста
  3. ChaCha20 быстрее на ARM и устройствах без AES-NI — это особенно заметно на мобильных

VLESS+TLS медленнее из-за TCP, TLS-overhead и работы в userspace. На быстром канале (>500 Мбит/с) разница может быть в 1.5-2 раза в пользу WireGuard. На обычном домашнем интернете (50-200 Мбит/с) разница незаметна — оба протокола легко загружают канал.

Маскировка трафика

Главное отличие. WireGuard использует свой узнаваемый формат пакетов: одиночный 32-байтный заголовок с маркером типа сообщения. Любая система анализа трафика, обученная распознавать WireGuard, легко его видит и может блокировать целиком по характерной сигнатуре. Маскировку WireGuard не предусматривает архитектурно — это техническое решение, а не политическое.

VLESS+Reality, напротив, спроектирован специально под устойчивость к анализу. Внешне это поток TLS 1.3 на 443-й порт с SNI популярного сайта (например, www.microsoft.com). DPI-системы видят обычный HTTPS-трафик, потому что это и есть TLS 1.3-рукопожатие с реальным сертификатом этого домена. Различить VLESS-соединение и обычный визит на сайт сложно — это требует активных проб (active probing), и Reality умеет защищаться от них.

Когда что выбирать

WireGuard стоит выбирать, когда:

  • Нужна максимальная скорость и минимальная задержка
  • Канал должен быть стабильным под высокой нагрузкой
  • Среда «дружелюбна» к VPN-трафику — корпоративная сеть, домашний интернет в большинстве стран
  • Важна простая настройка и аудит конфигурации

VLESS+Reality стоит выбирать, когда:

  • Среда может анализировать трафик и блокировать узнаваемые протоколы
  • Важна неотличимость соединения от обычного HTTPS
  • Нужно работать через порты 443 (HTTPS) или 80 (HTTP), потому что другие закрыты
  • Готовы немного потерять в скорости ради устойчивости

Можно ли использовать оба?

Да, и многие так и делают. Например: WireGuard основным каналом дома, VLESS+Reality — резервным в командировках. Технически это два независимых VPN-клиента, и переключение между ними занимает пару секунд.

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

Итог

WireGuard и VLESS — это не конкуренты, а инструменты для разных задач. WireGuard оптимизирован под скорость и простоту в спокойной среде. VLESS — под маскировку и работу в условиях, когда трафик пристально анализируется. Современные VPN-сервисы предлагают оба и позволяют переключаться между ними.

Если хотите подробнее про другие VLESS-совместимые протоколы — Shadowsocks и Trojan — читайте материал «VLESS vs Shadowsocks vs Trojan».