Выбор порта для Hysteria 2: настройка, оптимизация и обход блокировок

Подробное руководство по выбору и настройке порта для Hysteria 2. Рассматриваются стандартные и нестандартные порты, проброс портов, обфускация, интеграция с 3X-UI и Keenetic, а также ответы на частые вопросы.

Зачем нужен порт в Hysteria 2 и как он работает

Порт — это числовой идентификатор, который используется для разграничения сетевых служб на одном IP-адресе. В контексте Hysteria 2 порт определяет, через какой канал сервер и клиент обмениваются данными. Протокол Hysteria 2 работает поверх QUIC, который, в свою очередь, базируется на UDP. Поэтому порт для Hysteria 2 всегда должен быть UDP-портом.

Выбор порта влияет на несколько аспектов:

  • Обнаруживаемость трафика: стандартные порты (например, 443) могут привлекать больше внимания со стороны систем глубокого анализа пакетов (DPI).
  • Совместимость с сетями провайдера: некоторые провайдеры ограничивают или блокируют UDP-трафик на определённых портах.
  • Возможность маскировки: Hysteria 2 умеет имитировать HTTP/3, который по умолчанию использует порт 443. Использование этого порта делает трафик более похожим на обычный HTTPS.

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

Стандартный порт 443: преимущества и риски

Порт 443 — это стандартный порт для HTTPS-трафика. Hysteria 2 по умолчанию предлагает использовать именно его, так как это позволяет трафику выглядеть как обычный защищённый веб-трафик. Основные преимущества:

  • Маскировка: QUIC, используемый Hysteria 2, изначально разработан для HTTP/3, который работает на порту 443. Таким образом, трафик Hysteria 2 на порту 443 практически неотличим от обычного HTTPS-трафика.
  • Простота настройки: многие руководства и скрипты автоматической установки ориентированы на порт 443, что упрощает процесс.

Однако есть и риски:

  • Конфликт с веб-сервером: если на сервере уже работает веб-сервер (Nginx, Apache) на порту 443, Hysteria 2 не сможет его использовать. В этом случае нужно либо освободить порт, либо выбрать другой.
  • Привлечение внимания: массовое использование порта 443 для VPN-протоколов может привести к тому, что провайдеры начнут более тщательно анализировать трафик на этом порту.
  • Блокировки QUIC: в некоторых странах (например, в России) QUIC может быть частично или полностью заблокирован. В таких случаях использование порта 443 не поможет, если блокировка идёт на уровне протокола, а не порта.

Если вы решите использовать порт 443, убедитесь, что он свободен, и настройте файрвол соответствующим образом.

Нестандартные порты: когда и зачем их выбирать

Использование нестандартного порта (например, 8443, 9090, 10000 или любого другого незанятого порта) может быть оправдано в нескольких ситуациях:

  • Порт 443 занят: если на сервере уже работает веб-сервер или другой сервис, использующий порт 443, вы можете выбрать любой другой свободный порт.
  • Обход блокировок по порту: некоторые провайдеры блокируют стандартные порты для VPN (например, 443, 1194, 51820). Использование нестандартного порта может помочь обойти такие блокировки.
  • Снижение заметности: хотя Hysteria 2 маскируется под HTTP/3, использование нестандартного порта может сделать трафик менее заметным для систем, которые анализируют только стандартные порты.

Однако есть и недостатки:

  • Маскировка менее эффективна: если трафик идёт на нестандартный порт, он может выглядеть подозрительно для DPI-систем, которые ожидают HTTP/3 только на порту 443.
  • Необходимость ручной настройки: при использовании нестандартного порта нужно явно указать его в конфигурации клиента и сервера, а также открыть его в файрволе.

Рекомендуется выбирать порт, который не используется другими службами и не входит в списки известных портов для блокировки. Например, порты из диапазона 49152–65535 (динамические/частные порты) реже блокируются.

Проброс портов (Port Hopping): техника для обхода блокировок

Port Hopping — это техника, при которой клиент подключается к серверу, используя не один фиксированный порт, а диапазон портов. Клиент случайным образом выбирает порт из этого диапазона для каждого нового соединения или периодически переключается между портами. Это затрудняет блокировку, так как провайдеру пришлось бы блокировать весь диапазон портов.

