Hysteria2 и смена портов
Hysteria2 работает поверх QUIC, по UDP. Он продолжает работать на каналах с потерями и на дальних каналах, где TCP-протоколы глохнут, поэтому хорошо подходит вторым инбаундом рядом с TCP-инбаундом. Со сменой портов клиент переходит между многими портами, и блокировка одного порта лишает пользователя только этого порта.
Для чего он нужен
- Мобильные сети и сети с потерями, а также пользователи далеко от узла.
- Сети, которые блокируют отдельные UDP-порты, при включённой смене портов. Если UDP заблокирован целиком, это не поможет.
Чего он не умеет: работать там, где UDP не доходит до узла, и работать за CDN. CDN переносит TCP, поэтому панель не даёт включить доменный фронт ни на одном QUIC-инбаунде.
Создание
- Входящие → Из пресета → Hysteria2 или Добавить и тип
hysteria2. Общая форма описана в Инбаунды. - Port на вкладке Basic. Это UDP-порт.
- Вкладка TLS обязательна и по умолчанию стоит на Сертификат узла, так что инбаунд работает без дополнительных настроек. Подойдёт любой сертификат из Сертификаты. С самоподписанным сертификатом панель вставляет его отпечаток (pin) в каждую ссылку и каждый файл.
- Нажмите Сохранить и добавьте инбаунд в шаблон.
Если на хосте узла работает файрвол, откройте UDP на этом порту и на каждом диапазоне смены портов ниже.
Смена портов
На вкладке Protocol поле Port hopping ranges перечисляет дополнительные UDP-порты, на которых тоже отвечает инбаунд, по одному диапазону в строке в виде start:end, например 20000:20999. Всего до 512 портов.
- Узел сам слушает каждый из них. Правило перенаправления в файрволе добавлять не нужно.
- Ссылка и файл каждого пользователя несут этот набор, поэтому приложение знает, между какими портами можно переходить.
- Диапазон, который пересекается с портами другого инбаунда того же шаблона или туннеля, отклоняется при сохранении.
Как часто клиент меняет порт, решает клиент, поэтому это задаётся на той же вкладке как клиентская настройка:
| Поле | |
|---|---|
| Интервал смены порта | секунды между сменами. Пустое поле оставляет значение по умолчанию самого приложения (в большинстве приложений 30 секунд). Не меньше 5 |
| Интервал смены порта, максимум | только Hysteria2. Если заданы оба поля, приложение выбирает каждую смену случайно между двумя значениями, и смены перестают быть регулярными |
Приложения sing-box читают оба поля. Приложения Clash читают интервал, а на mihomo 1.19.24 и новее — и диапазон. В ссылке нет места ни для того, ни для другого, поэтому приложение, импортировавшее ссылку, использует своё значение по умолчанию. Панель отклоняет максимум без интервала, максимум меньше интервала и всё, что меньше пяти секунд, — те же значения, которые отклонил бы клиент на устройстве пользователя.
Скорость и ограничения для каждого пользователя
Узел всегда запускает Hysteria2 с управлением перегрузкой BBR и игнорирует пропускную способность, которую объявляет приложение. Именно поэтому Ограничение скорости пользователя действует на Hysteria2 так же, как везде, и поэтому у инбаунда нет полей пропускной способности. Настройки пропускной способности в приложении пользователя не повышают его скорость.
BBR profile (дополнительное поле) задаёт, насколько напористо узел управляет перегрузкой: пусто или standard, conservative или aggressive.
Другие поля
| Поле (дополнительное) | |
|---|---|
| Obfs password | перемешивает каждый пакет паролем, общим для обеих сторон, поэтому для сети, которая анализирует трафик, соединение больше не похоже на Hysteria2. Пароль есть в каждой ссылке; после его смены всем пользователям придётся обновить подписку |
| Masquerade URL | сайт, который узел показывает любому, кто подключается без верного пароля, например браузеру |
| Idle timeout, Keep-alive period, окна приёма, Max concurrent streams | тонкая настройка QUIC; оставьте пустыми, если у вас нет измеренной причины |
Hysteria (версия 1)
Форма предлагает и hysteria, первую версию. У неё есть смена портов (без максимума) и Obfs password, но она всегда использует фиксированные скорости: Up (Mbps) и Down (Mbps) не могут быть пустыми, и если вы оставите их пустыми, панель нарочно подставит высокие значения, так что реальным потолком остаётся Ограничение скорости каждого пользователя. Предлагайте её только для приложений без Hysteria2.
Клиентские приложения
| Формат | Hysteria2 | Hysteria |
|---|---|---|
| Ссылка | да (hysteria2://) | да (hysteria://) |
| Приложения Clash | да | да |
| Приложения sing-box | да | да |
| Приложения на базе Xray | да | нет |
Связанные страницы
- TUIC — другой QUIC-протокол
- Протоколы — сравнение всех протоколов
- Пользователи — ограничения скорости в учётной записи
