Быстрый старт Скорость Обновлено 6 Windows, Linux, macOS, Android, iOS

Как измерить скорость для Hysteria2 и подобрать bandwidth

Разбираем, как реально замерить пропускную способность канала для Hysteria2, учесть packet loss и RTT, а затем выставить bandwidth в конфигурации, чтобы не было деградации.

hysteria2bandwidthскоростьзамер скоростиpacket lossrtt
Содержание
КороткоДля Hysteria2 bandwidth нельзя брать «с потолка»: измеряйте TCP и UDP на нужном маршруте, учитывайте packet loss и RTT. После выбора проверяйте конфигурацию повторно, особенно если сеть изменилась.

Если вы настраиваете Hysteria2, то одна из главных задач — правильно определить bandwidth. От этого параметра напрямую зависит, насколько стабильно будет работать туннель и не будет ли он резать скорость. В этой статье мы разберём, как измерить реальную пропускную способность вашего канала, что такое packet loss и RTT, и как на их основе выставить адекватный bandwidth в конфигурации. Методика подходит и для сервера, и для клиента.

Проблема в том, что многие просто берут цифру из тарифа провайдера или из первого попавшегося теста скорости. Но в реальных условиях (особенно при использовании hysteria протокол впн) картина другая: влияют задержка, потери пакетов, тип сетевого соединения. Для hysteria 2 впн важно, чтобы bandwidth не превышал физически возможную скорость канала, иначе пакеты будут дропаться, и вы получите парадокс: чем выше установлен лимит, тем ниже фактическая скорость.

Почему замер скорости для Hysteria2 требует особого подхода

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

Настройка bandwidth в Hysteria2 — это не просто ограничение сверху, а способ сказать протоколу: «работай в этих пределах, чтобы не перегружать канал». Поэтому перед тем как вписать число в конфиг, нужно измерить не «скорость в питоре», а именно пропускную способность между сервером и клиентом на том маршруте, который вы будете использовать. Учитывайте также, что замер на короткое время может дать неверный результат из-за TCP-буферов и локального кэша.

Рекомендуется проводить несколько замеров в разное время суток, включая часы пик. Если ваш провайдер применяет shaping или QoS, картина будет отличаться от синтетических тестов. Для Hysteria2 особенно важна стабильность канала, а не пиковая скорость.

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

Классический iperf3 или speedtest-cli дают общую картину, но для Hysteria2 нужен тест, который учитывает UDP. Универсальный способ — использовать iperf3 в двух направлениях: вверх и вниз, с разными размерами пакетов. Однако у iperf3 есть особенность: тест UDP он проводит только в одну сторону. Для полного понимания используйте две команды: сначала сервер, потом клиент.

Пример замера TCP:
На сервере: iperf3 -s
На клиенте: iperf3 -c сервер_IP

Пример замера UDP (нужно задать bandwidth):
На сервере: iperf3 -s
На клиенте: iperf3 -c сервер_IP -u -b 300M (подставьте своё значение).

Заметим, что iperf3 показывает и jitter, и packet loss. Если packet loss высокий даже на малой скорости, значит, проблема в самом канале, а не в настройках Hysteria2.

Можно также использовать утилиту speedtest-cli (клиент Speedtest) для общего понимания, но она не показывает отдельно потерю пакетов для UDP. Для Hysteria2 это критично, потому что протокол делает ретрансмиссию на прикладном уровне, но при высоких потерях даже это не спасает. Именно поэтому прямой замер TCP и UDP на вашем маршруте — обязательный шаг. Подробнее о UDP в мобильных сетях читайте в отдельной статье: UDP в мобильной сети.

Как учесть packet loss и RTT при выборе bandwidth

Итак, вы получили цифры. Что с ними делать? В Hysteria2 в конфигурации есть параметр bandwidth, который определяет максимальную скорость отправки и получения. Он указывается в виде объектов up и down. Например: bandwidth: { up: "100 Mbps", down: "200 Mbps" }.

Но если вы просто скопируете эти числа из теста, вы рискуете. Допустим, iperf3 показал 500 Mbps, но при этом packet loss составил 2%. Для Hysteria2 это уже сигнал, что bandwidth нужно уменьшить. Дело в том, что протокол активно использует контроль перегрузок, и при наличии потерь он будет снижать скорость, чтобы восстановить пакеты. Если вы принудительно поставите слишком высокий лимит, протокол не сможет компенсировать потери — начнётся деградация.

Практическое правило: если packet loss меньше 0.5%, можно считать, что канал чистый, и bandwidth можно брать примерно 80-90% от максимальной измеренной скорости. Если потери от 0.5% до 2%, уменьшайте лимит на 20-30%. Если потери выше 2% — сначала решайте проблему с каналом (можно использовать обфускацию, но это не панацея, см. обфускация Hysteria2), и лишь потом подбирайте bandwidth.

