Hysteria 2 подключить: пошаговая настройка сервера и клиента для обхода блокировок

Как подключить Hysteria 2: установка на VPS, настройка сервера и клиента, выпуск TLS-сертификата, обфускация Salamander, решение проблем с UDP и сравнение с другими протоколами.

Что такое Hysteria 2 и почему он работает там, где другие протоколы пасуют

Hysteria 2 — это современный прокси-протокол, построенный на базе модифицированного QUIC. В отличие от классических VPN-решений, которые работают поверх TCP, Hysteria 2 использует UDP и маскирует свой трафик под обычный HTTP/3 (QUIC), который генерируют YouTube, Google и Cloudflare. Благодаря этому глубокий анализ пакетов (DPI) не видит характерной сигнатуры туннеля, и соединение остаётся незаметным для блокировок.

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

Ещё одно преимущество — встроенная маскировка (masquerade). Если кто-то зайдёт на ваш сервер по HTTP без учётных данных Hysteria, он увидит обычный сайт (например, новостной портал), а не ошибку подключения. Это делает сервер неотличимым от легитимного веб-ресурса.

Подготовка: что нужно для подключения Hysteria 2

Прежде чем приступить к настройке, соберите три обязательных компонента:

  1. VPS-сервер с белым IP-адресом. Подойдёт минимальная конфигурация — 1 vCPU и 1 ГБ RAM, этого достаточно для десятков клиентов. Операционная система — Debian или Ubuntu, так как большинство инструкций ориентированы на них.
  1. Домен, который указывает на IP вашего сервера через A-запись. Домен нужен для получения валидного TLS-сертификата, который обеспечивает маскировку под HTTPS. Можно использовать бесплатные сервисы вроде dynu.com или купить дешёвый домен на год. Без домена тоже можно обойтись, используя самоподписанный сертификат, но тогда маскировка будет менее убедительной.
  1. Открытый UDP-порт в файрволе. Hysteria 2 работает по UDP, и если порт закрыт, клиент не сможет подключиться, даже если панель показывает статус «активно». Чаще всего используют порт 443, чтобы трафик выглядел как обычный HTTPS, но можно выбрать любой свободный порт.

Также убедитесь, что у вас есть root-доступ к серверу по SSH. Если вы арендуете VPS у провайдера с собственным файрволом в панели управления, не забудьте открыть нужный UDP-порт и там — иначе пакеты будут срезаться ещё до того, как дойдут до сервера.

Установка Hysteria 2 на сервер: два способа

Существует два основных способа установки Hysteria 2 на сервер: через официальный скрипт или через Docker. Оба варианта рабочие, выбор зависит от ваших предпочтений.

Установка официальным скриптом — самый простой и рекомендуемый способ. Выполните команду:

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

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

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

Установка через Docker подойдёт тем, кто уже использует контейнеризацию. Сначала установите Docker Engine, затем выполните:

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

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

Настройка сервера: конфигурация config.yaml

Файл конфигурации сервера — сердце Hysteria 2. Он определяет порт, аутентификацию, маскировку и другие параметры. Создайте файл /etc/hysteria/config.yaml и отредактируйте его под свои нужды.

Базовый пример с доменом и автоматическим получением сертификата Let's Encrypt:

listen: :443
acme:
  domains:
    - vpn.example.com
  email: admin@example.com
auth:
  type: password
  password: ЗАМЕНИТЕ_НА_ДЛИННЫЙ_ПАРОЛЬ
masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

Разберём ключевые блоки:

  • listen — порт, на котором сервер будет принимать подключения. По умолчанию 443, но можно указать любой.
  • acme — автоматическое получение сертификата. Укажите ваш домен и email. Для российских доменов рекомендуется использовать центр сертификации Let's Encrypt (параметр ca: letsencrypt).
  • auth — аутентификация. Простейший вариант — единый пароль (type: password). Для нескольких пользователей можно использовать type: userpass со списком логин/пароль.
  • masquerade — маскировка. type: proxy перенаправляет HTTP-запросы на указанный сайт, делая сервер похожим на обычный веб-ресурс.

Если у вас нет домена, используйте самоподписанный сертификат. Сгенерируйте его командой:

openssl req -x509 -nodes -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=www.bing.com" -days 3650

И укажите его в конфиге вместо блока acme:

tls:
  cert: /etc/hysteria/server.crt
  key: /etc/hysteria/server.key

Важно: в YAML используйте только пробелы для отступов, табуляция не допускается. Лишний или отсутствующий пробел может привести к ошибке парсинга.

Обфускация Salamander: дополнительный уровень защиты

По умолчанию Hysteria 2 имитирует HTTP/3, но если ваш провайдер блокирует QUIC-трафик целиком, можно включить обфускацию Salamander. Она преобразует пакеты в случайные байты без шаблона, что делает трафик неотличимым от случайного UDP-шума.

