Что такое 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 быстрее. Причины:
- UDP без TCP-overhead — нет окна перегрузки, нет повторных передач на уровне транспорта, нет TCP-over-TCP при туннелировании TCP-приложений
- Меньше копирований памяти — WireGuard работает прямо в ядре на Linux, без переключений контекста
- 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».