RTT (задержка) влияет на время отклика протокола. При большом RTT (например, свыше 100 мс) Hysteria2 будет медленнее реагировать на изменения пропускной способности. В этом случае стоит снизить bandwidth ещё на 10-15%, чтобы избежать резких скачков. Особенно это заметно при спутниковом доступе или очень длинных маршрутах.

Настройка bandwidth в конфигурации Hysteria2

Главный конфигурационный файл сервера — config.yaml. В нём параметр bandwidth выглядит так:

bandwidth:
  up: "150 Mbps"
  down: "300 Mbps"
  disable_udp: false

Для клиента (например, в hysteria.json или в параметрах запуска) тоже есть bandwidth. Обратите внимание, что настройки должны соответствовать: если на сервере указано 300 Mbps down, клиент не должен запрашивать больше. В целом, клиент может не указывать bandwidth, но тогда Hysteria2 будет использовать ограничения сервера. Однако для точной настройки рекомендуем задать их и на клиенте, особенно если сеть клиента медленнее.

После внесения изменений перезапустите сервис. Проверьте журналы: Hysteria2 пишет статистику по скорости и ошибкам. Подробнее о чтении логов — в статье Hysteria Wiki (раздел «Логи»).

Повторный замер после смены сети

Если вы меняете провайдера, переезжаете или работаете из нового офиса, обязательно повторите весь цикл. Сеть, которая была идеальна на одном подключении, может оказаться плохой на другом. Например, мобильный интернет часто даёт высокий jitter и потери, особенно при движении. В этом случае вам придётся агрессивно уменьшить bandwidth.

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

  1. Проведите замер iperf3 с новым маршрутом (сервер-клиент).
  2. Зафиксируйте RTT и packet loss.
  3. Пересчитайте bandwidth по правилу из предыдущего раздела.
  4. Измените значения в конфигурации, перезапустите Hysteria2.
  5. Проверьте скорость через сам туннель (например, скачивание файла с сервера).

Не забывайте, что bandwidth — это не раз и навсегда. Сети постоянно меняются, и периодическая перепроверка (хотя бы раз в месяц) поможет поддерживать стабильную работу hysteria 2 впн.

Если вы используете VPN-клиент с графическим интерфейсом, например, на Android, то там может быть поле для ввода скорости. Убедитесь, что вы ставите значения в мегабитах в секунду (Mbps), а не в байтах. Во многих клиентах есть подсказка.

В итоге правильный замер скорости и подбор bandwidth — это не просто формальность, а залог того, что ваш Hysteria2-туннель будет работать действительно быстро и стабильно. Потратьте 15 минут на тесты, и вы избежите проблем, которые потом ищут часами.

Мини-чеклист

  • Сделать замер TCP между сервером и клиентом с помощью iperf3
  • Сделать замер UDP с фиксированной скоростью, чтобы оценить packet loss
  • Записать RTT (пинг) и jitter
  • Если packet loss > 2% — сначала устранить причины или снизить bandwidth на ~30%
  • Если RTT > 100 мс — снизить bandwidth дополнительно на 10-15%
  • Установить bandwidth в конфиге сервера и клиента
  • Перезапустить Hysteria2 и проверить фактическую скорость через туннель
  • Повторить замер при смене сети или провайдера

Частые ошибки

  • Слишком высокий bandwidth, скопированный из Speedtest без учёта реальных потерь
  • Игнорирование packet loss: если тест показал потери даже на 30-50% от максимума, это критично
  • Замер только на короткий интервал в 1-2 секунды — результат может быть нерепрезентативен
  • Не обновлять bandwidth после смены сети
  • Путаница между Mbps и MB/s: в конфигурации указываются мегабиты в секунду
  • Ставить одинаковый bandwidth и для up, и для down, если канал асимметричный

FAQ

Что делать, если iperf3 показывает высокую скорость, но Hysteria2 работает медленно?

Проверьте, не превышает ли ваш bandwidth максимальную скорость, которую реально может выдать канал без потерь. Уменьшите значения на 20-30% и повторите тест. Также обратите внимание на RTT: если он высокий, протоколу нужно больше времени для адаптации.

Какой bandwidth указать, если канал 100 Мбит/с и packet loss 1%?

При потерях до 2% рекомендуем использовать 70-80% от максимальной скорости. То есть примерно 70-80 Мбит/с. При этом учтите, что замер должен быть между сервером и клиентом, а не к локальному провайдеру.

Нужно ли указывать bandwidth на клиенте?

Необязательно, но желательно. Если на клиенте не указан bandwidth, Hysteria2 будет использовать значение с сервера. Однако для точной настройки под конкретную сеть клиента лучше задать свои ограничения.

Как часто нужно проверять bandwidth?

Рекомендуется при смене сети, провайдера, роутера или места использования. Если канал стабилен, достаточно делать контрольный замер раз в месяц.

Хотите перейти сразу к рабочему доступу?

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

Получить доступ

Дальше по теме

Связанные статьи