Skip to content
RUEN

Hysteria2 и TUIC на VPS: когда нужен QUIC ​

VLESS Reality работает поверх TCP. Hysteria2 и TUIC устроены иначе: они используют QUIC, тот же транспорт на UDP, на котором работает HTTP/3. У них свои сильные стороны и своё слабое место, поэтому их ставят не вместо VLESS, а рядом с ним, как второй вариант подключения.

QUIC-протоколы на OBLAKO

Hysteria2, TUIC и Reality на серверах OBLAKO разрешены для личного использования. Чужие популярные домены в SNI под запретом: такие серверы система выключает автоматически. Ставьте их по нашим инструкциям, с собственным доменом и настоящим сертификатом: такой сервер снаружи выглядит обычным сайтом и полностью соответствует правилам.

Когда QUIC даёт выигрыш ​

  • Плохая сеть. На мобильном интернете с потерями пакетов TCP-соединение резко замедляется. Hysteria2 использует собственный алгоритм управления скоростью и держит высокую скорость там, где TCP проседает.
  • Длинный маршрут. При большой задержке до сервера QUIC быстрее устанавливает соединение и лучше переносит смену сети, например переход с Wi-Fi на мобильный интернет.
  • Запасной путь. Если у провайдера что-то сломалось именно на TCP, второй протокол на UDP часто продолжает работать.

Когда не поможет ​

Многие российские операторы ограничивают UDP, причём по-разному: одни режут скорость на нестандартных портах, другие душат QUIC целиком, а в режиме белых списков UDP почти всегда пропадает полностью. Поэтому проверяйте Hysteria2 у своего провайдера, а не ориентируйтесь на чужие отзывы. Основным протоколом разумно оставить VLESS Reality.

Hysteria2 или TUIC ​

Hysteria2TUIC v5
РазвитиеАктивно развивается, свой сайт и документацияОригинальный проект почти не обновляется, развитие идёт в форках
УстановкаОфициальный скрипт и systemd-сервисБинарник вручную или в составе sing-box
МаскировкаВстроенная: прикидывается HTTP/3-сайтомНет отдельного режима маскировки
ОбфускацияЕсть, SalamanderНет
КлиентыHiddify, v2rayN, NekoBox и другие на sing-boxКлиенты на sing-box

Для личного сервера проще и надёжнее Hysteria2. TUIC имеет смысл, только если он уже у вас работает или нужен конкретному клиенту. Дальше настраиваем Hysteria2.

Что понадобится ​

Hysteria2 слушает UDP-порт, поэтому может работать на 443 одновременно с Xray, который занимает TCP-порт 443. Мешать друг другу они не будут.

Шаг 1. Установите Hysteria2 ​

bash
bash <(curl -fsSL https://get.hy2.sh/)

Скрипт поставит бинарник и сервис hysteria-server.service, но сам сервер не запустит: сначала нужен конфиг.

Шаг 2. Выберите режим защиты ​

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

  • Маскировка (masquerade). Сервер ведёт себя как обычный HTTP/3-сайт: тот, кто подключится к нему без пароля, получит веб-страницу. Для этого нужен домен и сертификат.
  • Обфускация Salamander. Пакеты перемешиваются с паролем и перестают быть похожими на QUIC. Сервер больше не отвечает как HTTP/3-сайт, снаружи это просто UDP-трафик без узнаваемого протокола.

Если провайдер спокойно пропускает QUIC, выбирайте маскировку. Если QUIC режется, а произвольный UDP проходит, пробуйте Salamander.

Шаг 3. Напишите конфиг ​

Откройте /etc/hysteria/config.yaml и замените содержимое. Пароли придумайте длинные, например через openssl rand -base64 18.

Вариант с маскировкой и автоматическим сертификатом:

yaml
listen: :443

acme:
  domains:
    - ВАШ_ДОМЕН
  email: ВАШ_EMAIL

auth:
  type: password
  password: ВАШ_ПАРОЛЬ

masquerade:
  type: string
  string:
    content: "<!doctype html><title>ВАШ_ДОМЕН</title><p>Personal page</p>"
    headers:
      content-type: text/html
    statusCode: 200

Блок masquerade с типом string отдаёт простую страницу любому, кто зайдёт на сервер браузером. Можно указать и тип proxy с адресом сайта, но не берите чужой популярный сайт: немецкий IP, который показывает страницу крупного сервиса, выглядит странно.

Для получения сертификата Let's Encrypt должен достучаться до сервера: на время выпуска нужен свободный TCP-порт 80 или 443. Если на сервере уже работает self-steal, эти порты заняты nginx и Xray. Тогда используйте готовый сертификат: вместо блока acme укажите файлы.

yaml
tls:
  cert: /etc/letsencrypt/live/ВАШ_ДОМЕН/fullchain.pem
  key: /etc/letsencrypt/live/ВАШ_ДОМЕН/privkey.pem

Скрипт по умолчанию запускает сервис от отдельного пользователя без доступа к /etc/letsencrypt. В этом случае переустановите Hysteria2 с запуском от root:

bash
HYSTERIA_USER=root bash <(curl -fsSL https://get.hy2.sh/)

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

Вариант с обфускацией: уберите блок masquerade и добавьте:

yaml
obfs:
  type: salamander
  salamander:
    password: ПАРОЛЬ_ОБФУСКАЦИИ

Шаг 4. Запустите и откройте порт ​

bash
systemctl enable --now hysteria-server.service
systemctl status hysteria-server.service --no-pager
ufw allow 443/udp

Если сервис не стартует, смотрите лог: journalctl --no-pager -e -u hysteria-server.service. Чаще всего причина в отступах YAML или в том, что сертификат не выпустился.

Шаг 5. Подключите клиента ​

Ссылка для импорта в клиент:

text
hysteria2://ВАШ_ПАРОЛЬ@ВАШ_ДОМЕН:443/?sni=ВАШ_ДОМЕН#oblako-hy2

Для варианта с Salamander добавьте параметры обфускации:

text
hysteria2://ВАШ_ПАРОЛЬ@ВАШ_ДОМЕН:443/?sni=ВАШ_ДОМЕН&obfs=salamander&obfs-password=ПАРОЛЬ_ОБФУСКАЦИИ#oblako-hy2

Hiddify, v2rayN и NekoBox понимают такие ссылки. Параметр insecure=1 не ставьте: при настоящем сертификате он не нужен и только ослабляет защиту.

Если медленно или не подключается ​

СимптомЧто проверить
Не подключается совсемОткрыт ли 443/udp, работает ли сервис, совпадают ли пароль и SNI
Подключается только по Wi-FiМобильный оператор режет UDP или QUIC. Попробуйте Salamander или вернитесь к VLESS
Работает, но медленноПопробуйте другой UDP-порт, некоторые операторы ограничивают скорость именно на 443/udp
Ошибка сертификатаНе выпустился ACME: проверьте A-запись и свободен ли 80 порт

Порт меняется в строке listen, например listen: :8443. Не забудьте открыть новый порт в UFW и поправить ссылку на клиенте.

Только для личного использования

Правила OBLAKO разрешают личный VPN для себя и домашнего круга. Публичный доступ и перепродажа запрещены, подробнее в статье Личный VPN на VPS.