Конвертер подписок Happ
- title
- Конвертер подписок Happ
- type
- summary
- summary
- PHP-скрипты для эмуляции клиента Happ VPN: извлечение списков VLESS и обход ограничений по HWID
- tags
- vpn, vless, proxy, php
- sources
- happ-subscription-converter
- created
- 2026-04-09
- updated
- 2026-04-09
- lang
- ru
- translation_of
- happ-subscription-converter
- source_updated
- 2026-04-09
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Gist от bubasik - это набор из двух PHP-скриптов и документации на русском языке для извлечения исходного списка VLESS-серверов из VPN-подписки Happ и его раздачи в стандартном формате подписок VLESS в base64, который нативно поддерживают V2RayN, V2RayA, Clash и SingBox.
Проблема, которую он решает: подписки Happ не отдают переносимый список VLESS произвольным HTTP-клиентам. Если запросить URL подписки через curl или вставить его в V2RayN, результат будет отличаться от того, что получает приложение Happ. Сервер возвращает разное содержимое в зависимости от заголовков - User-Agent, HWID и нескольких проприетарных полей. Без этих заголовков список приходит либо пустым, либо урезанным, либо закодированным так, что стандартные клиенты его не понимают. Само приложение Happ к тому же закрытое и работает только на Android/iOS, поэтому у пользователей нет официального способа использовать свою подписку на компьютере, роутере или более чем на N устройствах.
Подход в gist'е сводится к прямой эмуляции. Небольшой PHP-скрипт (happ_converter.php) притворяется настоящим клиентом Happ: он пересылает запросы на upstream-URL подписки, подменяя User-Agent, специфичные заголовки Happ и HWID. Upstream отвечает полным списком. Затем скрипт декодирует base64, при необходимости кэширует ответ на три часа для снижения частоты запросов и выдаёт его в виде обычной VLESS-подписки. Любой стандартный клиент может использовать URL этого PHP-скрипта как источник подписки.
Самое интересное - способ выяснить, какие именно заголовки нужно подменять. Второй скрипт, debug_headers.php, представляет собой универсальный HTTP-дампер: он записывает метод, URI, заголовки и тело каждого входящего запроса в requests.log. Процесс настройки прост: в настоящем мобильном приложении Happ в качестве URL подписки указывается собственный эндпоинт debug_headers.php, приложение делает один запрос, после чего из лога копируются точные заголовки и вставляются в happ_converter.php. Никакого реверс-инжиниринга APK, никакого mitmproxy или перехвата TLS на телефоне. Приложение само отдаёт свой отпечаток, как только ему сообщают, что подписка находится по вашему URL.
Вторая часть gist'а посвящена использованию одной подписки на большем числе устройств, чем позволяет номинальный лимит провайдера. Учёт устройств в Happ привязан к HWID: каждый уникальный HWID считается отдельным устройством. Скрипт-конвертер принимает hwid и ip как query-параметры и пробрасывает их в upstream. Если использовать свой hwid для каждого клиента (один для ноутбука, один для роутера, один для друга), каждое устройство будет выглядеть отдельным. Трёхчасовой кэш здесь критически важен: если все клиенты будут обращаться к скрипту при каждом обновлении подписки, upstream зафиксирует нетипичный для обычного пользователя объём трафика и может заблокировать аккаунт. Кэширование сглаживает эту нагрузку.
В описании также даются рекомендации по настройке .htaccess, чтобы эндпоинт конвертера не был доступен всем подряд (он содержит upstream-URL и подменяемые заголовки, что фактически является секретом подписки), а также инструкции по интеграции с V2RayN, V2RayA, Clash и SingBox. Все четыре клиента одинаково обрабатывают формат подписок VLESS в base64, поэтому если конвертер заработал с одним, он будет работать и со всеми остальными.
Этот подход применим не только к Happ. Любого закрытого клиента с привязкой выдачи к приложению можно эмулировать аналогично: перехватить заголовки настоящего приложения, воспроизвести их с сервера и перенаправить ответ. Happ служит наглядным примером, поскольку популярен на российском рынке VPN, а его эндпоинт подписки фильтрует клиентов по заголовкам. Более широкий контекст о VLESS и принципах работы таких подписок описан в xray-tutorial.
Смежные инструменты в вики: 3x-ui выступает серверной стороной - это веб-панель для управления VLESS-серверами, на которые указывает подписка Happ. mihomo - один из клиентов, способных принимать выдачу конвертера. russia-v2ray-rules-dat предоставляет правила маршрутизации для клиентов после получения рабочей подписки.