Зачем нужна связка Hysteria 2 и Podkop
В условиях сетевых ограничений пользователи часто ищут способы получить доступ к заблокированным ресурсам, сохраняя при этом скорость и стабильность обычного интернета. Hysteria 2 — это современный прокси-протокол, работающий поверх модифицированного QUIC и способный маскироваться под HTTP/3. Он обеспечивает высокую скорость даже на нестабильных каналах, но для его использования требуется сервер и клиент. Podkop — это утилита для роутеров с OpenWrt, которая позволяет направлять трафик только для определённых доменов через прокси, оставляя остальной интернет нетронутым. Связка этих инструментов даёт гибкое решение: вы можете ходить на заблокированные сайты через Hysteria 2, а все остальные ресурсы открывать напрямую, без потери скорости и с минимальной задержкой.
Podkop особенно полезен, если вы уже используете Zapret для обхода DPI, но нуждаетесь в проксировании отдельных доменов, например, для доступа к зарубежным сервисам, которые блокируют трафик из России. Вместо того чтобы гнать весь трафик через VPN, вы настраиваете список доменов, и Podkop автоматически направляет их через прокси. Это снижает нагрузку на канал и уменьшает задержки для обычных сайтов. Кроме того, Podkop поддерживает работу с sing-box, что обеспечивает совместимость с Hysteria 2 и другими протоколами.
Что такое Hysteria 2 и почему он быстрый
Hysteria 2 — это развитие протокола Hysteria, который изначально создавался для обхода блокировок и обеспечения высокой скорости на нестабильных соединениях. В основе лежит протокол QUIC, разработанный компанией Google для ускорения веб-трафика. Hysteria 2 модифицирует QUIC, добавляя собственные механизмы управления перегрузкой и шифрования. Это позволяет протоколу эффективно работать даже при высокой потере пакетов и нестабильной задержке, что особенно актуально для мобильных сетей и перегруженных каналов.
Одной из ключевых особенностей Hysteria 2 является маскировка под HTTP/3. Это означает, что трафик выглядит как обычные HTTPS-запросы, что затрудняет его обнаружение и блокировку. Кроме того, протокол поддерживает обфускацию Salamander, которая преобразует пакеты в случайные байты, делая их неотличимыми от случайного шума. Это помогает обходить блокировки, основанные на анализе сигнатур протоколов. Hysteria 2 также поддерживает аутентификацию, статистику трафика, контроль доступа и проброс портов, что делает его полноценным инструментом для создания приватных прокси-серверов.
Подготовка сервера для Hysteria 2
Для установки Hysteria 2 вам понадобится VPS-сервер с операционной системой Linux (например, Debian или Ubuntu) и доступом по SSH. Также желательно иметь доменное имя, которое будет использоваться для получения SSL-сертификата. Домен можно купить у регистратора или получить бесплатно, например, через сервис dynu.com. Наличие домена не является строго обязательным, если вы готовы использовать самоподписанные сертификаты, но для маскировки под HTTP/3 и доверия клиентов лучше использовать валидный сертификат.
Перед установкой рекомендуется обновить систему и установить необходимые пакеты. Для этого выполните команды sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt install curl -y. После этого можно перезагрузить сервер, чтобы применить обновления ядра. Затем установите Hysteria 2 с помощью официального скрипта: bash <(curl -fsSL https://get.hy2.sh/). Если вы используете не root-пользователя, скрипт может не сработать из-за ограничений доступа к /dev/fd; в этом случае скачайте скрипт в домашнюю папку и запустите его с sudo.
Конфигурация сервера Hysteria 2
После установки Hysteria 2 необходимо настроить файл конфигурации, обычно расположенный в /etc/hysteria/config.yaml. В нём задаются параметры прослушивания, аутентификации, маскировки и обфускации. Базовая конфигурация включает секцию acme для автоматического получения SSL-сертификата, секцию auth для задания пароля и секцию masquerade для маскировки под веб-сервер.
Пример минимальной конфигурации:
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 настраивает автоматическое получение сертификата через Let's Encrypt или ZeroSSL. Для российских доменов рекомендуется использовать Let's Encrypt. Секция auth задаёт пароль для аутентификации клиентов. Секция masquerade определяет, как сервер будет отвечать на HTTP-запросы, чтобы выглядеть как обычный сайт. Вместо проксирования можно использовать режим file для отдачи статических файлов или string для возврата произвольной строки.
Маскировка и обфускация трафика
Маскировка — это ключевая функция Hysteria 2, которая позволяет скрыть факт использования прокси. По умолчанию сервер имитирует HTTP/3, отвечая на запросы как обычный веб-сервер. Для этого необходимо, чтобы на сервере действительно был развёрнут какой-то контент, например, статический сайт или обратный прокси. В режиме proxy сервер будет перенаправлять запросы на указанный URL, что делает его неотличимым от реального сайта. В режиме file сервер будет отдавать файлы из указанной директории, а в режиме string — возвращать заданную строку.
Обфускация Salamander — это дополнительный уровень защиты, который преобразует пакеты в случайные байты, не имеющие характерных признаков QUIC. Это полезно, если ваш провайдер блокирует QUIC или HTTP/3. Для включения обфускации добавьте в конфигурацию сервера секцию obfs:
obfs:
type: salamander
salamander:
password: your_obfs_passwordВажно, чтобы пароль обфускации совпадал на сервере и клиенте. Включение обфускации делает сервер несовместимым со стандартными QUIC-соединениями, поэтому он перестанет работать как обычный HTTP/3-сервер. Это может привлечь внимание, если цензор активно анализирует трафик, но в большинстве случаев это эффективно.
Проброс портов для обхода блокировок UDP
Некоторые провайдеры, особенно в Китае, блокируют или ограничивают постоянные UDP-соединения. Hysteria 2 использует QUIC, который работает поверх UDP, поэтому такие ограничения могут привести к неработоспособности прокси. Для обхода этой проблемы предусмотрен проброс портов: клиент может подключаться к серверу через разные порты, периодически меняя их. Это позволяет обойти блокировку конкретного порта.
На стороне клиента в конфигурации можно указать несколько портов через запятую или диапазон, например: example.com:1234,5678,9012 или example.com:20000-50000. Клиент будет случайным образом выбирать порт для соединения и периодически переключаться на другой. Интервал переключения задаётся параметром hopInterval в секции transport.
На стороне сервера необходимо настроить перенаправление портов с помощью iptables. Например, чтобы перенаправить все UDP-пакеты с портов 20000-50000 на порт 443, выполните:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443Для IPv6 используйте ip6tables. Это позволит клиенту подключаться к любому порту из диапазона, а сервер будет обрабатывать их как соединения на порт 443.
Установка Podkop на OpenWrt
Podkop — это утилита для маршрутизации трафика по доменам на роутерах с OpenWrt. Она работает на основе sing-box и позволяет направлять трафик для выбранных доменов через прокси, оставляя остальной трафик напрямую. Установка Podkop проста: достаточно выполнить команду в консоли роутера:
sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/main/install.sh)Если GitHub заблокирован, можно использовать зеркало: wget -O - https://mirror.podkop.net/urjw/scripts/bootstrap.sh | sh. Скрипт автоматически определит версию и архитектуру OpenWrt, скачает необходимые пакеты и установит их. Для работы Podkop требуется OpenWrt 24.10 или новее, а также минимум 20 МБ свободного места. Если sing-box ещё не установлен, потребуется около 40 МБ.
После установки в веб-интерфейсе LuCI появится раздел Podkop. В нём можно настроить список доменов, которые должны идти через прокси, а также указать адрес прокси-сервера. Для Hysteria 2 необходимо указать ссылку на прокси в формате vless или hy2. Podkop поддерживает оба протокола.
Настройка Podkop для работы с Hysteria 2
После установки Podkop откройте его в LuCI. В разделе «Proxy Configuration» вставьте ссылку на ваш Hysteria 2 прокси. Эту ссылку можно получить, например, из подписки, сгенерированной клиентом Necobox, или составить вручную. Формат ссылки для Hysteria 2 выглядит так: hy2://password@server:port/?sni=domain#name. Убедитесь, что пароль и порт совпадают с конфигурацией сервера.
Далее в разделе «Domains» добавьте домены, которые должны идти через прокси. Можно использовать готовые списки, например, «Russia Inside», но лучше создать собственный список, чтобы контролировать, какие сайты проксируются. В разделе «Additional Settings» выберите сетевой интерфейс, через который роутер получает интернет (обычно это WAN), и укажите предпочтительный DNS. Рекомендуется использовать DoH (DNS over HTTPS), чтобы избежать перехвата DNS-запросов.
После сохранения настроек перезагрузите роутер и проверьте статус сервиса на вкладке Diagnostics. Убедитесь, что Podkop работает и трафик для выбранных доменов идёт через прокси. Для проверки можно открыть сайт из списка и посмотреть его IP-адрес через онлайн-сервисы.
Совместная работа Podkop и Zapret
Podkop часто используется вместе с Zapret — утилитой для обхода DPI. Zapret модифицирует пакеты, чтобы обойти блокировки на уровне провайдера, но не проксирует трафик. Podkop, в свою очередь, направляет трафик через прокси для доменов, которые заблокированы зарубежными сервисами. Эти инструменты дополняют друг друга: Zapret решает проблему блокировок на уровне DPI, а Podkop — проблему географических ограничений.
При совместном использовании важно правильно настроить маршрутизацию. Podkop должен обрабатывать трафик после Zapret, чтобы не конфликтовать с ним. В большинстве случаев достаточно установить Podkop и указать список доменов, которые должны идти через прокси. Zapret продолжит работать для остального трафика. Однако следует учитывать, что Podkop перезаписывает конфигурацию sing-box, поэтому убедитесь, что Zapret не использует те же файлы.
Если вы используете Zapret, убедитесь, что он не конфликтует с Podkop. Например, пакет https-dns-proxy, который часто устанавливается вместе с Zapret, может перезаписывать конфигурацию dnsmasq, что приведёт к проблемам с DNS. В этом случае удалите https-dns-proxy или настройте Podkop на использование собственного DNS.
Решение проблем и частые ошибки
При настройке Hysteria 2 и Podkop могут возникнуть типичные проблемы. Одна из них — ошибка при установке Hysteria 2 из-за отсутствия прав доступа к /dev/fd. Решение — скачать скрипт и запустить его с sudo. Другая проблема — неправильная конфигурация YAML: лишние или отсутствующие пробелы могут привести к ошибкам. Внимательно проверяйте отступы.
Если Podkop не работает после установки, проверьте, что он запущен и что выбран правильный сетевой интерфейс. Также убедитесь, что в браузерах отключены сторонние DNS, иначе запросы могут идти в обход Podkop. Если сайты из списка не открываются, проверьте, что прокси-сервер доступен и что ссылка на него указана корректно.
При обновлении OpenWrt необходимо остановить Podkop перед обновлением, иначе после перезагрузки может пропасть DNS. Если это произошло, выполните команды для восстановления DNS: service podkop stop, uci -q delete dhcp.@dnsmasq[0].server, uci add_list dhcp.@dnsmasq[0].server="8.8.8.8", uci commit dhcp, service dnsmasq restart, ntpd -q -p ptbtime1.ptb.de, service podkop start.
Вопросы и ответы
Чем Hysteria 2 отличается от других протоколов, например Shadowsocks или VLESS?
Hysteria 2 работает поверх QUIC и оптимизирован для нестабильных сетей, обеспечивая высокую скорость даже при потерях пакетов. Он маскируется под HTTP/3, что затрудняет обнаружение. Shadowsocks и VLESS обычно работают поверх TCP и могут быть заблокированы DPI, хотя существуют их модификации с обфускацией. Hysteria 2 также поддерживает встроенную обфускацию Salamander и проброс портов, что делает его более гибким.
Можно ли использовать Hysteria 2 без собственного домена?
Да, можно. Для работы Hysteria 2 не обязательно иметь домен, если вы используете самоподписанные сертификаты. Однако в этом случае клиенты должны быть настроены на доверие к сертификату, а маскировка под HTTP/3 будет менее правдоподобной. Рекомендуется использовать домен, чтобы получить валидный SSL-сертификат через Let's Encrypt, что повышает надёжность и скрытность.
Как добавить домен в список Podkop?
В веб-интерфейсе LuCI откройте раздел Podkop, перейдите на вкладку «Domains» и введите домен в поле ввода. Можно добавить несколько доменов, каждый с новой строки. Также можно использовать готовые списки, например, «Russia Inside», но лучше создать собственный список для точного контроля. После добавления доменов нажмите «Save and Apply» и перезагрузите роутер.
Что делать, если Podkop не работает после обновления OpenWrt?
Перед обновлением OpenWrt необходимо остановить Podkop командой service podkop stop. Если вы уже обновились и столкнулись с отсутствием DNS, выполните команды для восстановления: удалите настройки DNS из dnsmasq, добавьте публичный DNS (например, 8.8.8.8), перезапустите dnsmasq и ntpd, а затем запустите Podkop заново.
Как проверить, что трафик идёт через Hysteria 2?
После настройки Podkop откройте сайт, который вы добавили в список, и проверьте его IP-адрес через онлайн-сервис, например, 2ip.ru. Если IP-адрес принадлежит вашему VPS-серверу, значит трафик идёт через прокси. Также можно использовать команду curl --socks5-hostname 127.0.0.1:1080 ifconfig.me на роутере, чтобы увидеть IP прокси.
Можно ли использовать Podkop без Hysteria 2, например с VLESS?
Да, Podkop поддерживает различные протоколы, включая VLESS, VMess, Shadowsocks и Trojan. Для этого в настройках прокси укажите соответствующую ссылку. Podkop работает на основе sing-box, который поддерживает все эти протоколы. Выбор протокола зависит от ваших предпочтений и условий сети.
Какие требования к роутеру для установки Podkop?
Podkop требует OpenWrt 24.10 или новее, а также минимум 20 МБ свободного места на NAND. Если sing-box ещё не установлен, потребуется около 40 МБ. Пакет написан на ash, поэтому подходит для всех архитектур. Рекомендуется использовать роутер с достаточным объёмом памяти и процессором, чтобы обеспечить стабильную работу.