Hysteria 2 серверы: настройка, обход DPI и выбор VPS для стабильного соединения

Разбираем Hysteria 2: принципы работы, установку на VPS, конфигурацию сервера и клиента, маскировку трафика, обход DPI и критерии выбора хостинга.

Что такое Hysteria 2 и почему он эффективен

Hysteria 2 — это современный прокси-протокол, созданный для высокопроизводительного обхода сетевых ограничений и глубокой проверки пакетов (DPI). Он является развитием первой версии Hysteria и использует транспортный протокол QUIC, работающий поверх UDP. В отличие от TCP, QUIC обеспечивает мультиплексирование потоков, снижение задержек при установлении соединения и устойчивость к потерям пакетов. Это делает Hysteria 2 особенно эффективным в условиях нестабильных сетей и активного вмешательства DPI.

Ключевое преимущество Hysteria 2 перед многими другими протоколами, включая VLESS с Reality, заключается в агрессивном алгоритме управления перегрузкой, основанном на BBR. Он позволяет поддерживать высокую пропускную способность даже при потерях пакетов до 30–40%, тогда как TCP-подобные механизмы резко снижают скорость. Кроме того, QUIC устраняет проблему блокировки головы очереди (head-of-line blocking), что особенно важно для параллельной передачи данных. В результате Hysteria 2 обеспечивает более стабильное соединение и меньший пинг для интерактивных приложений, таких как видеозвонки и онлайн-игры.

Как Hysteria 2 маскирует трафик и обходит DPI

Одной из главных особенностей Hysteria 2 является способность маскироваться под стандартный трафик HTTP/3. Это означает, что пакеты выглядят как обычные QUIC-соединения, используемые современными веб-серверами. Сервер Hysteria 2 может отвечать на HTTP-запросы как обычный веб-сервер, что делает его практически неотличимым от легитимного трафика. Для этого используется секция masquerade в конфигурации, которая поддерживает три режима: file (статический файловый сервер), proxy (обратный прокси, передающий содержимое с другого сайта) и string (возврат заданной строки).

Однако в некоторых сетях QUIC или HTTP/3 блокируются целенаправленно. Для таких случаев Hysteria 2 предлагает обфускацию под названием Salamander. Она преобразует пакеты в случайные байты без шаблона, что затрудняет их обнаружение. Для работы обфускации требуется общий пароль на клиенте и сервере. Важно понимать: включение обфускации делает сервер несовместимым со стандартными QUIC-соединениями, поэтому он перестаёт выглядеть как настоящий HTTP/3-сервер. Это компромисс между маскировкой и совместимостью, который стоит учитывать при настройке.

Требования к VPS для Hysteria 2 сервера

Для развертывания Hysteria 2 подойдёт даже самый доступный VPS, если речь идёт о небольшом количестве пользователей и умеренном трафике. Минимальные характеристики включают один виртуальный процессор (vCPU) с частотой от 2.0 ГГц, 512 МБ оперативной памяти и 10–20 ГБ дискового пространства на NVMe-накопителе. Пропускная способность от 100 Мбит/с до 1 Гбит/с будет достаточной для просмотра веб-страниц и использования мессенджеров. Операционная система — Ubuntu 20.04+, Debian 11+ или CentOS 8+.

Если планируется обслуживать множество пользователей, транслировать видео в высоком разрешении или запускать онлайн-игры, потребуется более мощная конфигурация: 2–4 vCPU, 2–4 ГБ RAM, 50–100 ГБ NVMe и симметричный канал 1 Гбит/с. Важно выбирать дата-центр, расположенный географически близко к целевой аудитории, чтобы минимизировать задержки. Например, для пользователей из России и Восточной Европы подходят серверы в Германии, Нидерландах или Финляндии. Также стоит обратить внимание на политику провайдера в отношении VPN-трафика и наличие безлимитных тарифов.

Установка Hysteria 2 на сервер: Docker и скрипт

Существует два основных способа установки Hysteria 2 на VPS: через Docker-контейнер или с помощью официального скрипта. Docker-подход удобен для изоляции и простоты обновлений. Для этого нужно установить Docker Engine, загрузить образ tobyxdd/hysteria, создать папку для конфигурации и запустить контейнер с пробросом UDP-порта (обычно 443). Пример команды:

