Hysteria 2 на OpenWrt: настройка PassWall и оптимизация работы протокола

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

Что такое Hysteria 2 и зачем он нужен на OpenWrt

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

Установка Hysteria 2 на роутер с OpenWrt через пакет PassWall позволяет централизованно управлять прокси-соединениями на уровне всей домашней сети. Это избавляет от необходимости настраивать каждое устройство отдельно — достаточно подключить роутер, и весь трафик обрабатывается автоматически. PassWall поддерживает множество протоколов, включая Hysteria 2, и предоставляет удобный веб-интерфейс для управления узлами и правилами маршрутизации.

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

Перед установкой Hysteria 2 убедитесь, что ваша версия OpenWrt совместима с последней сборкой PassWall. PassWall 4.71-2, который поддерживает Hysteria 2, собран на основе OpenWrt 23.05-rc3. Если у вас более старая версия (например, 21.02), обновление не обязательно — многие пользователи успешно устанавливают пакет и на таких системах, но возможны проблемы с зависимостями.

Для проверки архитектуры процессора вашего роутера выполните в SSH:

uname -m

Результат (например, x86_64 или aarch64) понадобится для скачивания правильной версии пакета passwall_packages_ipk. Также убедитесь, что в текущей версии PassWall уже есть поддержка Hysteria 2 и sing-box — это можно проверить в веб-интерфейсе PassWall в разделе "Компоненты". Если sing-box отсутствует, его нужно будет установить отдельно.

Загрузка и установка PassWall с поддержкой Hysteria 2

Для установки PassWall с Hysteria 2 вам потребуются три файла:

  • luci-app-passwall_4.71-2_all.ipk — основной пакет приложения.
  • luci-i18n-passwall-zh-cn_git-23.289.45328-a953315_all.ipk — пакет локализации (рекомендуется для русского интерфейса).
  • passwall_packages_ipk_<архитектура>.zip — набор зависимостей, включая sing-box и Hysteria 2.

Скачайте эти файлы на компьютер, затем через веб-интерфейс OpenWrt перейдите в Система → Файловый менеджер и загрузите их в /tmp/upload/. После загрузки подключитесь к роутеру по SSH и выполните:

cd /tmp/upload
unzip passwall_packages_ipk_<архитектура>.zip
opkg install *.ipk --force-reinstall

Если при установке возникнут ошибки зависимостей, попробуйте обновить список пакетов (opkg update) и повторить команду. После успешной установки перезагрузите роутер или перезапустите службы PassWall.

Настройка сервера Hysteria 2 на VPS

Для работы Hysteria 2 необходим сервер (VPS) с Debian/Ubuntu. Установка выполняется одной командой:

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

Если у вас нет прав root, скачайте скрипт и запустите с sudo:

wget https://get.hy2.sh/install_server.sh
chmod 755 install_server.sh
sudo ./install_server.sh

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

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

Параметр listen указывает порт (по умолчанию 443). Секция acme отвечает за автоматическое получение SSL-сертификата через Let's Encrypt — укажите ваш домен и email. auth задаёт пароль для подключения клиентов. masquerade маскирует трафик под обычный веб-серфинг, что затрудняет блокировку.

Если вы предпочитаете использовать собственные сертификаты, замените секцию acme на:

tls:
  cert: /path/to/cert.crt
  key: /path/to/key.key

Не забудьте выдать права на чтение файлов: sudo chmod 644 /path/to/cert.crt /path/to/key.key.

Добавление Hysteria 2 узла в PassWall на OpenWrt

После установки PassWall и настройки сервера перейдите в веб-интерфейс OpenWrt: Службы → PassWall → Узлы. Нажмите "Добавить" и выберите тип протокола Hysteria 2. Заполните поля:

  • Адрес сервера: IP или домен вашего VPS.
  • Порт: 443 (или тот, который вы указали в конфигурации сервера).
  • Пароль: тот же, что указан в auth.password на сервере.
  • Протокол: оставьте "udp".
  • Маскировка: включите, если на сервере настроена секция masquerade.
  • Обфускация: если на сервере включена обфускация Salamander, укажите тот же пароль.

Сохраните узел. Затем перейдите в Настройки → Основные настройки и выберите этот узел в качестве основного прокси. Включите глобальный режим или настройте правила маршрутизации по своему усмотрению. После применения настроек проверьте соединение, открыв любой сайт — трафик должен идти через Hysteria 2.

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

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

obfs:
  type: salamander
  salamander:
    password: your_obfuscation_password

На клиенте в PassWall укажите тот же пароль в поле "Обфускация".