В Hysteria 2 проброс портов настраивается на стороне клиента. В конфигурации клиента можно указать несколько портов через запятую или диапазон через дефис. Например:

  • example.com:1234,5678,9012
  • example.com:20000-50000
  • example.com:1234,5000-6000,7044,8000-9000

Количество портов не ограничено. Клиент будет случайным образом выбирать один из указанных портов для первоначального соединения и периодически переключаться на другой порт. Интервал переключения задаётся параметром hopInterval в транспортной секции конфигурации клиента (например, 30s).

На стороне сервера Hysteria 2 не имеет встроенной поддержки прослушивания нескольких портов. Разработчики рекомендуют использовать iptables для перенаправления трафика с диапазона портов на основной порт сервера. Пример для IPv4:

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

В этом примере сервер слушает порт 443, но клиент может подключиться к любому порту в диапазоне 20000-50000.

Port Hopping особенно полезен в сетях, где провайдеры блокируют или ограничивают постоянные UDP-соединения на определённых портах.

Настройка порта в 3X-UI: пошаговое руководство

3X-UI — это популярная веб-панель для управления прокси-серверами, которая поддерживает множество протоколов, включая Hysteria 2. Настройка порта в 3X-UI сводится к нескольким шагам:

  1. Установите панель 3X-UI на сервер с помощью официального скрипта. После установки вы получите адрес панели и стандартные учётные данные.
  2. Зайдите в панель и сразу смените стандартный логин, пароль и порт входа. Это необходимо для безопасности, так как панель с дефолтными настройками может быть найдена сканерами.
  3. Выпустите TLS-сертификат для вашего домена. 3X-UI имеет встроенный инструмент для получения сертификата через ACME. Сертификат необходим для маскировки трафика под HTTPS.
  4. Создайте новое входящее подключение (inbound). Выберите тип протокола "Hysteria 2". В поле "Порт" укажите свободный UDP-порт. Рекомендуется использовать порт 443, если он не занят, или любой другой незанятый порт.
  5. Задайте пароль для аутентификации. Можно использовать один пароль для всех пользователей или настроить многопользовательский режим.
  6. Подключите сертификат к созданному подключению. Если сертификат был выпущен через панель, он будет доступен в выпадающем списке.
  7. Откройте порт в файрволе. Убедитесь, что выбранный UDP-порт открыт в файрволе сервера. Это частая причина, почему панель показывает зелёный статус, а клиент не подключается.
  8. Скопируйте ссылку подключения или QR-код и импортируйте его в клиентское приложение (например, Nekoray, v2rayN, Sing-box).

После этих шагов трафик пойдёт через ваш сервер по Hysteria 2. Если клиент не подключается, проверьте, открыт ли UDP-порт, и правильный ли домен указан в сертификате.

Настройка порта на роутерах Keenetic с Hysteria 2

Роутеры Keenetic поддерживают установку Hysteria 2 через Entware и проект H-wave. Это позволяет использовать VPN-туннель непосредственно на роутере, обеспечивая защиту для всех устройств в домашней сети. Настройка порта в этом случае имеет свои особенности.

Требования:

  • Роутер Keenetic с поддержкой USB.
  • Внешний USB-накопитель.
  • Установленный Entware.
  • Доступ к роутеру по SSH.

Установка Hysteria 2:

  1. Установите Entware на USB-накопитель по официальной инструкции Keenetic.
  2. Включите необходимые модули ядра Netfilter: xt_TPROXY, xt_socket, xt_multiport. Это делается в веб-интерфейсе: Управление → Параметры системы → Общие настройки системы → Изменить набор компонентов → Пакеты OPKG → включите "Модули ядра подсистемы Netfilter".
  3. Установите Hysteria 2 из релизов GitHub. Для архитектуры mipsle или arm64 используйте соответствующий .ipk-пакет.