sudo docker run -d -p 443:443/udp --name hysteria --restart=always -e TZ=Europe/Moscow -v /etc/hysteria:/etc/hysteria tobyxdd/hysteria

Альтернативный способ — использование официального скрипта установки. Для пользователя root команда выглядит так:

bash <(curl -fsSL https://get.hy2.sh/)

Если вы работаете от обычного пользователя с sudo, скрипт может выдать ошибку из-за ограничений доступа к /dev/fd. В этом случае нужно скачать скрипт в домашнюю папку и запустить его с sudo:

wget https://get.hy2.sh/install_server.sh && chmod 755 install_server.sh && sudo ./install_server.sh

После установки необходимо отредактировать конфигурационный файл /etc/hysteria/config.yaml. Важно помнить, что YAML чувствителен к отступам: используйте только пробелы, не табуляцию.

Конфигурация сервера: базовые параметры

Минимальная конфигурация сервера Hysteria 2 включает несколько ключевых секций. Параметр listen определяет порт, на котором сервер будет принимать соединения (по умолчанию 443). Секция acme отвечает за автоматическое получение TLS-сертификатов через ACME-протокол. Для этого нужно указать домен и email. Для российских доменов рекомендуется использовать центр сертификации Let's Encrypt (ca: letsencrypt). Также можно указать тип вызова ACME — http, tls или dns. Для доменов, обслуживаемых Cloudflare, удобно использовать DNS-вызов с токеном API.

Если у вас уже есть сертификаты, их можно указать в секции tls:

tls:
  cert: /etc/ssl/private/fullchain.cer
  key: /etc/ssl/private/private.key

Секция auth задаёт аутентификацию. Можно использовать единый пароль (type: password) или многопользовательскую конфигурацию (type: userpass). Также поддерживается HTTP-аутентификация, при которой сервер отправляет POST-запрос на указанный URL с данными клиента, и командная аутентификация, выполняющая внешнюю команду. Для большинства случаев достаточно пароля или userpass.

Настройка маскировки и обфускации

Секция masquerade определяет, как сервер будет отвечать на HTTP-запросы, которые не являются трафиком Hysteria 2. Это важно для маскировки под легитимный веб-сервер. Режим proxy позволяет перенаправлять запросы на реальный сайт, например https://news.ycombinator.com/, с опцией rewriteHost: true. Режим file превращает сервер в статический файловый сервер, а string возвращает заданную строку с указанными заголовками и кодом ответа.

Для обфускации трафика под Salamander добавьте секцию obfs:

obfs:
  type: salamander
  salamander:
    password: cry_me_a_r1ver

Пароль должен совпадать на клиенте и сервере. Включение обфускации делает сервер несовместимым со стандартными QUIC-соединениями, поэтому он перестаёт быть полноценным HTTP/3-сервером. Это стоит учитывать, если вы хотите сохранить максимальную правдоподобность маскировки.

Клиентская конфигурация и подключение

Клиент Hysteria 2 поддерживает несколько платформ: Windows, macOS, Linux, Android и iOS. Для подключения используется конфигурационный файл или подписочная ссылка. Минимальный клиентский конфиг выглядит так:

server: example.com:443
auth:
tls:
  sni: example.com
bandwidth:
  up: 20 mbps
  down: 100 mbps

Параметр bandwidth задаёт ограничения скорости, которые должны соответствовать реальным возможностям канала. Завышенные значения могут привести к нестабильной работе. Также можно указать несколько портов для подключения, используя формат example.com:1234,5678,9012 или диапазон 20000-50000. Клиент будет случайным образом выбирать порт и периодически переключаться между ними (интервал задаётся параметром hopInterval).

Для импорта профиля в клиенты, такие как NekoBox или sing-box, обычно достаточно скопировать подписочную ссылку или вставить конфигурацию вручную. Убедитесь, что клиент поддерживает все используемые параметры, иначе возможны ошибки подключения.

Проброс портов и работа с UDP

В некоторых сетях провайдеры блокируют или ограничивают постоянные UDP-соединения, что может негативно сказаться на работе Hysteria 2. Один из способов обойти это — использовать проброс портов. Клиент Hysteria 2 поддерживает указание нескольких портов или диапазонов, как описано выше. Сервер, однако, не имеет встроенной поддержки прослушивания нескольких портов, поэтому разработчики рекомендуют использовать iptables DNAT для перенаправления трафика с диапазона портов на основной порт сервера.

Пример для IPv4:

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443

Для IPv6 аналогично с ip6tables. Это позволяет клиенту подключаться к любому порту из диапазона, а сервер будет принимать трафик на 443 порту. Такой подход снижает вероятность блокировки, поскольку цензоры не могут заранее знать, какой порт будет использоваться.

Диагностика и частые ошибки

При настройке Hysteria 2 пользователи часто сталкиваются с типичными ошибками. Одна из них — открытие TCP-порта вместо UDP. Hysteria 2 работает только через UDP, поэтому убедитесь, что firewall разрешает UDP-трафик на нужном порту. Другая ошибка — завышение параметров bandwidth без реальных измерений канала, что приводит к нестабильности. Также важно не путать пароль аутентификации с системным паролем сервера.

Если подключение не работает, проверяйте по порядку: адрес сервера, порт, учётные данные, DNS, firewall и логи клиента. Меняйте только один параметр за раз, чтобы понять, что именно вызывает проблему. Использование самоподписанного сертификата без pinning может вызвать ошибки TLS, поэтому лучше использовать автоматические сертификаты ACME. Также не забывайте, что Hysteria 2 зависит от доступности UDP: если сеть блокирует UDP, никакие настройки не помогут.

Безопасность и ограничения Hysteria 2

Важно понимать, что Hysteria 2 — это инструмент маршрутизации и защиты канала, а не гарантия полной анонимности. Он помогает обходить DPI и защищает трафик от перехвата, но не скрывает следы от сайтов, приложений, платёжных систем и владельца сервера. DNS-запросы могут быть уязвимы, если не настроить их правильно, поэтому рекомендуется использовать DNS-over-HTTPS или другие защищённые методы.

Также стоит учитывать, что Hysteria 2 не защищает от анализа трафика на стороне сервера: владелец VPS может видеть метаданные соединений. Если ваша модель угроз требует высокой анонимности, комбинируйте Hysteria 2 с другими инструментами, такими как Tor или VPN с строгой политикой отсутствия логов. И помните: технология не решает проблему доверия к провайдеру сервера.

Вопросы и ответы

Чем Hysteria 2 отличается от VLESS с Reality?

Hysteria 2 использует QUIC (UDP) и агрессивный алгоритм управления перегрузкой, что позволяет сохранять высокую скорость даже при потерях пакетов до 30–40%. Reality маскируется под TLS-трафик, но его производительность снижается при активном DPI, так как он полагается на TCP-подобные механизмы. Hysteria 2 также обеспечивает более низкую задержку благодаря сокращению рукопожатий QUIC.

Какой минимальный VPS нужен для Hysteria 2?

Для базового использования достаточно 1 vCPU, 512 МБ RAM и 10–20 ГБ NVMe. Пропускная способность от 100 Мбит/с. Для высокой нагрузки (много пользователей, стриминг) рекомендуется 2–4 vCPU, 2–4 ГБ RAM и канал 1 Гбит/с. Важно выбирать дата-центр ближе к пользователям.

Как включить обфускацию Salamander в Hysteria 2?

Добавьте в конфигурацию сервера секцию obfs с типом salamander и паролем, например:

obfs:
  type: salamander
  salamander:
    password: my_secret

Тот же пароль укажите в клиентском конфиге. Учтите, что обфускация делает сервер несовместимым со стандартными QUIC-соединениями.

Почему Hysteria 2 не работает, если UDP заблокирован?

Hysteria 2 основан на QUIC, который работает поверх UDP. Если сеть блокирует UDP-трафик, протокол не сможет установить соединение. В таких случаях можно попробовать проброс портов или использовать другие протоколы, работающие через TCP.

Можно ли использовать Hysteria 2 для полной анонимности?

Нет. Hysteria 2 защищает канал от DPI и перехвата, но не скрывает ваши действия от сайтов, приложений и владельца сервера. Для анонимности потребуются дополнительные инструменты, такие как Tor, и строгая модель угроз.

Как проверить, что Hysteria 2 настроен правильно?

Подключитесь с клиента и проверьте, что открываются обычные сайты, профиль переживает перезапуск, а DNS и IP-проверка показывают ожидаемый маршрут. Смотрите логи клиента и сервера. Если что-то не работает, меняйте параметры по одному.