Hysteria VPN GitHub: что это, как установить и настроить протокол Hysteria 2

Разбираем Hysteria VPN на GitHub: что это за протокол, как он работает, где скачать клиенты и сервер, как установить и настроить Hysteria 2 на Linux и Windows, а также отвечаем на частые вопросы.

Что такое Hysteria и почему он популярен

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

Протокол поддерживает несколько режимов работы: SOCKS5, HTTP-прокси, пересылку TCP/UDP, а также прозрачный прокси через TProxy. Это делает его универсальным инструментом как для индивидуального использования, так и для организации проксирования на уровне всей сети.

Одной из ключевых особенностей Hysteria является его способность маскироваться под стандартный трафик HTTP/3. Это означает, что пакеты, передаваемые через Hysteria, выглядят для промежуточных узлов как обычные HTTP/3-запросы, что значительно усложняет их обнаружение и блокировку. При этом сервер может реально обслуживать веб-контент, чтобы маскировка была более правдоподобной.

Вторая версия протокола, Hysteria 2, получила ряд улучшений, включая встроенную поддержку автоматического получения сертификатов через ACME, более гибкую систему аутентификации и улучшенную производительность. Именно Hysteria 2 сейчас активно развивается и рекомендуется к использованию.

Где найти Hysteria на GitHub и что там есть

Официальный репозиторий Hysteria находится на GitHub по адресу github.com/apernet/hysteria. Там вы найдете исходный код, документацию, информацию о релизах и возможность скачать готовые исполняемые файлы для всех основных платформ.

На странице релизов доступны предварительно скомпилированные бинарники для Windows, Linux, macOS, Android и FreeBSD. Для каждой платформы есть несколько вариантов под разные архитектуры процессора. Например, для Linux доступны сборки для amd64, arm64, armv7, mipsle, riscv64 и других архитектур. Для Windows — для x86-64, x86 и ARM64.

Кроме того, в репозитории есть скрипт установки для Linux-серверов, который автоматически скачивает последнюю версию и настраивает systemd-сервис. Этот скрипт доступен по адресу get.hy2.sh и может быть запущен одной командой.

Также на GitHub можно найти множество сторонних проектов, связанных с Hysteria: графические клиенты, панели управления, конфигурации и даже автоматические коллекции конфигов. Например, существуют сайты, которые собирают и обновляют списки бесплатных Hysteria-серверов, что может быть полезно для быстрого старта.

Как работает Hysteria 2: протокол, маскировка и обфускация

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

Первый механизм — маскировка под HTTP/3. По умолчанию Hysteria имитирует HTTP/3-трафик, что делает его неотличимым от обычных веб-запросов. Для этого на сервере настраивается секция masquerade, которая может действовать как статический файловый сервер, обратный прокси или просто возвращать заданную строку. Это позволяет серверу выглядеть как обычный веб-сайт для внешних наблюдателей.

Второй механизм — обфускация Salamander. Если сеть блокирует QUIC или HTTP/3, можно включить обфускацию, которая преобразует пакеты в случайные байты без какого-либо шаблона. Это делает трафик неотличимым от случайного шума. Однако включение обфускации делает сервер несовместимым со стандартными QUIC-соединениями, поэтому он перестает быть полноценным HTTP/3-сервером.

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

Установка Hysteria 2 на сервер: пошаговая инструкция

Для установки Hysteria 2 на сервер с Linux (Debian/Ubuntu) потребуется VPS с root-доступом и доменное имя. Домен можно купить у регистратора или получить бесплатно, например, на dynu.com.

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

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

Второй способ — установка через Docker. Сначала создайте папку для конфигурации:

sudo mkdir -p /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 tobyxdd/hysteria

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

acme:
  domains:
    - your.domain.net
  email: your@email.com

auth:
  type: password
  password: your_password

masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

В секции acme укажите ваш домен и email. Hysteria автоматически получит и будет продлевать SSL-сертификат через ACME. В секции auth задайте пароль для аутентификации клиентов. Секция masquerade определяет, как сервер будет отвечать на посторонние HTTP-запросы.

Настройка сервера: аутентификация, маскировка и обфускация

