Hysteria 2 на MikroTik: настройка клиента и сервера для быстрого и обходного VPN

Подробное руководство по настройке Hysteria 2 на роутерах MikroTik: установка, конфигурация, обход блокировок, решение проблем и сравнение с другими протоколами.

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

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

Ключевая особенность Hysteria 2 — способность маскировать трафик под обычный HTTP/3 (QUIC). Это делает его сложным для обнаружения и блокировки, что особенно актуально в сетях с глубокой фильтрацией (DPI). Протокол поддерживает аутентификацию, статистику трафика, контроль доступа и проброс портов.

Для MikroTik Hysteria 2 интересен тем, что позволяет организовать быстрый и обходной VPN прямо на роутере, не задействуя ресурсы компьютера или смартфона. Весь трафик домашней сети может автоматически направляться через защищённый туннель.

Требования к роутеру MikroTik и подготовка

Для установки Hysteria 2 на MikroTik потребуется устройство с архитектурой ARM (например, модели hAP ac³, RB4011, RB5009) или MIPS (старые модели, такие как RB951Ui-2HnD). Важно, чтобы на роутере была установлена актуальная версия RouterOS (желательно 7.x), так как в ней улучшена поддержка контейнеров и пакетов.

Также понадобится USB-накопитель или встроенная память достаточного объёма (от 128 МБ) для хранения бинарного файла Hysteria и конфигурации. Рекомендуется использовать внешний USB-накопитель, чтобы не переполнять встроенную флеш-память.

Перед началом настройки убедитесь, что у вас есть доступ к роутеру по SSH (включите SSH-сервер в RouterOS) и права администратора. Также необходимо иметь домен (можно бесплатный, например, на freedns.afraid.org) и VPS-сервер с Ubuntu/Debian, на котором будет развёрнут сервер Hysteria 2.

Установка Hysteria 2 на сервер (VPS)

Серверная часть Hysteria 2 устанавливается на VPS с Linux. Самый простой способ — использовать официальный скрипт установки:

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

Скрипт автоматически скачает бинарник, создаст systemd-сервис и базовую конфигурацию. Если скрипт не запускается из-за прав доступа, можно скачать его вручную и выполнить с sudo:

wget https://get.hy2.sh/install_server.sh
chmod +x 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_strong_password
masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

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

После сохранения конфигурации перезапустите сервис:

sudo systemctl restart hysteria

Проверить статус можно командой sudo systemctl status hysteria.

Настройка клиента Hysteria 2 на MikroTik

Установка клиента Hysteria 2 на MikroTik требует загрузки бинарного файла под архитектуру роутера. Для ARM64 подойдёт файл hysteria-linux-arm64, для MIPS — hysteria-linux-mipsle. Скачать их можно с GitHub-релизов проекта Hysteria.

Загрузите бинарник на роутер, например, через FTP или SCP, и поместите в /storage/ (если используется USB-накопитель) или в /flash/. Затем создайте файл конфигурации клиента, например, /storage/hysteria-client.yaml:

server: your.domain.com:443
auth: your_password
tls:
  sni: your.domain.com
  insecure: false
socks5:
  listen: 127.0.0.1:1080

Здесь server — адрес вашего VPS, auth — пароль, tls.sni — домен, socks5.listen — локальный SOCKS5-прокси, через который будет ходить трафик.

Запустите клиент в фоне:

/storage/hysteria-linux-arm64 client -c /storage/hysteria-client.yaml &

Для автоматического запуска при загрузке роутера добавьте эту команду в скрипт /system scheduler или в /system script.

Маршрутизация трафика через Hysteria на MikroTik

Чтобы весь трафик с локальной сети шёл через Hysteria, необходимо настроить маршрутизацию. Самый простой способ — использовать политику маршрутизации (policy routing) или добавить маршрут по умолчанию через локальный SOCKS5-прокси.

Однако SOCKS5 не поддерживает маршрутизацию на уровне IP, поэтому лучше использовать режим TUN (создание виртуального сетевого интерфейса). Hysteria 2 поддерживает режим TUN, который создаёт интерфейс tun0 и перенаправляет в него весь трафик.

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

tun:
  enable: true
  stack: system
  dns:
    enable: true
    listen: 127.0.0.1:53

После запуска клиента появится интерфейс tun0. Настройте маршрут по умолчанию через него:

/ip route add dst-address=0.0.0.0/0 gateway=tun0

Также нужно настроить NAT для исходящего трафика с локальной сети:

/ip firewall nat add chain=srcnat out-interface=tun0 action=masquerade

Это позволит устройствам в локальной сети выходить в интернет через Hysteria.

Обход блокировок и маскировка трафика

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

Для включения обфускации на сервере добавьте в конфигурацию:

obfs:
  type: salamander
  salamander:
    password: your_obfs_password

На клиенте укажите те же параметры:

obfs:
  type: salamander
  salamander:
    password: your_obfs_password

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

Также можно использовать проброс портов (port hopping), чтобы обойти блокировку по конкретному порту. Клиент может подключаться к случайному порту из диапазона, а сервер перенаправляет трафик через iptables.