Для включения обфускации добавьте в конфигурацию сервера следующий блок:

obfs:
  type: salamander
  salamander:
    password: cry_me_a_r1ver

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

Salamander особенно полезен, когда QUIC блокируется по сигнатуре, но UDP в целом разрешён. Однако если провайдер режет весь UDP, обфускация не поможет — тогда придётся переключаться на TCP-протоколы вроде VLESS Reality.

Настройка клиента: как подключиться к Hysteria 2

После настройки сервера нужно настроить клиент. Hysteria 2 поддерживает множество платформ: Windows, macOS, Linux, Android, iOS. Для десктопа можно использовать официальный CLI-клиент или GUI-приложения вроде v2rayN, NekoRay, Hiddify. На мобильных устройствах подойдут Shadowrocket (iOS), NekoBox (Android) и другие.

Пример клиентского конфигурационного файла config.yaml для CLI-клиента:

server: vpn.example.com:443
auth: ЗАМЕНИТЕ_НА_ДЛИННЫЙ_ПАРОЛЬ
tls:
  sni: vpn.example.com
  insecure: false
socks5:
  listen: 127.0.0.1:1080
http:
  listen: 127.0.0.1:8080

Если вы используете самоподписанный сертификат, укажите insecure: true и sni с тем же значением, что и в CN сертификата (например, www.bing.com).

Запустите клиент командой hysteria client -c config.yaml. Чтобы проверить, что трафик идёт через туннель, выполните:

curl -x socks5h://127.0.0.1:1080 https://ifconfig.me

IP-адрес в ответе должен совпадать с IP вашего сервера, а не с вашим домашним.

