Смена портов
Пользователи в Китае иногда сообщают, что их интернет-провайдеры блокируют или ограничивают постоянные UDP-соединения. Однако эти ограничения часто применяются только к конкретному используемому порту. Смена портов может использоваться как обходной путь для этой ситуации.
Клиент
Клиент Hysteria поддерживает специальный формат адреса с несколькими портами:
example.com:1234,5678,9012 # (1)!
example.com:20000-50000 # (2)!
example.com:1234,5000-6000,7044,8000-9000 # (3)!
- Несколько отдельных портов.
- Диапазон портов.
- Комбинация обоих вариантов.
Количество портов не ограничено.
Клиент случайным образом выберет один из указанных портов для начального соединения и будет периодически переключаться на другой порт. Опция для управления интервалом находится в секции transport:
- Минимальный интервал смены портов. Не менее 5s.
- Максимальный интервал смены портов.
Каждая смена порта будет использовать случайный интервал между minHopInterval и maxHopInterval. Это делает паттерн смены менее предсказуемым и труднее для обнаружения.
ПРИМЕЧАНИЕ: Можно использовать
hopIntervalдля фиксированного интервала илиminHopInterval/maxHopIntervalдля случайного интервала. Одновременно использовать оба варианта нельзя.
При условии, что сервер доступен на всех указанных портах, процесс смены прозрачен для верхних уровней и не должен вызывать потерю данных или разрыв соединения.
Сервер
Встроенный диапазон портов (Linux)
На Linux сервер Hysteria имеет встроенную поддержку прослушивания диапазона портов. Просто укажите диапазон портов в поле listen:
Сервер будет слушать на первом порту диапазона и автоматически настроит правила файрвола (nftables или iptables) для перенаправления трафика с остальных портов на первый. Правила автоматически удаляются при остановке сервера.
ПРИМЕЧАНИЕ: Требуется наличие
nft(nftables) илиiptables/ip6tables. Серверу могут потребоваться соответствующие привилегии (например, root илиCAP_NET_ADMIN) для изменения правил файрвола.
Ручная настройка
Обычно не требуется, но вы можете вручную использовать DNAT в iptables или nftables для перенаправления портов:
В этом примере сервер слушает на порту 443, но клиент может подключаться к любому порту в диапазоне 20000-50000.