MAATRIX / Блог / Hysteria2 на Windows: настройка клиента

Hysteria2 на Windows: настройка клиента

MAATRIX

Сервер на Hysteria2 поднят, ссылка вида hysteria2:// есть, а клиент на Windows либо не подключается, либо подключается, но скорость ниже ожидаемой. У этого протокола своя специфика — он целиком живёт на UDP и QUIC, требователен к параметрам полосы пропускания и по-другому обрабатывает TLS-сертификаты. Разберём, какой GUI-клиент ставить на Windows, как правильно импортировать конфиг и что чаще всего ломает подключение.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое Hysteria2 и чем он отличается от привычных протоколов

Hysteria2 (проект apernet/hysteria, вторая версия) — это протокол поверх QUIC, изначально спроектированный для нестабильных и заблокированных каналов. В отличие от WireGuard и OpenVPN, которые ориентированы на классические сети, Hysteria2 использует собственный алгоритм управления перегрузкой Brutal, рассчитанный на линии с потерями пакетов и высокой задержкой — там, где обычный TCP или стандартный QUIC-конгестия-контроль просаживает скорость, Hysteria2 старается держать заявленную полосу.

Практическое следствие: клиент обязательно указывает пропускную способность канала (up/down) — не просто справочно, а как параметр, влияющий на поведение алгоритма. Второе отличие — аутентификация по единому паролю (а не по логину/паролю, как было в первой версии Hysteria), что упрощает конфиг, но требует внимательности при копировании.

Так как весь трафик идёт по UDP, протокол хорошо проходит через сети, где душат TCP-соединения, но плохо переживает сети, где UDP режется целиком, — это стоит держать в голове до того, как тратить время на диагностику клиента.

Выбор GUI-клиента для Windows

Официальный клиент Hysteria2 — это консольный бинарник hysteria-windows-amd64.exe, который запускается с YAML-конфигом через командную строку. Он работает надёжно, но для повседневного использования неудобен: нет трея, нет кнопки «подключить», параметры нужно редактировать в текстовом файле.

Для обычной работы практичнее универсальные GUI-клиенты, которые включают ядро Hysteria2 как один из поддерживаемых протоколов наравне с VLESS, VMess и Shadowsocks:

  • NekoRay / NekoBox for Windows — GUI-обёртка, которая подтягивает нужные протокольные ядра как плагины, включая hysteria2. Поддерживает импорт по ссылке, редактирование параметров в форме и системный трей.
  • Hiddify Next — кроссплатформенный клиент на базе ядра sing-box, у которого Hysteria2 поддерживается «из коробки» без отдельных плагинов; удобен, если планируете использовать один клиент и на Windows, и на телефоне.
  • v2rayN — в актуальных сборках также умеет работать с hysteria2://-ссылками через встроенное ядро, если у вас уже есть этот клиент под другие протоколы (сравнение с NekoRay смотрите в статье про Xray VLESS на Windows: v2rayN и NekoRay) — заводить второй клиент отдельно под Hysteria2 обычно не нужно.

На что смотреть при выборе:

  • поддержка актуальной версии протокола именно Hysteria2 (не путайте с первой версией Hysteria — конфиги и ссылки у них разные, взаимно несовместимые);
  • наличие системного трея и индикатора соединения;
  • поддержка TUN-режима, если нужно завернуть весь системный трафик, а не только браузер;
  • открытый исходный код — скачивайте сборки только с официальных репозиториев проектов на GitHub.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Формат конфига: ссылка hysteria2:// и YAML

Настройки Hysteria2 передаются двумя равноценными способами. Первый — единая ссылка, которую генерирует панель управления сервером или скрипт установки:

hysteria2://ВашПароль@203.0.113.10:443/?insecure=0&sni=example.com&obfs=salamander&obfs-password=ОбфускацияПароль#my-server

