Hysteria 2: установка и настройка на сервере, в панели 3X-UI и на роутере Keenetic

Подробное руководство по установке Hysteria 2: ручная настройка на VPS, установка через панель 3X-UI, настройка на роутерах Keenetic, выпуск сертификатов, обфускация, проброс портов и ответы на частые вопросы.

Что такое 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 состоит из пяти шагов:

  1. Установите панель 3X-UI на сервер.
  2. Зайдите в панель и смените стандартный логин, пароль и порт.
  3. Выпустите TLS-сертификат для вашего домена (в панели есть встроенный инструмент) или укажите готовый.
  4. Создайте новое подключение (inbound) с типом Hysteria 2, укажите UDP-порт, пароль и привяжите сертификат.
  5. Откройте нужный 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 и выпуск сертификата.