Конфигурация порта:

  • В файле конфигурации Hysteria (/opt/etc/hysteria/config.json) укажите порт, который будет слушать сервер. По умолчанию это 443, но можно выбрать любой свободный порт.
  • Если вы используете проброс портов (Port Hopping), настройте iptables для перенаправления трафика с диапазона портов на основной порт сервера.
  • Убедитесь, что выбранный порт открыт в файрволе роутера.

Важные замечания:

  • Включение обфускации (Salamander) может привести к неработоспособности Hysteria 2 на сотовых операторах, так как они распознают непонятный UDP-трафик и дропают его. Рекомендуется отключить обфускацию и настроить работу Hysteria 2 на QUIC.
  • Для получения TLS-сертификата можно использовать бесплатный домен (например, на freedns.afraid.org) и встроенный ACME-клиент Hysteria, или использовать свой домен и платный сертификат.

После настройки Hysteria 2 на роутере Keenetic, весь трафик от домашних устройств будет проходить через защищённый туннель.

Обфускация трафика и её влияние на порт

Обфускация — это метод преобразования трафика таким образом, чтобы он был неотличим от случайного шума или другого типа трафика. В Hysteria 2 реализована обфускация под названием "Salamander", которая преобразует пакеты в случайные байты без шаблона. Это может помочь обойти блокировки, основанные на анализе сигнатур протокола.

Как обфускация влияет на порт:

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

Когда использовать обфускацию:

  • Если ваша сеть специально блокирует трафик QUIC или HTTP/3, но не блокирует UDP в целом.
  • Если вы используете нестандартный порт и хотите дополнительно запутать анализатор трафика.

Недостатки обфускации:

  • Как упоминалось выше, на сотовых операторах обфускация может привести к блокировке трафика, так как операторы распознают непонятный UDP-трафик и дропают его.
  • Обфускация требует одинакового пароля на стороне клиента и сервера.

Рекомендуется сначала попробовать работать без обфускации, используя стандартный порт 443 и правильный TLS-сертификат. Если соединение нестабильно или блокируется, можно включить обфускацию, но будьте готовы к возможным проблемам с сотовыми операторами.

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

Выбор протокола VPN часто зависит от того, насколько хорошо он маскирует трафик и на каких портах работает. Ниже приведено сравнение Hysteria 2 с другими популярными протоколами, которые можно использовать в 3X-UI.

| Параметр | Hysteria 2 | VLESS Reality | Trojan | | --- | --- | --- | --- | | Транспорт | UDP (QUIC) | TCP | TCP | | Скорость на потерях | Высокая | Средняя | Средняя | | Маскировка | Под HTTPS (HTTP/3) | Под чужой сайт | Под HTTPS | | Нужен ли домен | Да | Не всегда | Да | | Риск блокировки | Выше (UDP) | Ниже | Средний | | Стандартный порт | 443 (UDP) | 443 (TCP) | 443 (TCP) |

Ключевые выводы:

  • Hysteria 2 выигрывает по скорости на нестабильных каналах благодаря QUIC, но проигрывает там, где UDP целенаправленно блокируется.
  • VLESS Reality не всегда требует собственного домена и может использовать технологию Reality для маскировки под любой сайт, что делает его более незаметным.
  • Trojan — самый простой в настройке протокол, работающий поверх обычного HTTPS, но он не даёт такого же прироста скорости на плохом канале.

Удобство 3X-UI в том, что вы можете держать несколько протоколов одновременно и переключаться между ними в зависимости от ситуации. Например, использовать Hysteria 2 как основной протокол, а VLESS или Trojan как запасной на случай блокировки UDP.

Частые проблемы с портами и их решение

При настройке Hysteria 2 пользователи часто сталкиваются с проблемами, связанными с портами. Вот наиболее распространённые из них и способы их решения.

1. Клиент не подключается, хотя панель показывает зелёный статус.

  • Причина: Чаще всего закрыт UDP-порт в файрволе. Панель может показывать статус, основанный на проверке TCP-соединения, но Hysteria 2 работает по UDP.
  • Решение: Проверьте, что выбранный порт открыт для UDP-трафика. Используйте команды iptables -L -n или ufw status для проверки. Если порт закрыт, откройте его.