Разбор параметров:

  • ВашПароль — пароль аутентификации, должен посимвольно совпадать с паролем на сервере;
  • 203.0.113.10:443 — адрес и порт сервера;
  • sni — имя домена, которое клиент предъявляет при TLS-рукопожатии, обычно совпадает с доменом сертификата на сервере;
  • insecure1, если сервер использует самоподписанный сертификат и его нужно принимать без проверки цепочки доверия; 0 или параметр отсутствует, если сертификат от нормального удостоверяющего центра;
  • obfs и obfs-password — опциональная обфускация Salamander поверх QUIC, добавляется, если провайдер сервера включил защиту от DPI-детекции самого протокола Hysteria2.

Второй способ — YAML-конфиг, который использует консольный клиент и который многие GUI-клиенты позволяют вставить как есть вместо заполнения формы:

server: 203.0.113.10:443
auth: ВашПароль
tls:
  sni: example.com
  insecure: false
bandwidth:
  up: 20 mbps
  down: 100 mbps
socks5:
  listen: 127.0.0.1:1080

Если сервер настраивали вы сами, у вас на руках, скорее всего, именно YAML — из него несложно собрать ссылку вручную или вставить блок целиком в раздел «Custom config» вашего GUI-клиента, если такой есть.

Установка и импорт конфигурации

Порядок действий в NekoRay и похожих по логике клиентах:

  1. Скачайте архив с официального репозитория проекта на GitHub, распакуйте в папку без кириллицы и пробелов в пути.
  2. Запустите исполняемый файл — при первом старте клиент может предложить скачать протокольные ядра (в том числе hysteria2-core), согласитесь, иначе профиль этого типа просто не запустится.
  3. В главном окне выберите «Программа» → «Добавить профиль из буфера обмена» (или аналогичный пункт меню «Server» / «Import»), предварительно скопировав ссылку hysteria2:// целиком.
  4. Если импортируете вручную — создайте новый профиль типа Hysteria2 и заполните поля: адрес сервера, порт, пароль, SNI, флаг insecure, при необходимости параметры обфускации.
  5. Дважды кликните по профилю или нажмите «Пуск» — при успешном подключении в трее и в логе клиента появится статус активного соединения.

В Hiddify Next логика похожая: «Добавить профиль» → вставить ссылку или отсканировать QR-код, если панель сервера его показывает, → выбрать профиль активным свайпом или кнопкой подключения на главном экране.

Держите профили с понятными именами, особенно если серверов несколько — путаница между паролем от одного сервера и адресом от другого встречается регулярно, а Hysteria2 в этом случае просто не подключится без внятной причины в интерфейсе.

Локальный прокси, системный прокси и TUN-режим

Как и у большинства подобных клиентов, у Hysteria2-клиента на Windows есть три уровня работы с трафиком:

Локальный SOCKS5/HTTP-прокси. Клиент поднимает прокси на 127.0.0.1 (порт обычно настраивается, по умолчанию часто 2080 или 1080 в зависимости от клиента). На этот адрес нужно направить браузер или конкретное приложение с полем прокси в настройках.

Проверить, что прокси реально слушает порт, можно через PowerShell:

netstat -ano | findstr 2080

Строка с LISTENING подтверждает, что клиент поднял локальный сокет — если её нет, проблема в самом клиенте (профиль не подключён либо порт занят другим процессом).

Системный прокси Windows. Многие GUI-клиенты умеют сами прописывать системный прокси при подключении (пункт вроде «Set as system proxy» / «System Proxy Mode») и возвращать настройки обратно при отключении — это покрывает большинство приложений, которые уважают системные параметры прокси.

TUN-режим (виртуальный сетевой адаптер). Если нужно завернуть весь трафик системы без исключений — включая приложения, игнорирующие системный прокси, — включите режим TUN в настройках клиента. Он создаёт виртуальный сетевой интерфейс и требует запуска клиента от имени администратора. Это самый надёжный способ не потерять часть трафика мимо туннеля, но и самый требовательный к отсутствию конфликтов с другими VPN-клиентами на той же машине — если параллельно поднят OpenVPN, TUN-адаптеры могут конфликтовать по маршрутам.

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