Для удобства можно импортировать ссылку подключения (например, hysteria2://...) в GUI-клиент — они умеют автоматически разбирать конфигурацию.

Использование панели 3X-UI для управления Hysteria 2

Если вы не хотите возиться с текстовыми конфигами, используйте панель 3X-UI — веб-интерфейс для управления несколькими прокси-протоколами, включая Hysteria 2. Панель позволяет создавать подключения, выпускать сертификаты и отслеживать трафик через браузер.

Установка 3X-UI выполняется одной командой из официального репозитория. После установки вы получите адрес панели и стандартный логин/пароль. Первым делом смените стандартные учётные данные и порт входа — иначе сканеры найдут панель в течение нескольких часов, и злоумышленник получит доступ к вашему VPN.

Для создания Hysteria 2 подключения в 3X-UI:

  1. Зайдите в панель и перейдите в раздел «Входящие подключения».
  2. Нажмите «Добавить», выберите тип Hysteria 2.
  3. Укажите свободный UDP-порт (например, 443, если он не занят).
  4. Задайте пароль для аутентификации.
  5. Выпустите TLS-сертификат через встроенный инструмент или укажите путь к готовому.
  6. Откройте UDP-порт в файрволе сервера.
  7. Скопируйте ссылку подключения или QR-код и импортируйте в клиент.

Панель 3X-UI удобна тем, что позволяет держать несколько протоколов одновременно (например, Hysteria 2 и VLESS Reality) и быстро переключаться между ними, если один из них начнёт блокироваться.

Решение типичных проблем при подключении

Даже при правильной настройке могут возникнуть проблемы. Вот самые распространённые и способы их решения.

Клиент не подключается, хотя сервер запущен. В 90% случаев причина — закрытый UDP-порт. Проверьте, что в файрволе (ufw, iptables, панель провайдера) открыт именно UDP-порт, а не TCP. Команда для ufw: ufw allow 443/udp.

Ошибка сертификата. Если вы используете домен, убедитесь, что A-запись указывает на IP сервера и DNS уже обновился (может занять несколько часов). Если сертификат самоподписанный, проверьте, что на клиенте указан правильный SNI и insecure: true.

Низкая скорость. Проверьте параметр bandwidth в конфиге сервера. Brutal-алгоритм рассчитывает скорость на основе заявленной пропускной способности. Если значение занижено, скорость будет искусственно ограничена; если завышено — начнутся потери пакетов. Указывайте реальную скорость вашего канала с запасом вниз.

Провайдер блокирует UDP. Если UDP режется целиком, Hysteria 2 не поможет. В этом случае используйте TCP-протоколы (VLESS Reality, Trojan) или попробуйте обфускацию Salamander, если блокировка идёт по сигнатуре QUIC.

Утечка DNS. Hysteria 2 не гарантирует, что системный резолвер не пойдёт в обход туннеля. Настройте клиент так, чтобы DNS-запросы тоже шли через прокси, или используйте правила в GUI-клиентах.

Сравнение Hysteria 2 с другими протоколами

Чтобы понять, когда Hysteria 2 — лучший выбор, сравним его с популярными альтернативами.

| Параметр | Hysteria 2 | VLESS Reality | Trojan | |----------|------------|---------------|--------| | Транспорт | UDP (QUIC) | TCP | TCP | | Скорость на потерях | Высокая | Средняя | Средняя | | Маскировка | Под HTTPS | Под чужой сайт | Под HTTPS | | Нужен ли домен | Да (или самоподписанный) | Не всегда | Да | | Риск блокировки | Выше (UDP) | Ниже | Средний | | Сложность настройки | Средняя | Средняя | Низкая |

Hysteria 2 выигрывает по скорости на нестабильных каналах благодаря Brutal-алгоритму. Однако он зависит от UDP, который провайдеры могут душить. VLESS Reality маскируется под TLS-рукопожатие реального сайта и не требует собственного домена, но не даёт такого запаса по скорости. Trojan — самый простой в настройке, но не предназначен для рекордов скорости.

Оптимальная стратегия — держать в панели 3X-UI несколько протоколов: Hysteria 2 как основной для скорости, VLESS Reality или Trojan как запасной на случай блокировки UDP.

Безопасность и дополнительные рекомендации

Hysteria 2 — мощный инструмент, но его использование требует соблюдения базовых правил безопасности.

Защита панели управления. Если вы используете 3X-UI, обязательно смените стандартный логин, пароль и порт. Закройте доступ по HTTPS и не оставляйте дефолтные настройки даже на час. Панель — это вход в ваш VPN, и её взлом даст злоумышленнику полный контроль над сервером.

Использование длинных паролей. Для аутентификации Hysteria 2 используйте сложные пароли (не менее 16 символов). В конфиге сервера можно задать несколько пользователей с разными паролями через auth.type: userpass.

Мониторинг. Настройте мониторинг доступности сервера, например, через Uptime Kuma. Это поможет быстро заметить, если сервер перестал отвечать.

Обновления. Регулярно обновляйте Hysteria 2 и панель управления. Разработчики часто исправляют уязвимости и улучшают обход DPI.

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

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

Нужен ли домен для подключения Hysteria 2?

Домен не является строго обязательным, но настоятельно рекомендуется. Hysteria 2 маскируется под HTTPS, а для этого нужен TLS-сертификат. С доменом вы можете получить валидный сертификат Let's Encrypt автоматически, что делает маскировку убедительной. Без домена можно использовать самоподписанный сертификат, но тогда клиент должен указывать insecure: true, и защита от активного MITM будет отсутствовать. Для большинства сценариев лучше приобрести дешёвый домен и направить его A-запись на IP сервера.

Почему клиент не подключается, хотя сервер запущен?

Самая частая причина — закрытый UDP-порт. Проверьте, что в файрволе сервера (ufw, iptables, панель провайдера) открыт именно UDP-порт, который вы указали в конфиге. Также убедитесь, что сертификат выпущен на правильный домен и DNS-записи уже обновились. Если используется самоподписанный сертификат, проверьте, что на клиенте указан правильный SNI и insecure: true. В редких случаях проблема может быть в обфускации — убедитесь, что пароль Salamander совпадает на сервере и клиенте.

Hysteria 2 быстрее, чем VLESS или WireGuard?

На нестабильных каналах с потерями пакетов Hysteria 2 обычно быстрее, потому что использует алгоритм Brutal, который не снижает скорость при первых потерях, в отличие от TCP-протоколов. На ровном канале разница минимальна. Однако если провайдер душит UDP, Hysteria 2 может проиграть VLESS Reality, работающему по TCP. Поэтому выбор зависит от конкретной сети: для рваных каналов Hysteria 2 лучше, для стабильных — можно использовать любой протокол.

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

Да, можно. Сгенерируйте самоподписанный сертификат с CN любого крупного сайта (например, www.bing.com) и укажите его в конфиге сервера. На клиенте установите insecure: true и sni с тем же значением. Это работает, но маскировка будет менее убедительной, и вы будете уязвимы для активного MITM. Для личного использования такой вариант допустим, но для максимальной незаметности лучше использовать реальный домен.

Как раздать доступ нескольким пользователям с разными паролями?

В конфиге сервера используйте режим аутентификации userpass:

auth:
  type: userpass
  userpass:
    user1: pass1
    user2: pass2

Каждый пользователь получит свой пароль. Для более сложных сценариев с учётом трафика и динамической выдачей можно использовать HTTP-аутентификацию (auth.type: http), когда сервер обращается к внешнему webhook-серверу для проверки. Это удобно, если вы хотите управлять пользователями через API.

Что делать, если провайдер блокирует UDP?

Если UDP блокируется целиком, Hysteria 2 не сможет работать. В этом случае переключитесь на TCP-протоколы, такие как VLESS Reality или Trojan. Если блокировка идёт по сигнатуре QUIC, но UDP в целом разрешён, попробуйте включить обфускацию Salamander — она преобразует пакеты в случайные байты, что может обойти DPI. Также можно использовать проброс портов (port hopping), чтобы клиент переключался между разными UDP-портами, если провайдер ограничивает конкретные порты.