2. Соединение устанавливается, но трафик не проходит.

  • Причина: Неправильная конфигурация маршрутизации или конфликт с другими туннелями.
  • Решение: Проверьте конфигурацию клиента и сервера. Убедитесь, что порты совпадают. Если используется TUN-режим, проверьте настройки маршрутизации. На роутерах Keenetic может потребоваться добавить исключение для локальной сети.

3. Hysteria 2 работает медленно или нестабильно.

  • Причина: Провайдер ограничивает UDP-трафик или блокирует QUIC.
  • Решение: Попробуйте сменить порт на нестандартный. Включите обфускацию Salamander. Если это не помогает, рассмотрите использование другого протокола (например, VLESS или Trojan) в качестве запасного.

4. Конфликт портов с другими службами.

  • Причина: Выбранный порт уже используется другим сервисом (веб-сервером, другим VPN).
  • Решение: Используйте команду netstat -tulpn | grep :<порт> для проверки занятости порта. Выберите другой свободный порт.

5. Проброс портов (Port Hopping) не работает.

  • Причина: Неправильная настройка iptables на сервере или неверный синтаксис в конфигурации клиента.
  • Решение: Проверьте правила iptables. Убедитесь, что диапазон портов в правиле соответствует диапазону, указанному в конфигурации клиента. Проверьте, что интерфейс (например, eth0) указан правильно.

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

Какой порт лучше всего выбрать для Hysteria 2?

Лучший порт зависит от ваших целей. Если вы хотите максимальную маскировку, используйте порт 443 (стандартный порт HTTPS). Если порт 443 занят или вы хотите обойти блокировки по порту, выберите любой свободный нестандартный порт, например, из диапазона 49152–65535. Для обхода блокировок также можно использовать проброс портов (Port Hopping).

Можно ли использовать Hysteria 2 на порту 443, если там уже работает веб-сервер?

Нет, напрямую использовать порт 443 нельзя, если он уже занят другим сервисом. Вам нужно либо освободить порт, остановив веб-сервер, либо настроить веб-сервер на другой порт, либо выбрать другой порт для Hysteria 2. Альтернативно, можно настроить обратный прокси, но это сложнее.

Что такое проброс портов (Port Hopping) и как он помогает?

Port Hopping — это техника, при которой клиент подключается к серверу, используя диапазон портов, а не один фиксированный. Клиент случайным образом выбирает порт из диапазона для каждого соединения, что затрудняет блокировку. Это полезно, если провайдер блокирует определённые порты для UDP-трафика.

Почему Hysteria 2 может не работать на сотовых операторах при включённой обфускации?

Сотовые операторы часто распознают непонятный UDP-трафик (особенно после обфускации) и дропают его. Обфускация Salamander преобразует пакеты в случайные байты, что может быть воспринято как подозрительный трафик. Рекомендуется отключить обфускацию и использовать стандартный QUIC с правильным TLS-сертификатом.

Как проверить, открыт ли UDP-порт для Hysteria 2?

На сервере можно использовать команду netstat -tulpn | grep :<порт> для проверки, слушает ли Hysteria 2 указанный порт. Для проверки доступности порта извне можно использовать онлайн-сервисы или утилиты вроде nmap -sU -p <порт> <IP-адрес>. Убедитесь, что файрвол (iptables, ufw) разрешает UDP-трафик на этом порту.

Можно ли использовать Hysteria 2 без домена и TLS-сертификата?

Технически можно, но это снижает маскировку и увеличивает риск блокировки. Hysteria 2 маскируется под HTTP/3, который требует TLS. Без сертификата трафик будет выглядеть подозрительно. Для получения сертификата можно использовать бесплатный домен (например, на freedns.afraid.org) и встроенный ACME-клиент Hysteria.

Какой протокол лучше выбрать: Hysteria 2 или VLESS Reality?

Hysteria 2 лучше подходит для нестабильных каналов с потерями пакетов, так как использует QUIC. VLESS Reality более незаметен и не всегда требует собственного домена, но работает поверх TCP. Если у вас стабильный канал и важна незаметность, выбирайте VLESS Reality. Если скорость на плохом канале критична, выбирайте Hysteria 2. В 3X-UI можно держать оба протокола и переключаться между ними.