Hysteria2
Hysteria2 работает поверх QUIC с TLS 1.3 и своим управлением скоростью. Как он устроен, почему быстр при потерях, чем мешает блокировка UDP и его роль в Colitu.
Hysteria2 — первый режим подключения, который Colitu Adaptive Connect пробует на всех платформах. Это прокси-протокол на основе QUIC — UDP-транспорта, на котором работает HTTP/3. Он создан для того, чтобы держать скорость в сетях, где теряются пакеты.
Что это такое
Hysteria2 разрабатывается открытым проектом apernet, документация — на v2.hysteria.network. Во второй версии протокол переработан так, что аутентификация проходит внутри стандартного обмена HTTP/3, и сервер Hysteria2 выглядит как обычный сайт. Протокол опирается на три открытых стандарта:
- QUIC (RFC 9000): зашифрованный транспорт поверх UDP с множеством независимых потоков внутри одного соединения.
- TLS 1.3 (RFC 8446): QUIC всегда использует рукопожатие TLS 1.3, чтобы согласовать ключи и проверить сервер.
- HTTP/3 (RFC 9114): версия HTTP, работающая поверх QUIC; Hysteria2 использует её для шага аутентификации.
Как это работает
- Приложение открывает QUIC-соединение с сервером по UDP. Рукопожатие QUIC — это рукопожатие TLS 1.3, и приложение проверяет сертификат сервера так же, как браузер. На серверах Colitu это настоящий сертификат, который выпускается автоматически через ACME.
- Внутри соединения приложение отправляет HTTP/3-запрос со своими учётными данными. Если они верны, сервер подтверждает это, и соединение становится туннелем. Запрос без верных данных обрабатывается как обычный веб-запрос, поэтому тот, кто зондирует сервер, видит обычный HTTP/3-сервер.
- Во время этого обмена стороны также передают сведения о пропускной способности, которые использует управление скоростью (о нём ниже).
- Каждое TCP-соединение с вашего устройства — страница сайта, загрузка файла — получает собственный поток QUIC. Потоки независимы, поэтому потеря пакета в одном не задерживает остальные.
- UDP-трафик с устройства — звонки, игры, DNS — передаётся датаграммами QUIC, а не втискивается в поток.
Управление скоростью: почему скорость держится при потерях
Классическое управление перегрузкой в TCP воспринимает каждый потерянный пакет как признак перегруженного канала и снижает скорость отправки. В Wi-Fi и мобильных сетях пакеты часто теряются по другим причинам: помехи, переключение между базовыми станциями, слабый сигнал. TCP замедляется без необходимости и медленно восстанавливается, особенно на больших расстояниях.
У Hysteria2 есть собственный алгоритм управления перегрузкой — Brutal. Когда доступная полоса известна, Brutal отправляет данные с этой скоростью и компенсирует потери повторной передачей, а не замедлением. Если полоса не задана, Hysteria2 переходит на BBR, который оценивает доступную полосу, а не реагирует на каждый потерянный пакет. В обоих случаях на каналах с потерями скорость стабильнее, чем у TCP с управлением по потерям.
Зачем Colitu использует Hysteria2
Многие проблемы с VPN в дороге связаны не с блокировками, а с плохой связью: поезд, переполненное кафе, длинный маршрут между странами. TCP-протоколы там теряют скорость, а Hysteria2 создан именно для таких условий. Кроме того, он даёт настоящую маскировку: действительный сертификат и рукопожатие, похожее на HTTP/3, который уже используют крупные сайты.
Где он силён
- Мобильный интернет. Потери в радиоканале и меняющийся сигнал — именно то, с чем хорошо справляются компенсация потерь в Brutal и независимые потоки QUIC.
- Загруженный или дальний Wi-Fi. Помехи дают потери, не связанные с перегрузкой; Hysteria2 сохраняет темп, а не снижает его вдвое.
- Дальние международные маршруты. При большой задержке TCP долго восстанавливается после каждой потери; Hysteria2 просто передаёт пакет заново.
- Звонки и игры. UDP-трафик идёт датаграммами, поэтому один потерянный пакет не задерживает следующие.
- Сети с фильтрацией, где QUIC разрешён. Пассивный наблюдатель видит HTTP/3 к сайту с действительным сертификатом, а активный зонд без учётных данных получает ответ веб-сервера.
Ограничения и когда он не лучший выбор
- UDP может быть заблокирован или замедлен. Некоторые корпоративные, гостиничные, университетские и мобильные сети ограничивают UDP или QUIC. Тогда Hysteria2 не подключается или работает медленно, и лучше подходит TCP-режим.
- QUIC могут выделять отдельно. Некоторые системы фильтрации обрабатывают QUIC к незнакомым адресам иначе, чем TCP, — например, замедляют его. Режимы на основе Reality там сливаются с фоном лучше.
- Честность на слабом общем канале. Агрессивная отправка хороша для вашего соединения, но на очень слабом канале может теснить другие устройства в той же сети.
- Страницы авторизации. В гостиничном или кафе-Wi-Fi сначала нужно войти на странице портала; до этого не подключится ни один режим VPN.
Как его использует Adaptive Connect
Hysteria2 стоит первым на Android, iOS, Windows и Linux. Если он подключается и реальный трафик проходит проверку, вы остаётесь на нём. Если UDP заблокирован, рукопожатие не проходит или туннель ничего не передаёт, приложение идёт дальше:
- на Android и iOS — к VLESS Reality, затем VLESS XHTTP, Trojan и Shadowsocks 2022;
- на Windows и Linux — к TCP-режимам в порядке измеренного времени подключения.
Попытка Hysteria2, которая ничего не передала, отодвигается назад (на Windows и Linux — на 10 минут), чтобы следующее подключение не тратило на неё время.
Безопасность и шифрование
- Шифрование: ключи получаются в рукопожатии TLS 1.3 внутри QUIC, и каждый пакет после рукопожатия зашифрован и аутентифицирован.
- Проверка сервера: сервер предъявляет настоящий сертификат публичного удостоверяющего центра, который выпускается и продлевается автоматически через ACME. Приложение проверяет его, поэтому посредник не может выдать себя за сервер.
- Проверка клиента: у каждого устройства свои учётные данные, и сервер проверяет их до того, как передать какой-либо трафик.
- Один домен: к Hysteria2 приложение подключается по доменному имени сервера, как и к остальным режимам, а Trojan использует тот же сертификат.
- Без журналов доступа: серверы Colitu не записывают посещаемые сайты; см. страницу безопасности.
Источники
Попробуйте
Hysteria2 работает во всех приложениях Colitu без настройки, а если UDP заблокирован, приложение само переходит на TCP-режим. Скачайте Colitu или посмотрите список локаций.