Настройка Hysteria VPN: полное руководство по установке сервера и клиентов

Подробное руководство по настройке Hysteria и Hysteria 2: установка на VPS, конфигурация сервера, подключение клиентов, обфускация, сравнение с другими протоколами и ответы на частые вопросы.

Что такое Hysteria и почему он работает быстрее

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

Вторая версия протокола, Hysteria 2, получила улучшенную маскировку под HTTP/3 и более гибкую систему аутентификации. Снаружи трафик выглядит как обычное HTTPS-соединение, что затрудняет его обнаружение по сигнатуре. Это делает Hysteria 2 популярным выбором для пользователей, которым нужна скорость и устойчивость к цензуре.

Важно понимать: Hysteria — это не классический VPN в строгом смысле, а скорее прокси с функциями туннелирования. Он поддерживает режимы SOCKS5, HTTP-прокси, пересылку TCP/UDP и Linux TProxy. Это означает, что вы можете направить через него как весь трафик устройства, так и только трафик отдельных приложений.

Подготовка сервера и домена

Перед установкой Hysteria вам понадобится VPS с Linux (Debian или Ubuntu) и SSH-доступом с правами root. Минимальные требования к железу невысоки: подойдёт самый дешёвый тариф, так как основная нагрузка ложится на сетевой канал, а не на процессор или память.

Обязательно наличие домена. Hysteria 2 маскируется под HTTPS, а для этого нужен TLS-сертификат, который выпускается на доменное имя, а не на IP-адрес. Домен можно купить у любого регистратора или получить бесплатно на dynu.com. После покупки настройте A-запись, указывающую на IP вашего VPS, и дождитесь обновления DNS (обычно от пары часов до суток).

Перед установкой рекомендуется обновить систему:

sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt install curl -y

После обновления перезагрузите сервер, чтобы применить новое ядро, если оно было установлено.

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

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

Установка через скрипт

Самый простой способ — использовать официальный установщик:

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

Скрипт установит бинарник Hysteria и создаст базовый конфигурационный файл в /etc/hysteria/config.yaml.

Установка через Docker

Если вы предпочитаете контейнеризацию, используйте Docker:

sudo docker pull tobyxdd/hysteria
sudo mkdir -p /etc/hysteria
sudo nano /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

Обратите внимание: в команде docker run используется образ teddysun/hysteria, а не tobyxdd/hysteria (в статье на Хабре опечатка). Убедитесь, что порт в команде совпадает с портом в конфигурации.

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

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

listen: :443
acme:
  domains:
    - your.domain.com
  email: your@email.com
auth:
  type: password
  password: your_strong_password
masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

Разберём ключевые параметры:

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

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

Расширенная настройка: аутентификация и маскировка

Hysteria поддерживает несколько способов аутентификации. Помимо простого пароля, можно использовать многопользовательский режим:

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

Также доступна HTTP-аутентификация, при которой сервер отправляет POST-запрос на ваш бэкенд с данными клиента (адрес, пароль, объём трафика). Ответ должен содержать JSON с полем ok и идентификатором пользователя. Это удобно для интеграции с биллинговыми системами.

Маскировка — ключевая функция для обхода блокировок. Режим proxy подставляет контент с реального сайта, что делает сервер неотличимым от обычного веб-сервера. Рекомендуется выбирать сайт, который находится в той же подсети, что и ваш VPS — это повышает правдоподобность.

Если маскировка не нужна, можно опустить секцию masquerade — тогда сервер будет возвращать 404 для всех HTTP-запросов, что может привлечь внимание.

Обфускация трафика и проброс портов

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

obfs:
  type: salamander
  salamander:
    password: your_obfs_password

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

Проброс портов (port hopping) помогает обойти блокировку постоянных UDP-соединений. Клиент может подключаться к разным портам сервера, периодически переключаясь. На сервере настройте iptables для перенаправления диапазона портов на основной порт:

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

На клиенте укажите несколько портов через запятую или диапазон в адресе сервера.

Настройка клиентов: Windows, Android, iOS

Для подключения к Hysteria 2 вам понадобится клиент, поддерживающий этот протокол. Популярные варианты:

  • NekoBox/NekoRay (Windows, Android) — поддерживает Hysteria 2, импорт по ссылке.
  • Hysteria Official Client — кроссплатформенное приложение.
  • Amnezia VPN — поддерживает Hysteria 2 на различных платформах.