Hysteria 2 поддерживает несколько способов аутентификации: по паролю, по логину/паролю (userpass), через HTTP-запрос к внешнему серверу и через выполнение команды.

Простая аутентификация по паролю задается так:

auth:
  type: password
  password: your_password

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

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

HTTP-аутентификация позволяет интегрировать Hysteria с вашей собственной системой управления пользователями. При подключении клиента сервер отправляет POST-запрос на указанный URL с данными о подключении, а ваш сервер должен вернуть JSON с полем ok и идентификатором пользователя.

Командная аутентификация аналогична HTTP, но вместо запроса выполняется указанная команда с аргументами. Команда должна вывести идентификатор клиента в stdout и вернуть код 0, если доступ разрешен.

Маскировка настраивается в секции masquerade. Доступны три режима:

  • file — сервер отдает файлы из указанной директории;
  • proxy — сервер работает как обратный прокси и подменяет контент с другого сайта;
  • string — сервер всегда возвращает заданную строку.

Для обфускации Salamander добавьте секцию obfs:

obfs:
  type: salamander
  salamander:
    password: your_obfs_password

Пароль обфускации должен совпадать на сервере и клиенте.

Настройка клиента Hysteria 2 на разных платформах

Hysteria 2 поддерживает все основные платформы: Windows, Linux, macOS, Android и iOS. Для каждой платформы есть официальные или сторонние клиенты.

На Windows и Linux можно использовать официальный CLI-клиент, который входит в состав исполняемых файлов. Также популярны графические клиенты, такие как Throne, NekoRay, Hiddify и v2rayNG (для Android).

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

server: your.domain.net:443

auth: your_password

tls:
  sni: your.domain.net
  insecure: false

socks5:
  listen: 127.0.0.1:1080

http:
  listen: 127.0.0.1:8080

В этом примере клиент будет слушать локальные порты для SOCKS5 и HTTP-прокси. Вы можете использовать эти прокси в браузере или других приложениях.

Для Android удобно использовать v2rayNG или Hiddify. В v2rayNG нужно импортировать конфигурацию из буфера обмена или QR-кода, затем проверить задержку и подключиться. В Hiddify необходимо изменить вариант маршрутизации на "Индонезия" (это особенность некоторых сборок) и выбрать VPN-сервис.

Для iOS можно использовать приложение V2Box или другие клиенты, поддерживающие Hysteria 2.

Автоматические конфиги и коллекции серверов на GitHub

На GitHub можно найти проекты, которые автоматически собирают и обновляют списки бесплатных Hysteria-серверов. Например, проект Goida VPN Configs предоставляет коллекцию конфигов для V2Ray, VLESS, Hysteria, Trojan, VMess, Reality и Shadowsocks. Эти конфиги обновляются каждые 9 минут.

Такие коллекции удобны для быстрого старта, но имеют свои риски. Бесплатные серверы могут быть нестабильными, медленными или даже использоваться злоумышленниками для перехвата трафика. Поэтому не рекомендуется использовать их для передачи чувствительных данных.

Если вы все же решили воспользоваться такими конфигами, следуйте инструкциям на сайте: скопируйте ссылку на конфиг, импортируйте ее в клиент (v2rayNG, Throne и др.), проверьте задержку и выберите сервер с минимальным пингом.

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

Проброс портов и обход блокировок UDP

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

Клиент Hysteria поддерживает специальный формат адресов с несколькими портами:

example.com:1234,5678,9012
example.com:20000-50000
example.com:1234,5000-6000,7044,8000-9000

Клиент будет случайным образом выбирать один из указанных портов для первоначального соединения и периодически переключаться на другой. Интервал переключения задается параметром hopInterval в транспортной секции.

Сервер Hysteria не поддерживает прослушивание нескольких портов напрямую, поэтому для проброса портов на сервере используются правила iptables. Например, чтобы перенаправить все UDP-пакеты с портов 20000-50000 на порт 443, выполните:

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

Для IPv6 аналогично с ip6tables. Это позволяет клиенту подключаться к любому порту в диапазоне, а сервер будет принимать соединения на 443 порту.

Производительность и тестирование скорости Hysteria