Клиент «подключён», но интернета нет или он крайне медленный. Чаще всего дело в параметрах bandwidth: если указать up/down заметно выше реального канала, алгоритм Brutal будет слать больше трафика, чем канал способен переварить, и это выглядит как потери пакетов и просадки. Начните с честной оценки скорости вашего интернета (можно занизить значения относительно паспортных, ориентируясь на реальный спидтест) и подстройте по факту.

TLS handshake не проходит. Обычно рассогласование sni и insecure: если сервер использует самоподписанный сертификат, а insecure не выставлен в true/1, клиент отклонит соединение на этапе TLS. Если у сервера настоящий сертификат от Let's Encrypt или аналогичного CA, insecure наоборот держите выключенным и проверьте, что sni совпадает с доменом сертификата — иначе клиент снова не пройдёт проверку.

Соединение обрывается или не устанавливается вовсе — а по TCP-протоколам с того же сервера всё работает. Это почти всегда означает, что на пути блокируется или сильно ограничивается именно UDP, а не порт как таковой. Некоторые сети (корпоративные, часть мобильных операторов, отдельные Wi-Fi публичных точек) режут UDP целиком или сильно занижают приоритет QUIC-трафика по DPI-сигнатурам. У Hysteria2 в этом случае нет TCP-фолбэка — если сервер это позволяет, включите обфускацию Salamander (obfs: salamander в конфиге сервера и клиента), которая маскирует характерные признаки протокола, либо смените порт сервера на 443 — на нём UDP реже подвергается спецобработке, чем на нестандартных портах.

Порт сервера закрыт, хотя на сервере всё настроено верно. Проверьте доступность порта на уровне сети:

Test-NetConnection -ComputerName 203.0.113.10 -Port 443

Учтите: эта команда по умолчанию проверяет TCP, а Hysteria2 работает по UDP — «успех» здесь не гарантирует, что UDP-порт тоже открыт, но «неуспех» на TCP порта 443 часто указывает на то, что порт вообще закрыт файрволом ОС или security group облачного провайдера для обоих протоколов сразу. Смотрите настройки файрвола для VPN-протоколов на Windows, если ограничение локальное, либо панель управления сервером — если ограничение на стороне провайдера.

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

Время на компьютере сбито. TLS-проверка чувствительна к системным часам — если время на Windows заметно расходится с реальным (частая история на виртуалках), рукопожатие падает с ошибками сертификата, которые выглядят как проблема конфига, а лечатся синхронизацией времени.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

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

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Чем Hysteria2 отличается от WireGuard по ощущениям на Windows-клиенте?

WireGuard проще в диагностике — это классический UDP-туннель без встроенной маскировки под TLS. Hysteria2 сложнее настроить с первого раза из-за параметров bandwidth и TLS, зато лучше проходит сети с DPI-фильтрацией. Если для вас это ключевой сценарий, посмотрите общее сравнение подходов в статье какой протокол VPN выбрать: гид по сценариям.

Можно ли использовать Hysteria2 без обфускации Salamander?

Да, обфускация опциональна и нужна в первую очередь там, где сеть активно детектирует и блокирует QUIC/Hysteria-трафик по сигнатурам. Если такой проблемы нет, лишний слой обфускации только добавляет накладные расходы.

Почему в NekoRay/Hiddify нет отдельного поля для метода шифрования, как в Shadowsocks?

Hysteria2 не даёт выбора шифра — используется TLS 1.3 поверх QUIC как единственный вариант, поэтому в конфиге настраиваются TLS-параметры (SNI, сертификат), а не алгоритм шифрования.

DNS-запросы точно идут через туннель, а не напрямую?

Это стоит проверить отдельно после первой настройки — включите резолвинг DNS через прокси в настройках клиента и сверьтесь с чек-листом в статье проверка и закрытие DNS-утечек через VPN, логика применима и к Hysteria2-клиентам.

Клиент подключается дома, но не подключается через рабочий Wi-Fi.

С высокой вероятностью корпоративная сеть режет исходящий UDP на нестандартные порты. Попробуйте порт 443 на сервере (он реже блокируется, так как совпадает со стандартным HTTPS) и включите обфускацию, если она ещё не включена.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →