Что такое маршрутизация в Happ и зачем она нужна
Маршрутизация (routing) в приложении Happ — это механизм, который определяет, какой трафик должен идти через VPN-туннель, а какой — напрямую, минуя прокси. Без настройки маршрутизации весь трафик устройства уходит через сервер, что может приводить к проблемам с доступом к локальным ресурсам, банковским приложениям или государственным сервисам, которые требуют подключения с IP-адреса вашей страны.
Профиль маршрутизации — это набор правил, сохранённых в JSON-формате, который включает списки сайтов и IP-адресов для прямого подключения, проксирования или блокировки. В Happ можно создавать несколько профилей и переключаться между ними в зависимости от ситуации: домашний, рабочий, «всё через сервер» и так далее.
Основная задача маршрутизации — баланс между скоростью, приватностью и доступностью. Например, российские банки и госуслуги часто блокируют запросы с иностранных IP, поэтому их нужно выводить из туннеля. В то же время YouTube, Telegram и другие заблокированные ресурсы должны идти через прокси. Правильная настройка routing позволяет решить обе задачи одновременно.
Как устроены профили маршрутизации: структура JSON
Профиль маршрутизации в Happ — это JSON-объект, который содержит все параметры, управляющие трафиком. Рассмотрим ключевые поля на примере типового профиля:
- Name — имя профиля для идентификации в интерфейсе.
- GlobalProxy — булево значение:
trueозначает, что весь трафик по умолчанию идёт через прокси,false— напрямую. Это определяет «выход» по умолчанию, если ни одно правило не сработало. - RouteOrder — порядок проверки правил. Например,
block-proxy-directозначает, что сначала проверяются блокировки, затем прокси, затем direct. - RemoteDNSType / RemoteDNSDomain / RemoteDNSIP — настройки удалённого DNS для запросов, которые идут через прокси. По умолчанию используется DoH (DNS over HTTPS) с адресом
https://cloudflare-dns.com/dns-queryи IP1.1.1.1. - DomesticDNSType / DomesticDNSDomain / DomesticDNSIP — локальный DNS для прямых запросов. Например, в профилях для России часто используется DoU (DNS over UDP) с IP
77.88.8.8(Яндекс DNS). - Geoipurl / Geositeurl — ссылки на геофайлы (базы GeoIP и GeoSite), которые содержат списки IP-адресов и доменов по категориям.
- DirectSites / DirectIp — списки сайтов и IP-подсетей, которые должны открываться напрямую.
- ProxySites / ProxyIp — списки ресурсов, которые должны идти через туннель.
- BlockSites / BlockIp — списки для блокировки (реклама, трекеры).
- DomainStrategy — стратегия сопоставления доменов с IP-правилами:
AsIs,IPIfNonMatchилиIPOnDemand. - FakeDNS — подмена реальных IP-адресов виртуальными для исключения перехвата системным DNS.
- UseChunkFiles — оптимизация геофайлов для экономии памяти (важно для iOS).
Понимание структуры JSON позволяет вручную редактировать профили или создавать свои через визуальный редактор.
Геофайлы GeoIP и GeoSite: что это и как обновляются
Геофайлы — это базы данных, которые используются для маршрутизации на основе географического расположения IP-адресов и доменов. В Happ используются два типа файлов: geoip.dat (содержит IP-подсети, привязанные к странам) и geosite.dat (содержит домены, сгруппированные по категориям, например, geosite:youtube, geosite:telegram, geosite:category-bank-ru).
По умолчанию приложение поставляется с предустановленными геофайлами, поэтому оно готово к работе сразу после установки. Актуальность баз поддерживается обновлением версии ядра внутри приложения. Однако при создании профиля можно указать собственные URL для загрузки геофайлов. Например, в документации Happ упоминаются стандартные ссылки на GitHub: https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat и аналогичный для geosite. В готовых профилях с сайта happ.red используются ссылки на собственные серверы: https://happ.haus/geo/base/geoip.dat.
Обновление геофайлов управляется параметром LastUpdated — Unix-меткой времени. Если при импорте профиля указана дата, которая позже текущей, приложение принудительно скачивает новые базы. Это важно для поддержания актуальности списков заблокированных и разрешённых ресурсов.
Для экономии памяти на iOS используется функция UseChunkFiles, которая вырезает из геофайлов только нужные секции и передаёт ядру урезанные версии. Это позволяет избежать падений приложения при ограничениях памяти (около 50 МБ).
Правила маршрутизации: direct, proxy, block и порядок их применения
Трафик в Happ распределяется по трём категориям: прямое подключение (direct), проксирование (proxy) и блокировка (block). Для каждой категории существуют отдельные списки сайтов и IP-адресов: DirectSites, DirectIp, ProxySites, ProxyIp, BlockSites, BlockIp.
Порядок применения правил задаётся параметром RouteOrder. Например, block-proxy-direct означает, что сначала проверяется, не входит ли запрос в списки блокировки, затем — в списки прокси, и только потом — в списки direct. Если ни одно правило не сработало, трафик направляется в основной выход, который определяется параметром GlobalProxy.
Важно понимать, что правила могут использовать не только конкретные домены, но и категории из геофайлов. Например, geosite:category-bank-ru включает все домены российских банков, а geoip:ru — все российские IP-адреса. Это позволяет создавать компактные и эффективные правила без необходимости перечислять каждый домен вручную.
При настройке маршрутизации стоит учитывать, что некоторые ресурсы могут быть доступны только с определённых IP-адресов. Например, сервисы, которые пускают только из России, должны быть в списке direct, даже если у них домен .com. И наоборот, заблокированные ресурсы, даже с .ru-доменом, должны идти через прокси.
Настройка DNS в профилях: Remote, Domestic и FakeDNS
DNS-запросы в Happ разделяются на два типа: удалённые (Remote) для ресурсов, которые идут через прокси, и локальные (Domestic) для прямых подключений. Это позволяет оптимизировать скорость и избежать утечек DNS-запросов.
Remote DNS используется для запросов к сайтам, которые открываются через туннель. По умолчанию это DoH (DNS over HTTPS) с адресом https://cloudflare-dns.com/dns-query и IP 1.1.1.1. Использование DoH шифрует DNS-запросы, что предотвращает их перехват и подмену.
Domestic DNS применяется для запросов к ресурсам, которые идут напрямую. В профилях для России часто используется DoU (DNS over UDP) с IP 77.88.8.8 (Яндекс DNS). Это обеспечивает быстрый доступ к российским сайтам без задержек, связанных с шифрованием.
Параметр DnsHosts позволяет задать ручные соответствия «домен: IP», аналогично системному файлу hosts. Это полезно для принудительного использования определённых DNS-серверов для конкретных доменов.
FakeDNS — это функция, которая подменяет реальные IP-адреса виртуальными. Все запросы направляются только в Xray, что исключает их перехват системным DNS. Это повышает приватность, но может вызывать проблемы с некоторыми приложениями, поэтому по умолчанию FakeDNS отключён (false).
Импорт и экспорт профилей: ссылки happ://routing/add и не только
Профили маршрутизации можно передавать между устройствами с помощью специальных ссылок. Основные форматы:
happ://routing/add/{base64}— добавляет профиль в список профилей. Если профиль с таким именем уже существует, он перезаписывается. Первый добавленный профиль становится активным только после успешной загрузки геофайлов.happ://routing/onadd/{base64}— добавляет и автоматически активирует профиль, даже если другие профили уже активны.happ://routing/off— отключает функционал маршрутизации.
{base64} — это JSON-профиль, преобразованный в текстовый формат base64. Ссылку можно сгенерировать на сайте https://routing.happ.su, где есть визуальный редактор и JSON-редактор с синхронизацией.
Профили также можно передавать через HTTP-заголовки или тело подписки. Например, при добавлении подписки провайдер может включить в неё ссылку на профиль маршрутизации, и он автоматически привяжется к подписке.
Экспорт профиля из приложения осуществляется через функцию «Поделиться» или «Экспорт» в разделе маршрутизации. В результате вы получаете файл или ссылку вида happ://routing/add/..., которую можно отправить на другое устройство или сохранить для резервного копирования.
Готовые профили для России: обзор и рекомендации
На сайте happ.red представлены готовые профили маршрутизации, адаптированные для пользователей из России. Рассмотрим основные варианты:
P1 «Россия напрямую» — самый сбалансированный профиль. Российские сайты (зоны .ru, .su, .рф), банки, госуслуги, маркетплейсы (Ozon, Wildberries), Яндекс, VK и другие идут напрямую, а всё остальное (YouTube, Telegram) — через туннель. База лёгкая (0,5 МБ), работает на iPhone и слабых Android.
P2 «Россия и игры» — дополняет первый профиль прямым доступом к игровым сервисам (Steam, Epic Games, Riot, Twitch) и обновлениям Windows/Apple. Также блокирует рекламу и телеметрию. Подходит для геймеров.
P3 «Только банки и госуслуги» — максимальная приватность: из туннеля выведены только банки, госсервисы и домашняя сеть. Весь остальной трафик, включая .ru-сайты, идёт через прокси. Подходит для тех, кому важна анонимность.
P4 «Точный список блокировок» — использует реальные списки РКН. В туннель уходит только то, что действительно заблокировано, даже если это .ru-домен. Сервисы, которые пускают только из России, остаются напрямую. База тяжелее (4,7 МБ), но всё равно работает на iPhone.
P5 «Всё через туннель» — возврат к исходному состоянию: весь трафик через прокси, кроме локальной сети. Полезен для сброса настроек.
Рекомендуется начинать с профиля P1, а затем адаптировать его под свои нужды.
Особенности работы с JSON-подписками и ограничения
Для JSON-конфигураций подписок в Happ действует режим жёстких ограничений (Restricted Mode), чтобы предотвратить рассинхронизацию настроек с метаданными провайдера. Основные ограничения:
- У JSON-подписки может быть строго 0 или 1 профиль маршрутизации.
- Профиль не может быть добавлен вручную, скопирован из другой подписки или импортирован из буфера обмена. Он приходит только вместе с подпиской от провайдера.
- Пользователь не может отключить или изменить такой профиль: главный тогл маршрутизации заблокирован, изменение имени, ссылок и геофайлов невозможно.
Поля Remote DNS в интерфейсе переименованы в Tunnel DNS и используются локально для настройки системного туннеля, не инжектируясь в сам JSON-файл провайдера.
Также важно помнить, что изменения настроек маршрутизации (переключение тумблера, выбор профиля) применяются только после перезапуска соединения (Reconnect). Это связано с тем, что изменения записываются в БД, но активируются только при новом подключении.
При удалении подписки каскадно удаляются все привязанные к ней профили маршрутизации и кэшированные геофайлы на диске.
Практические советы по настройке и устранению ошибок
При работе с маршрутизацией в Happ могут возникать различные проблемы. Рассмотрим типичные сценарии и способы их решения.
Ошибки загрузки геофайлов. Если загрузка геофайлов не завершается в течение 3 минут, процесс останавливается, на главном экране появляется сообщение об ошибке, а рядом с проблемным профилем — красный восклицательный знак. Проблемное состояние исчезает автоматически после удаления проблемного профиля или успешной повторной загрузки.
Медленная работа или недоступность сайтов. Проверьте, какие правила применяются к проблемному ресурсу. Возможно, он попал в список direct, хотя должен идти через прокси, или наоборот. Используйте визуальный редактор на routing.happ.su для быстрой корректировки.
Проблемы с банками и госуслугами. Если банковское приложение требует подтверждения или показывает капчу, убедитесь, что домены банка включены в DirectSites. В готовых профилях для этого используются категории geosite:category-bank-ru и geosite:category-gov-ru.
Экономия памяти на iOS. Включайте UseChunkFiles, чтобы сократить размер геофайлов. Это особенно важно для устройств с ограниченной памятью.
Перенос профилей на другое устройство. Используйте экспорт в файл или ссылку happ://routing/add/.... Учтите, что кнопка импорта на сайте открывает Happ на том же устройстве, поэтому для переноса на телефон лучше скопировать ссылку и отправить её себе в мессенджер.
Заключение: как выбрать оптимальную стратегию маршрутизации
Выбор стратегии маршрутизации зависит от ваших приоритетов: скорость, приватность или доступность.
Если вам нужен быстрый доступ к российским сервисам и при этом возможность открывать заблокированные сайты, выбирайте профиль «Россия напрямую» (P1). Он обеспечивает прямой доступ к банкам, госуслугам и маркетплейсам, а всё остальное отправляет через туннель.
Для максимальной приватности подойдёт профиль «Только банки и госуслуги» (P3), где из туннеля выведено только то, что без домашнего IP не работает. Однако будьте готовы, что некоторые российские сайты могут работать медленнее.
Геймерам стоит обратить внимание на профиль «Россия и игры» (P2), который добавляет прямые подключения к игровым сервисам и блокирует рекламу.
Если вы не уверены, какой профиль выбрать, начните с P1, а затем адаптируйте его под свои нужды с помощью визуального редактора. Помните, что изменения применяются после переподключения, поэтому не забудьте перезапустить соединение.
В любом случае, маршрутизация в Happ — это мощный инструмент, который позволяет тонко настроить VPN под ваши задачи, обеспечивая баланс между безопасностью и удобством.
Вопросы и ответы
Что такое happ://routing/add/ и как использовать эту ссылку?
Ссылка happ://routing/add/{base64} используется для добавления профиля маршрутизации в приложение Happ. {base64} — это JSON-профиль, закодированный в base64. При переходе по такой ссылке приложение открывается и импортирует профиль. Если профиль с таким именем уже существует, он перезаписывается. Первый добавленный профиль становится активным только после успешной загрузки геофайлов. Существует также вариант happ://routing/onadd/, который автоматически активирует профиль, даже если другие уже активны.
Как настроить маршрутизацию так, чтобы банки работали напрямую, а YouTube через VPN?
Для этого нужно создать профиль маршрутизации, в котором в DirectSites будут включены категории geosite:category-bank-ru и geosite:category-gov-ru, а также, возможно, geosite:category-ecommerce-ru для маркетплейсов. В ProxySites добавьте geosite:youtube, geosite:telegram и другие нужные ресурсы. Убедитесь, что GlobalProxy установлен в true, чтобы весь остальной трафик шёл через туннель. Готовый профиль «Россия напрямую» (P1) уже содержит такие настройки.
Почему после изменения профиля маршрутизации изменения не применяются сразу?
В Happ изменения настроек маршрутизации (переключение тумблера, выбор профиля) записываются в базу данных, но применяются только после перезапуска соединения (Reconnect). Это связано с архитектурой приложения: ядро продолжает работать со старыми правилами до тех пор, пока не будет установлено новое соединение. Поэтому после изменения профиля обязательно переподключитесь к VPN.
Что такое геофайлы GeoIP и GeoSite и зачем они нужны?
Геофайлы — это базы данных, которые содержат списки IP-адресов (GeoIP) и доменов (GeoSite), сгруппированных по категориям. Они используются для маршрутизации трафика: например, geoip:ru включает все российские IP-адреса, а geosite:youtube — домены YouTube. Приложение поставляется с предустановленными геофайлами, но их можно обновлять, указывая URL в профиле. Актуальность баз важна для корректной работы правил.
Можно ли создать свой профиль маршрутизации с нуля?
Да, можно. Для этого используйте визуальный редактор на сайте https://routing.happ.su, где можно настроить все параметры и получить ссылку happ://routing/add/.... Также можно редактировать JSON-конфигурацию вручную. Однако для JSON-подписок действуют ограничения: профиль не может быть создан вручную, он приходит только от провайдера. Для обычных подписок ограничений нет.
Что делать, если после импорта профиля появляется ошибка загрузки геофайлов?
Если загрузка геофайлов не завершается в течение 3 минут, процесс останавливается, и появляется сообщение об ошибке. Рядом с проблемным профилем отображается красный восклицательный знак. Проблемное состояние исчезает автоматически после удаления проблемного профиля или успешной повторной загрузки. Проверьте доступность URL геофайлов, указанных в профиле, и попробуйте перезагрузить профиль.
В чем разница между Remote DNS и Domestic DNS в профиле маршрутизации?
Remote DNS используется для запросов к ресурсам, которые идут через прокси. По умолчанию это DoH (DNS over HTTPS) с адресом https://cloudflare-dns.com/dns-query и IP 1.1.1.1. Domestic DNS применяется для запросов к ресурсам, которые идут напрямую. Например, в профилях для России часто используется DoU (DNS over UDP) с IP 77.88.8.8 (Яндекс DNS). Разделение позволяет оптимизировать скорость и избежать утечек DNS-запросов.