Настройка в NekoBox (Windows):

  1. Скопируйте ссылку вида hy2://password@server:443 из панели управления или письма.
  2. Откройте NekoBox, выберите «Сервер» → «Добавить профиль из буфера обмена».
  3. Профиль появится в списке. Дважды кликните по нему, чтобы заполнить данные: имя, адрес, порт, пароль.
  4. Включите режим TUN (весь трафик) или системный прокси (только браузеры).
  5. Нажмите «Запустить».

Для Android можно использовать NekoBox или v2rayNG с поддержкой Hysteria 2. На iOS — приложения типа Shadowrocket или Stash.

Если вы используете панель 3X-UI, ссылку и QR-код можно получить прямо из интерфейса панели.

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

3X-UI — это веб-панель, которая упрощает управление несколькими прокси-протоколами, включая Hysteria 2. Вместо редактирования конфигов в терминале вы создаёте подключения через браузер.

Установка и настройка:

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

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

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

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

Hysteria 2 часто сравнивают с VLESS Reality, Trojan и WireGuard. Вот ключевые различия:

  • Транспорт: Hysteria 2 работает по UDP (QUIC), VLESS и Trojan — по TCP, WireGuard — по UDP.
  • Скорость на потерях: Hysteria 2 показывает лучшие результаты на нестабильных каналах благодаря алгоритмам QUIC. TCP-протоколы проседают при потерях пакетов.
  • Маскировка: Hysteria 2 маскируется под HTTP/3, VLESS Reality — под чужой сайт, Trojan — под HTTPS. Все три достаточно незаметны.
  • Требования к домену: Hysteria 2 нужен домен, VLESS Reality может работать без него, Trojan обычно тоже требует домен.
  • Риск блокировки: UDP чаще подвергается ограничениям, поэтому Hysteria 2 может быть заблокирован там, где TCP-протоколы работают.

В панели 3X-UI можно держать несколько протоколов одновременно, используя Hysteria 2 как основной, а VLESS или Trojan как запасной вариант.

Частые проблемы и их решение

Клиент не подключается, хотя панель показывает зелёный статус.

В 90% случаев проблема в закрытом UDP-порту. Проверьте, что в файрволе открыт именно UDP-порт, а не только TCP. Также убедитесь, что сертификат выпущен на тот домен, который указан в конфигурации клиента.

Ошибка при запуске сервера.

Чаще всего это связано с неправильными отступами в YAML. Проверьте, что используете пробелы, а не табуляцию. Также убедитесь, что файлы сертификатов доступны для чтения (chmod 644).

Низкая скорость.

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

Сервер обнаруживается.

Убедитесь, что маскировка настроена правильно и сервер действительно отдаёт контент. Если используется обфускация, сервер перестаёт быть похожим на HTTP/3, что может привлечь внимание.

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

Нужен ли домен для настройки Hysteria 2?

Да, домен обязателен, потому что Hysteria 2 маскируется под HTTPS, а для этого нужен TLS-сертификат, который выпускается на доменное имя. Можно использовать бесплатный домен от dynu.com или купить дешёвый у регистратора. Главное — настроить A-запись на IP вашего сервера и дождаться обновления DNS.

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

Чаще всего причина в закрытом UDP-порту. Проверьте, что в файрволе открыт именно UDP-порт, указанный в конфигурации. Также убедитесь, что сертификат выпущен на тот домен, который прописан в клиенте, и что пароль совпадает.

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

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

Как защитить панель 3X-UI от взлома?

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

Можно ли использовать Hysteria 2 и другие протоколы одновременно?

Да, в панели 3X-UI можно создать несколько inbound с разными протоколами (Hysteria 2, VLESS, Trojan) на разных портах. Это удобно для подстраховки: если UDP заблокируют, вы переключитесь на TCP-протокол.

Сколько времени занимает настройка Hysteria 2?

Если сервер и домен уже готовы, настройка через 3X-UI занимает 15–30 минут. Ручная настройка через конфиг может занять больше времени, особенно если вы новичок в Linux. Основное время уходит на ожидание обновления DNS и выпуск сертификата.