Hysteria 2 известен своей высокой производительностью, особенно в условиях потери пакетов. Благодаря использованию QUIC и алгоритмам управления перегрузкой, он может обеспечивать стабильную скорость даже на нестабильных каналах.

Для тестирования скорости можно использовать встроенную функцию теста скорости в клиенте. Например, в Hiddify или v2rayNG есть возможность проверить задержку и скорость каждого сервера. Это помогает выбрать оптимальный сервер.

При настройке собственного сервера важно выбрать VPS с хорошим каналом и низким пингом до вашего региона. Также стоит обратить внимание на качество сертификатов и правильность настройки маскировки.

Стоит отметить, что производительность Hysteria может зависеть от конкретной сети. В некоторых случаях другие протоколы, такие как Shadowsocks или XTLS-Reality, могут показывать лучшие результаты. Поэтому рекомендуется тестировать разные протоколы и выбирать тот, который работает лучше в ваших условиях.

Безопасность и ограничения Hysteria 2

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

Маскировка под HTTP/3 помогает скрыть факт использования прокси, но не является абсолютной защитой. В некоторых странах применяются методы глубокого анализа пакетов (DPI), которые могут выявлять характерные признаки Hysteria. В таких случаях может помочь обфускация Salamander.

Также стоит учитывать, что Hysteria 2 не поддерживает CDN. Это означает, что вы не можете спрятать свой сервер за Cloudflare или другим CDN. Это ограничение связано с особенностями протокола QUIC.

Наконец, Hysteria 2 не имеет встроенных панелей управления, поэтому для управления пользователями и статистикой придется использовать сторонние решения или настраивать все вручную.

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

Что такое Hysteria VPN и чем он отличается от других протоколов?

Hysteria — это прокси-протокол на основе QUIC, который обеспечивает высокую скорость и низкую задержку. Его главное отличие — способность маскироваться под HTTP/3 и использовать обфускацию Salamander для обхода блокировок. В отличие от OpenVPN или WireGuard, Hysteria изначально разработан для обхода цензуры и может работать в сетях, где блокируются стандартные VPN-протоколы.

Где скачать Hysteria 2 для Windows, Linux или Android?

Официальные исполняемые файлы доступны на GitHub в разделе Releases репозитория apernet/hysteria. Для Linux также есть скрипт установки get.hy2.sh. Для Android можно использовать сторонние приложения, такие как v2rayNG или Hiddify, которые поддерживают Hysteria 2. Для Windows подойдут Throne, NekoRay или официальный CLI-клиент.

Как установить Hysteria 2 на сервер?

Самый простой способ — выполнить команду bash <(curl -fsSL https://get.hy2.sh/) на сервере с Linux. Скрипт установит Hysteria и настроит systemd-сервис. Также можно использовать Docker: docker run -d -p 443:443/udp --name hysteria --restart=always -v /etc/hysteria:/etc/hysteria tobyxdd/hysteria. После установки нужно отредактировать конфигурационный файл /etc/hysteria/config.yaml.

Нужен ли домен для Hysteria 2?

Да, для полноценной работы Hysteria 2 рекомендуется иметь доменное имя. Оно используется для получения SSL-сертификата через ACME, что обеспечивает шифрование и маскировку под HTTP/3. Домен можно купить у регистратора или получить бесплатно, например, на dynu.com. Без домена можно использовать самоподписанные сертификаты, но это снизит безопасность и может вызвать проблемы с маскировкой.

Как настроить клиент Hysteria 2?

Клиент настраивается с помощью конфигурационного файла YAML. В нем указываются адрес сервера, порт, пароль аутентификации и параметры TLS. Пример конфигурации: server: your.domain.net:443, auth: your_password, tls: { sni: your.domain.net }. Также можно использовать графические клиенты, такие как v2rayNG или Throne, где достаточно импортировать конфигурацию из буфера обмена или QR-кода.

Что такое обфускация Salamander и когда она нужна?

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

Можно ли использовать Hysteria 2 с CDN?

Нет, Hysteria 2 не поддерживает CDN. Это связано с тем, что протокол использует QUIC, который не может быть корректно обработан большинством CDN. Если вам нужна защита от DDoS или скрытие IP-адреса сервера, придется использовать другие методы, например, проксирование через другой сервер или использование VPS с защитой от DDoS.