Если ваш провайдер блокирует постоянные UDP-соединения на одном порту, используйте проброс портов (port hopping). На сервере настройте iptables для перенаправления диапазона портов на порт Hysteria:

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

На клиенте в конфигурации укажите несколько портов через запятую, например: your.domain.com:20000,30000,40000. Клиент будет случайным образом выбирать порт для каждого соединения, что усложняет блокировку.

Управление сервером Hysteria 2: запуск, остановка и мониторинг

После установки сервера Hysteria 2 он автоматически запускается как systemd-сервис. Основные команды управления:

  • systemctl start hysteria-server.service — запуск.
  • systemctl stop hysteria-server.service — остановка.
  • systemctl restart hysteria-server.service — перезапуск.
  • systemctl status hysteria-server.service — проверка статуса.
  • systemctl enable hysteria-server.service — добавление в автозагрузку.
  • journalctl -u hysteria-server.service — просмотр логов для диагностики.

Логи помогут выявить ошибки подключения, проблемы с сертификатами или неверные параметры аутентификации. Если сервер не запускается, проверьте синтаксис YAML-конфигурации — лишние или отсутствующие пробелы часто вызывают ошибки.

Типичные проблемы и их решение

  1. Ошибка "sing-box not found" при установке PassWall — это означает, что пакет sing-box не установился автоматически. Войдите в веб-интерфейс PassWall, перейдите в Компоненты и нажмите "Обновить" или "Установить" для sing-box. Если это не помогает, скачайте последнюю версию sing-box вручную и установите через opkg.
  1. Сервер Hysteria не запускается после установки — проверьте, что порт 443 не занят другим сервисом (например, nginx). Используйте sudo ss -tulpn | grep 443. Если порт занят, измените порт в конфигурации сервера.
  1. Клиент не подключается к серверу — убедитесь, что на сервере открыт UDP-порт (по умолчанию 443). Проверьте файрвол: sudo ufw allow 443/udp. Также проверьте правильность пароля и домена.
  1. Низкая скорость соединения — попробуйте отключить обфускацию, если она не требуется. Также проверьте качество канала до сервера — Hysteria 2 оптимизирован для плохих линий, но слишком высокий пинг может снижать скорость.

Безопасность и дополнительные рекомендации

Hysteria 2 использует шифрование TLS для защиты данных, но для максимальной безопасности рекомендуется:

  • Использовать сложные пароли для аутентификации (не менее 16 символов).
  • Регулярно обновлять сервер и клиент до последних версий.
  • Включать обфускацию только при необходимости, так как она может снижать совместимость со стандартными QUIC-соединениями.
  • Настроить бэкап конфигурационных файлов сервера и клиента.

Если вы используете Hysteria 2 в регионе с агрессивной цензурой, рассмотрите комбинацию с другими протоколами (например, Shadowsocks или XTLS-Reality) для распределения нагрузки и повышения отказоустойчивости. PassWall позволяет легко переключаться между узлами, поэтому вы можете иметь несколько резервных серверов.

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

Можно ли установить Hysteria 2 на OpenWrt без PassWall?

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

Какой минимальный VPS нужен для Hysteria 2?

Достаточно VPS с 512 МБ ОЗУ и одним ядром CPU, работающим на Debian/Ubuntu. Объём диска — от 5 ГБ. Важно наличие открытого UDP-порта (обычно 443) и возможность привязать домен.

Что делать, если после обновления PassWall пропал Hysteria 2?

Проверьте раздел "Компоненты" в PassWall — возможно, sing-box или сам Hysteria 2 не обновились. Нажмите "Обновить" или переустановите пакеты вручную через opkg.

Влияет ли обфускация Salamander на скорость?

Да, обфускация может незначительно снижать скорость из-за дополнительной обработки пакетов. Включайте её только если без неё трафик блокируется.

Как проверить, что Hysteria 2 работает корректно?

На сервере выполните systemctl status hysteria-server.service — статус должен быть active (running). На клиенте в PassWall проверьте логи подключения и откройте любой сайт — если он загружается, соединение работает.

Можно ли использовать Hysteria 2 на роутерах с малым объёмом памяти?

Да, Hysteria 2 относительно лёгкий, но для OpenWrt требуется не менее 128 МБ ОЗУ и 16 МБ flash. Если памяти мало, возможны проблемы с установкой дополнительных пакетов.

Что такое проброс портов (port hopping) и зачем он нужен?

Это техника, при которой клиент подключается к разным портам сервера, чтобы избежать блокировки по одному порту. Настраивается на сервере через iptables, а на клиенте указывается список портов.