Решение типичных проблем при настройке

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

Если Hysteria работает по WiFi, но не работает по мобильной сети, попробуйте:

  • Отключить обфускацию Salamander.
  • Изменить порт с 443 на нестандартный (например, 8443).
  • Использовать проброс портов.

Ещё одна проблема — конфликт с другими туннелями. Если на роутере уже настроен WireGuard или OpenVPN, маршруты могут пересекаться. Решение — использовать разные таблицы маршрутизации или явно указывать приоритеты.

Если после обновления RouterOS перестал работать скрипт запуска, проверьте пути к бинарнику и права на выполнение. Иногда требуется переустановить пакет.

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

На MikroTik часто используют WireGuard, OpenVPN и SSTP. Hysteria 2 выгодно отличается скоростью на нестабильных каналах благодаря QUIC, который устойчив к потерям пакетов. WireGuard быстрее на стабильных каналах, но хуже маскируется. OpenVPN надёжен, но медленнее из-за TCP-туннеля.

Hysteria 2 также поддерживает аутентификацию и мультипользовательский режим, что удобно для раздачи доступа нескольким людям. Однако у Hysteria 2 нет встроенной панели управления, в отличие от 3x-ui, поэтому управление пользователями придётся автоматизировать скриптами.

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

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

При настройке Hysteria 2 важно использовать надёжный пароль для аутентификации и не передавать его в открытом виде. Рекомендуется использовать длинные пароли или перейти на аутентификацию по сертификатам.

Также стоит ограничить доступ к серверу по IP-адресам с помощью firewall, чтобы предотвратить несанкционированные подключения. На MikroTik можно создать правило firewall, разрешающее входящие подключения только с IP вашего VPS.

Регулярно обновляйте Hysteria 2 до последней версии, так как разработчики исправляют уязвимости и улучшают производительность. Для обновления на сервере достаточно перезапустить скрипт установки.

На роутере следите за нагрузкой CPU и памятью. Hysteria 2 потребляет ресурсы, особенно при активном использовании. Если роутер слабый, возможно, стоит использовать более лёгкий протокол.

Автоматизация и мониторинг работы Hysteria на MikroTik

Для автоматического запуска Hysteria при загрузке MikroTik создайте скрипт в RouterOS:

/system script add name=hysteria-start source="/storage/hysteria-linux-arm64 client -c /storage/hysteria-client.yaml &"
/system scheduler add name=hysteria-scheduler start-time=startup interval=0 on-event="/system script run hysteria-start"

Для мониторинга можно использовать логи Hysteria. В конфигурации клиента укажите уровень логирования:

log:
  level: info
  file: /storage/hysteria.log

Просматривать логи можно командой cat /storage/hysteria.log. Также можно настроить отправку логов на удалённый сервер через syslog.

Если Hysteria перестаёт работать, добавьте в планировщик проверку процесса и перезапуск при необходимости. Например, скрипт, который проверяет наличие процесса и запускает его заново.

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

Можно ли использовать Hysteria 2 на старых роутерах MikroTik с MIPS-архитектурой?

Да, для MIPS-архитектуры существуют отдельные сборки Hysteria 2 (например, hysteria-linux-mipsle). Однако производительность таких роутеров может быть недостаточной для высоких скоростей, особенно при использовании шифрования и обфускации. Рекомендуется проверить загрузку CPU в процессе работы.

Какой домен лучше использовать для Hysteria 2 — платный или бесплатный?

Можно использовать бесплатный домен, например, от freedns.afraid.org, но важно, чтобы он не содержал слов, ассоциирующихся с VPN или прокси (например, 'proxy', 'vpn'), так как это может привлечь внимание DPI. Платный домен даёт больше доверия и возможностей, но не является обязательным.

Почему Hysteria 2 не работает через мобильный интернет, хотя через WiFi всё функционирует?

Мобильные операторы часто блокируют или ограничивают UDP-трафик, особенно если он выглядит как QUIC. Решение: отключите обфускацию Salamander, попробуйте изменить порт с 443 на нестандартный, или используйте проброс портов. Также проверьте, не блокирует ли оператор конкретные порты.

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

Да, можно. Hysteria 2 работает как отдельный процесс и не конфликтует с WireGuard, если правильно настроить маршрутизацию. Используйте разные таблицы маршрутизации или явно указывайте, какой трафик идёт через какой туннель. Например, можно направить трафик к определённым сайтам через Hysteria, а остальной — через WireGuard.

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

На сервере достаточно повторно запустить официальный скрипт установки: bash <(curl -fsSL https://get.hy2.sh/). На роутере необходимо скачать новую версию бинарного файла с GitHub и заменить старый, затем перезапустить клиент. Убедитесь, что конфигурация совместима с новой версией.

Что делать, если Hysteria 2 на MikroTik не пропускает трафик?

Проверьте, что клиент запущен и процесс активен. Убедитесь, что маршрут по умолчанию указывает на интерфейс TUN, и что настроен NAT. Также проверьте логи Hysteria на наличие ошибок. Часто проблема возникает из-за неправильных прав на файлы или конфликта с другими туннелями.