Что такое Hysteria 2 и почему он популярен
Hysteria 2 — это современный прокси-протокол, работающий поверх модифицированного QUIC. Он создавался как инструмент для обхода блокировок и обеспечения стабильного соединения даже на нестабильных каналах. В отличие от многих других протоколов, Hysteria 2 умеет маскировать свой трафик под обычный HTTPS, что делает его сложным для обнаружения и блокировки.
Основные особенности Hysteria 2:
- Высокая скорость на каналах с потерями пакетов: алгоритмы протокола адаптируются к плохому соединению и не «разваливаются» при потерях.
- Работа по UDP: это одновременно и преимущество, и уязвимость, так как некоторые провайдеры могут ограничивать UDP-трафик.
- Встроенная поддержка обфускации (Salamander), которая преобразует пакеты в случайные байты, что помогает обходить блокировки QUIC.
- Гибкая аутентификация: можно использовать единый пароль, многопользовательскую схему или внешнюю HTTP/командную проверку.
- Возможность маскировки под реальный сайт: сервер может отвечать на HTTP-запросы как обычный веб-сервер, что повышает правдоподобность.
Hysteria 2 часто сравнивают с Shadowsocks, VLESS, Trojan и WireGuard. Его главное преимущество — устойчивость к потерям пакетов, что особенно важно для мобильного интернета и нестабильных Wi-Fi сетей. Однако из-за использования UDP он может быть заблокирован провайдерами, которые целенаправленно ограничивают этот тип трафика.
Протокол активно развивается, и для него существуют готовые решения для разных платформ: от серверов на Linux до роутеров Keenetic и клиентских приложений для Windows, macOS, Android и iOS.
Подготовка сервера и домена для Hysteria 2
Перед установкой Hysteria 2 необходимо подготовить сервер и домен. В качестве сервера подойдёт любой VPS с Linux (Debian, Ubuntu и другие дистрибутивы). Минимальные требования к железу невысокие: основная нагрузка ложится на сетевой канал, а не на процессор или память.
Для работы Hysteria 2 потребуется домен, на который будет выпущен TLS-сертификат. Домен можно купить у регистратора (например, на spaceship.com) или получить бесплатно, например, через сервис dynu.com или freedns.afraid.org. Важно, чтобы домен был направлен на IP-адрес вашего сервера с помощью A-записи. После изменения DNS нужно подождать от пары часов до суток, пока записи обновятся по всему миру.
Также необходимо убедиться, что на сервере открыт нужный UDP-порт. Hysteria 2 по умолчанию использует порт 443, но вы можете выбрать любой свободный порт. Если на сервере включён файрвол, нужно разрешить входящие UDP-соединения на выбранный порт. Частая ошибка новичков — открыть только TCP-порт, забыв про UDP, из-за чего клиент не может подключиться.
Перед установкой рекомендуется обновить систему и установить необходимые пакеты. Для Debian/Ubuntu это можно сделать командами:
sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt install curl -yПосле обновления желательно перезагрузить сервер, чтобы применились обновления ядра.
Установка Hysteria 2 на сервер вручную
Существует два основных способа установки Hysteria 2 на сервер: с помощью официального скрипта или через Docker. Рассмотрим оба варианта.
Установка с помощью скрипта
Разработчики предоставляют скрипт для автоматической установки, обновления и удаления Hysteria 2. Для пользователя 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, который нужно отредактировать.
Установка через Docker
Если вы предпочитаете контейнеризацию, можно использовать Docker. Сначала установите Docker Engine по официальной инструкции, затем выполните:
sudo docker pull tobyxdd/hysteria
sudo mkdir -p /etc/hysteriaСоздайте файл конфигурации /etc/hysteria/server.yaml и запустите контейнер:
sudo docker run -d -p 443:443/udp --name hysteria --restart=always -e TZ=Europe/Moscow -v /etc/hysteria:/etc/hysteria teddysun/hysteriaЛоги контейнера можно посмотреть командой sudo docker logs hysteria.
Оба способа приводят к одному результату — на сервере запущен Hysteria 2, готовый к настройке.
Настройка серверной части Hysteria 2
После установки необходимо отредактировать конфигурационный файл сервера. По умолчанию он находится в /etc/hysteria/config.yaml (или /etc/hysteria/server.yaml для Docker). Файл использует формат YAML, поэтому важно соблюдать отступы из пробелов — табуляция не допускается. Ошибки в отступах — частая причина неработающего сервера.
Минимальная конфигурация выглядит так:
# listen: :443
acme:
domains:
- your.domain.net
email: your@email.com
auth:
type: password
password: o9s+p5+sR5Bi13XWBjjf2ymW
masquerade:
type: proxy
proxy:
url: https://news.ycombinator.com/
rewriteHost: trueРазберём основные параметры:
listen— порт, на котором сервер будет принимать соединения. По умолчанию 443, но можно указать любой другой.acme— настройки автоматического получения TLS-сертификата. Укажите ваш домен и email. Сертификат будет выпущен и автоматически продлеваться через встроенный ACME-клиент.auth— способ аутентификации. Можно использовать единый пароль (password) или многопользовательскую схему (userpass). Также поддерживается HTTP-аутентификация и командная аутентификация.masquerade— маскировка под HTTP/3. Сервер будет отвечать на HTTP-запросы как обычный веб-сервер, что делает его похожим на легитимный сайт. Можно указать режимfile,proxyилиstring.
Если вы хотите использовать собственные сертификаты, укажите их пути в секции tls:
tls:
cert: /etc/ssl/private/fullchain.cer
key: /etc/ssl/private/private.keyУбедитесь, что файлы доступны для чтения процессу Hysteria (например, sudo chmod 644 -Rf /etc/ssl/private).
Для российских доменов в секции acme рекомендуется указывать центр сертификации letsencrypt, так как ZeroSSL может не работать с такими доменами.
Обфускация трафика и маскировка
Hysteria 2 по умолчанию имитирует HTTP/3, что уже является хорошей маскировкой. Однако если провайдер блокирует QUIC или HTTP/3, можно включить дополнительную обфускацию под названием Salamander. Она преобразует пакеты в случайные байты без шаблона, что делает трафик неотличимым от случайного UDP.
Для включения обфускации добавьте в конфигурацию сервера:
obfs:
type: salamander
salamander:
password: cry_me_a_r1verПароль должен совпадать на стороне клиента и сервера. Важно: при включении обфускации сервер перестаёт быть совместимым со стандартными QUIC-соединениями, поэтому он больше не будет выглядеть как настоящий HTTP/3-сервер. Это может привлечь внимание, если цензор анализирует трафик.
Маскировка (masquerade) — это отдельный механизм, который заставляет сервер отвечать на HTTP-запросы как обычный веб-сервер. Это полезно, если кто-то попытается зайти на ваш сервер по HTTP. Рекомендуется указывать реальный сайт, желательно расположенный в той же подсети, что и ваш VPS, чтобы сервер выглядел естественно.
На практике обфускация Salamander может вызывать проблемы на некоторых мобильных операторах: они распознают непонятный UDP-трафик и блокируют его. Поэтому в некоторых случаях лучше отключить обфускацию и оставить только стандартную маскировку под HTTP/3.
Настройка клиента Hysteria 2
Для подключения к серверу Hysteria 2 нужен клиент. Существуют графические приложения (Nekoray, v2rayN, Hiddify и другие) и консольные клиенты. Настройка клиента сводится к указанию адреса сервера, порта, пароля и параметров TLS.
Удобный способ — использовать URI-ссылку формата hysteria2://. Она содержит всю необходимую информацию для подключения. Пример:
hysteria2://letmein@example.com:443/?insecure=0&obfs=salamander&obfs-password=gawrgura&sni=real.example.comВ этой ссылке:
letmein— пароль (илиusername:passwordдля многопользовательской аутентификации);example.com:443— адрес и порт сервера;insecure— разрешать ли небезопасные TLS-соединения (0 — нет, 1 — да);obfsиobfs-password— параметры обфускации;sni— Server Name Indication, если отличается от адреса.
Большинство графических клиентов позволяют импортировать такую ссылку или QR-код. Если вы настраиваете клиент вручную, укажите те же параметры, что и в конфигурации сервера.
Для проверки подключения можно использовать любой сервис, показывающий ваш IP-адрес. Если после подключения адрес изменился на адрес сервера — всё работает.
Установка Hysteria 2 через панель 3X-UI
3X-UI — это веб-панель для управления прокси-серверами, которая поддерживает множество протоколов, включая Hysteria 2. Она позволяет настраивать подключения через браузер, без необходимости редактировать конфигурационные файлы вручную.
Установка 3X-UI выполняется одной командой из официального репозитория на GitHub. После установки вы получите адрес панели, логин и пароль. Первым делом необходимо сменить стандартные учётные данные и порт входа, иначе панель может быть взломана сканерами.
Настройка Hysteria 2 в 3X-UI состоит из пяти шагов:
- Установите панель 3X-UI на сервер.
- Зайдите в панель и смените стандартный логин, пароль и порт.
- Выпустите TLS-сертификат для вашего домена (в панели есть встроенный инструмент) или укажите готовый.
- Создайте новое подключение (inbound) с типом Hysteria 2, укажите UDP-порт, пароль и привяжите сертификат.
- Откройте нужный UDP-порт в файрволе и скопируйте ссылку для клиента.
Панель сама сгенерирует конфигурацию и ссылку для подключения. Это удобно для новичков, так как не требует работы с терминалом. Однако у панели есть и минусы: её нужно регулярно обновлять и защищать, иначе злоумышленник может получить доступ к вашему VPN.
В 3X-UI можно одновременно держать несколько протоколов (например, Hysteria 2 и VLESS), что удобно для подстраховки: если один протокол заблокируют, вы сможете быстро переключиться на другой.
Настройка Hysteria 2 на роутерах Keenetic
Hysteria 2 можно установить не только на сервер, но и на роутер Keenetic с поддержкой USB. Это позволяет организовать VPN для всей домашней сети без настройки каждого устройства отдельно.
Для установки потребуется:
- Роутер Keenetic с USB-портом;
- Внешний USB-накопитель;
- Установленный Entware (менеджер пакетов для роутеров);
- Доступ по SSH.
Сначала необходимо установить Entware по официальной инструкции Keenetic. Затем включите модули ядра Netfilter: xt_TPROXY, xt_socket, xt_multiport. Это делается в веб-интерфейсе роутера: Управление → Параметры системы → Общие настройки системы → Изменить набор компонентов → Пакеты OPKG → включите «Модули ядра подсистемы Netfilter».
После этого подключитесь к роутеру по SSH и установите пакет Hysteria из репозитория H-wave. Для архитектуры mipsle команда выглядит так:
opkg install https://github.com/for6to9si/H-wave/releases/download/v2.12.2/hysteria_2.12.2_mipsle.ipkДля arm64 — аналогично, но с соответствующим файлом. Если архитектура неизвестна, можно попробовать установить оба пакета — Entware не позволит установить неподходящий.
После установки настройте конфигурационный файл /opt/etc/hysteria/config.json. Пример конфигурации можно найти в документации H-wave. Управление сервисом осуществляется командами:
/opt/etc/init.d/S96hysteria status— статус;/opt/etc/init.d/S96hysteria restart— перезапуск;/opt/etc/init.d/S96hysteria stop— остановка.
Важное замечание: включение обфускации Salamander на роутере может привести к неработоспособности Hysteria на сотовых операторах, так как они блокируют непонятный UDP-трафик. Поэтому в некоторых случаях лучше отключить обфускацию.
Проброс портов и многопортовые подключения
В некоторых сетях провайдеры блокируют или ограничивают постоянные UDP-соединения на конкретном порту. Для обхода этого ограничения Hysteria 2 поддерживает проброс портов (port hopping). Клиент может подключаться к серверу через случайный порт из заданного диапазона и периодически менять его.
На стороне клиента можно указать несколько портов через запятую или диапазон:
example.com:1234,5678,9012
example.com:20000-50000
example.com:1234,5000-6000,7044,8000-9000Клиент будет случайным образом выбирать порт для первоначального соединения и переключаться на другой через заданный интервал (по умолчанию 30 секунд). Интервал настраивается в секции transport:
transport:
udp:
hopInterval: 30sСервер Hysteria 2 не поддерживает прослушивание нескольких портов напрямую, поэтому для проброса портов используются правила iptables. Например, чтобы перенаправить все UDP-пакеты с портов 20000-50000 на порт 443, выполните:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443Для IPv6 аналогично с ip6tables.
Проброс портов особенно полезен в Китае и других странах, где провайдеры активно блокируют UDP-соединения. Однако помните, что это не панацея: если провайдер блокирует весь UDP, этот метод не поможет.
Сравнение Hysteria 2 с другими протоколами и ограничения
Hysteria 2 часто сравнивают с VLESS Reality, Trojan и WireGuard. У каждого протокола есть свои сильные и слабые стороны.
Hysteria 2 vs VLESS Reality
- Транспорт: Hysteria 2 — UDP (QUIC), VLESS Reality — TCP.
- Скорость на потерях: Hysteria 2 выше, VLESS Reality средняя.
- Маскировка: Hysteria 2 — под HTTPS, VLESS Reality — под чужой сайт.
- Необходимость домена: Hysteria 2 — да, VLESS Reality — не всегда.
- Риск блокировки: Hysteria 2 выше из-за UDP, VLESS Reality ниже.
Hysteria 2 vs Trojan
- Trojan работает поверх TCP и маскируется под HTTPS, но не даёт такого выигрыша в скорости на нестабильных каналах.
- Trojan проще в настройке, но менее устойчив к потерям пакетов.
Hysteria 2 vs WireGuard
- WireGuard — это VPN, а не прокси, и его трафик легко обнаружить по характерному почерку.
- Hysteria 2 маскируется под HTTPS, что делает его менее заметным.
Основные ограничения Hysteria 2:
- Зависимость от UDP: если провайдер душит UDP, скорость падает или соединение не устанавливается.
- Требуется домен и TLS-сертификат.
- Обфускация Salamander может вызывать проблемы на мобильных операторах.
- Встроенная поддержка в некоторых клиентах (например, в Xray-core) может работать хуже, чем оригинальный клиент.
Несмотря на эти ограничения, Hysteria 2 остаётся одним из лучших протоколов для обхода блокировок и обеспечения стабильного соединения на плохих каналах. Многие пользователи используют его в связке с другими протоколами для подстраховки.
Вопросы и ответы
Нужен ли домен для установки Hysteria 2?
Да, для полноценной работы Hysteria 2 нужен домен, потому что протокол маскируется под HTTPS, а для этого требуется TLS-сертификат, который выпускается на доменное имя. Можно использовать бесплатный домен (например, от freedns.afraid.org) или купить дешёвый домен у регистратора. Главное — направить A-запись домена на IP-адрес вашего сервера и дождаться обновления DNS.
Почему клиент не подключается, хотя сервер запущен?
Чаще всего проблема в закрытом UDP-порту или в неверном сертификате. Проверьте, что в файрволе открыт именно UDP-порт, который вы указали в конфигурации, а не только TCP. Также убедитесь, что сертификат выпущен на тот домен, который прописан в настройках клиента. Если используется самоподписанный сертификат, в клиенте нужно разрешить insecure-подключения.
Hysteria 2 быстрее, чем VLESS или WireGuard?
На нестабильных каналах с потерями пакетов Hysteria 2 обычно быстрее, так как построен на QUIC и адаптируется к потерям. На ровном канале разница может быть незначительной. Однако если провайдер ограничивает UDP-трафик, Hysteria 2 может проигрывать протоколам на TCP, таким как VLESS или Trojan.
Безопасно ли использовать панель 3X-UI?
Панель 3X-UI безопасна, если вы смените стандартные логин, пароль и порт входа сразу после установки. Панель с дефолтными настройками легко находят сканеры, и злоумышленник может получить доступ к вашему VPN. Рекомендуется также закрыть доступ к панели по HTTPS и использовать сложный пароль.
Можно ли использовать Hysteria 2 на роутере Keenetic?
Да, Hysteria 2 можно установить на роутеры Keenetic с поддержкой USB и Entware. Для этого нужно установить пакет Hysteria из репозитория H-wave, включить модули ядра Netfilter и настроить конфигурационный файл. Это позволит организовать VPN для всей домашней сети.
Что такое обфускация Salamander и когда её включать?
Salamander — это метод обфускации трафика Hysteria 2, который преобразует пакеты в случайные байты, что затрудняет обнаружение протокола. Его стоит включать, если провайдер блокирует QUIC или HTTP/3. Однако на некоторых мобильных операторах обфусцированный трафик может распознаваться как неизвестный UDP и блокироваться, поэтому в таких случаях лучше отключить обфускацию.
Сколько времени занимает настройка Hysteria 2?
Если сервер и домен уже готовы, настройка Hysteria 2 вручную занимает около 30–60 минут, включая установку, редактирование конфигурации и проверку. При использовании панели 3X-UI процесс сокращается до 15–30 минут. Основное время уходит на ожидание обновления DNS и выпуск сертификата.