Colitu VPN
Протоколы

Hysteria2 или VLESS Reality: какой протокол выбрать

Два современных VPN-протокола в сравнении: QUIC поверх UDP и TLS поверх TCP. Скорость на сетях с потерями, что происходит при ограничении UDP, как каждый выглядит в сети и как Colitu выбирает за вас.

Hysteria2 и VLESS Reality — два из режимов подключения в Colitu. Они рассчитаны на разные условия, а практическая разница сводится к одному выбору: транспорту под ними. Hysteria2 работает поверх UDP, VLESS Reality — поверх TCP. В этой статье разбираем, что это значит для скорости, для сетей с ограничениями и для того, что видит наблюдатель в сети, и когда лучше подходит каждый из них.

Hysteria2 вкратце

Hysteria2 — прокси-протокол на основе QUIC, транспорта поверх UDP, на котором работает HTTP/3. Рукопожатие — стандартный TLS 1.3, сервер предъявляет действительный сертификат. Внутри соединения приложение проходит аутентификацию HTTP/3-запросом, а запрос без учётных данных получает такой же ответ, какой дал бы обычный веб-сервер. Каждое TCP-соединение с вашего устройства получает отдельный поток QUIC, а UDP-трафик — звонки, игры, DNS — идёт датаграммами QUIC.

VLESS Reality вкратце

VLESS Reality сочетает VLESS, минималистичный прокси-протокол, и Reality — слой TLS 1.3, которому не нужен собственный сертификат. Приложение начинает рукопожатие с именем настоящего стороннего сайта и отпечатком, имитирующим Chrome. В ClientHello спрятан небольшой блок аутентификации. Если он верный, сервер сам завершает рукопожатие и туннель запускается. Если нет, соединение побайтово пересылается на настоящий сайт. Colitu также включает XTLS Vision, который уменьшает характерный рисунок «TLS внутри TLS», возникающий при вложенном HTTPS.

Транспорт: QUIC поверх UDP или TLS поверх TCP

В этом главное различие.

  • Hysteria2 использует QUIC поверх UDP. Потоки внутри одного соединения независимы, поэтому потерянный пакет в одном потоке не задерживает остальные.
  • VLESS Reality использует TLS 1.3 поверх TCP. Это единый упорядоченный поток байтов — такое же соединение, какое браузер открывает к любому HTTPS-сайту.

Ни один из них не лучше во всех ситуациях. Они подходят для разных сетей.

Скорость на каналах с потерями

Классическое управление перегрузкой в TCP воспринимает каждый потерянный пакет как признак перегруженного канала и снижает скорость. В мобильной сети, на загруженном Wi-Fi или на длинном международном маршруте пакеты часто теряются по другим причинам: из-за помех или слабого сигнала. TCP замедляется без необходимости и медленно восстанавливается.

В Hysteria2 есть собственное управление перегрузкой, Brutal. Если доступная пропускная способность известна, он продолжает слать данные с этой скоростью и компенсирует потери повторной отправкой. Если пропускная способность не задана, используется BBR, который оценивает полосу, а не реагирует на каждый потерянный пакет. В итоге на каналах с потерями скорость ровнее. Звонки и игры тоже выигрывают, потому что UDP-трафик идёт датаграммами.

VLESS Reality ведёт себя как любой протокол на TCP. На стабильном проводном или Wi-Fi-соединении с малыми потерями он работает хорошо, а Vision держит накладные расходы низкими. На канале с сильными потерями он замедляется, и там Hysteria2 обычно быстрее.

Когда UDP ограничен в сети

Некоторые корпоративные, гостиничные, кампусные и мобильные сети ограничивают UDP или QUIC. В такой сети Hysteria2 не подключается или работает медленно. Здесь сильнее VLESS Reality: он работает поверх TCP и там, где работает обычный HTTPS.

То же относится к сетям, которые обращаются с QUIC к незнакомым адресам иначе, чем с TCP. Причины и способы действий разобраны в статье UDP ограничен: что это значит для VPN.

Как каждый выглядит в сети

  • Hysteria2 выглядит как HTTP/3 к сайту с действительным сертификатом. Пассивный наблюдатель видит трафик QUIC, а проверочный запрос без учётных данных получает ответ обычного веб-сервера.
  • VLESS Reality выглядит как рукопожатие TLS 1.3 с настоящим сторонним сайтом, с отпечатком, похожим на браузерный. Проверочный запрос без ключа пересылается на этот сайт и видит его настоящий сертификат и страницы.

Оба устроены так, чтобы соединение напоминало обычный веб-трафик. Различается способ: один использует собственный сертификат и HTTP/3, другой заимствует рукопожатие настоящего сайта.

Сравнение в таблице

Hysteria2VLESS Reality
ТранспортUDP, QUICTCP
РукопожатиеTLS 1.3 внутри QUICTLS 1.3 с Reality
Как выглядитHTTP/3 к сайту с действительным сертификатомTLS-рукопожатие с настоящим сторонним сайтом
Управление перегрузкойСобственное (Brutal, а без заданной полосы — BBR)Классический TCP
Каналы с потерями (мобильная сеть, загруженный Wi-Fi)Хорошо держит скоростьЗамедляется, как любой протокол на TCP
Звонки и игрыUDP идёт датаграммамиИдут внутри потока TCP
Где UDP ограниченНе подключается или медленныйРаботает
Реакция на проверочные запросыОтвечает как веб-серверПересылает на настоящий сайт
Стабильное проводное или Wi-Fi-соединениеОчень хорошоОчень хорошо

Так какой выбрать

  • Телефон в мобильной сети, загруженный или дальний Wi-Fi, длинные маршруты, звонки и игры: Hysteria2.
  • Сеть, ограничивающая UDP или QUIC, или там, где Hysteria2 не подключается: VLESS Reality.
  • Стабильное соединение с малыми потерями: подойдёт любой.

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

Colitu выбирает за вас

Выбирать не нужно. Adaptive Connect — автоматический режим в каждом приложении Colitu — пробует режимы подключения в заданном порядке и проверяет, что реальный трафик идёт, прежде чем оставить режим.

Hysteria2 стоит первым на всех платформах: когда UDP проходит, он лучше всех справляется с потерей пакетов. Если UDP ограничен, рукопожатие не удаётся или туннель ничего не передаёт, приложение переходит дальше. На Android и iOS следующий режим — VLESS Reality, затем VLESS XHTTP, Trojan и Shadowsocks 2022. На Windows и Linux приложение пробует TCP-режимы в порядке измеренного времени соединения. Режим, который ничего не передал, откладывается, и следующее подключение не тратит на него время.

Все режимы зашифрованы, поэтому переключение никогда не означает возврата к незашифрованному соединению. Подробности — на страницах Центра протоколов: Hysteria2, VLESS Reality и Adaptive Connect.

Источники