Маршрутизация в Happ: как настроить профили routing и ссылки happ://routing

Разбираем, что такое профили маршрутизации в Happ, как работают ссылки happ://routing, зачем нужны геофайлы и как настроить исключения для банков и госуслуг.

Что такое маршрутизация в Happ и зачем она нужна

Маршрутизация в приложении Happ — это механизм, который определяет, какой трафик должен идти через прокси-сервер (туннель), а какой — напрямую с вашего устройства. Без настройки маршрутизации весь трафик, включая обращения к банковским приложениям, госуслугам и локальным устройствам, может уходить через удалённый сервер. Это приводит к тому, что сайты и сервисы видят «чужой» IP-адрес и начинают требовать дополнительную верификацию, показывать капчу или вовсе блокировать доступ.

Профиль маршрутизации (routing profile) — это набор правил, который описывает, какие домены и IP-адреса должны обрабатываться напрямую, какие через прокси, а какие блокироваться. В Happ такие профили привязаны к конкретной подписке, а не ко всему приложению целиком. Это значит, что если у вас несколько подписок, для каждой можно настроить собственный набор правил, и они не будут влиять друг на друга.

Основная задача маршрутизации — обеспечить баланс между скоростью, приватностью и доступностью. Например, российские банки и госуслуги должны видеть ваш реальный домашний IP, иначе они могут заподозрить мошенничество. В то же время YouTube, Telegram и другие зарубежные сервисы могут требовать прокси для стабильной работы. Правильно настроенный профиль решает обе задачи автоматически.

Как работают ссылки happ://routing и зачем нужен конструктор routing.happ.su

Ссылки вида happ://routing/add/{base64} и happ://routing/onadd/{base64} — это специальные URL-схемы, которые позволяют добавить или обновить профиль маршрутизации в приложении Happ. Вместо {base64} подставляется закодированная JSON-конфигурация профиля. Такие ссылки можно передавать через HTTP-заголовки, тело подписки или просто открывать в браузере на устройстве, где установлен Happ.

Разница между add и onadd проста: add добавляет профиль в список, но не активирует его автоматически (активация произойдёт только после успешной загрузки геофайлов, если это первый профиль). onadd добавляет и сразу делает профиль активным, даже если другие профили уже работают. Это удобно, когда нужно быстро переключиться на другой набор правил.

Для создания таких ссылок существует онлайн-конструктор на сайте routing.happ.su. Он позволяет визуально настроить параметры профиля (DNS, списки сайтов, стратегию доменов) и сразу получить готовую ссылку. Также можно импортировать существующую конфигурацию из base64 или JSON, отредактировать её и сгенерировать новую ссылку. Это особенно полезно для провайдеров, которые хотят распространять свои профили среди пользователей.

Структура профиля маршрутизации: основные параметры JSON

Профиль маршрутизации в Happ — это JSON-объект с набором полей. Рассмотрим ключевые из них.

Name — имя профиля, которое отображается в интерфейсе. По умолчанию — «Default».

GlobalProxy — булево значение (true или false). Если true, весь трафик по умолчанию идёт через прокси (первым в списке outbound становится proxy). Если false — по умолчанию используется прямое соединение. Это определяет «выход» по умолчанию, если ни одно правило не сработало.

RouteOrder — порядок применения правил. Например, block-proxy-direct означает, что сначала проверяются блокировки, затем прокси, затем direct. Это важно для приоритетов.

RemoteDNS и DomesticDNS — настройки DNS для прокси-трафика и прямого трафика соответственно. RemoteDNS используется для запросов к ресурсам, идущим через туннель, DomesticDNS — для прямых запросов. Можно указать тип (DoH, DoU), домен и IP сервера.

Geoipurl и Geositeurl — URL-адреса геофайлов (geoip.dat и geosite.dat), которые содержат списки IP-диапазонов и доменов для категорий (например, geosite:category-bank-ru). Эти файлы скачиваются приложением и используются для сопоставления.

DirectSites, ProxySites, BlockSites — списки доменов (с префиксом geosite: или domain:), которые должны идти напрямую, через прокси или блокироваться.

DirectIp, ProxyIp, BlockIp — аналогичные списки для IP-адресов и подсетей (например, geoip:ru или 10.0.0.0/8).

DomainStrategy — определяет, как Xray сопоставляет домены с IP-правилами. Варианты: AsIs (не резолвить домены), IPIfNonMatch (сначала проверить по домену, если нет совпадения — резолвить IP), IPOnDemand (всегда резолвить IP перед проверкой).

FakeDNS — подмена реального IP виртуальным, чтобы все запросы шли через Xray.

UseChunkFiles — оптимизация для iOS: вырезает из геофайлов ненужные секции, чтобы уменьшить потребление памяти.

Геофайлы и их роль: geoip.dat и geosite.dat

Геофайлы — это базы данных, которые содержат списки IP-адресов (geoip.dat) и доменов (geosite.dat), сгруппированных по категориям. Например, категория geosite:category-bank-ru включает домены российских банков, а geoip:ru — все российские IP-диапазоны. Эти файлы используются правилами маршрутизации для принятия решений.

Приложение Happ поставляется с предустановленными геофайлами, поэтому оно готово к работе сразу после установки. Однако актуальность баз поддерживается обновлениями ядра. При создании профиля можно указать свои URL для геофайлов — например, использовать базы от Loyalsoldier (стандартные) или специализированные, как в профилях с сайта happ.haus.

Важный момент: если в профиле указан параметр LastUpdated (Unix-время), приложение принудительно скачает геофайлы, даже если URL совпадают со стандартными. Это позволяет провайдерам инициировать обновление баз у пользователей. Если LastUpdated больше текущего значения в профиле, файлы также будут перекачаны.

Геофайлы могут быть довольно большими (десятки мегабайт), поэтому для слабых устройств или iOS с ограничением памяти в 50 МБ используется функция UseChunkFiles. Она вырезает из баз только нужные секции (например, только категории, используемые в правилах) и передаёт ядру урезанные файлы. Это снижает потребление RAM и предотвращает падение ядра.

Готовые профили маршрутизации: обзор популярных наборов

Вместо того чтобы вручную составлять правила, можно использовать готовые профили, которые распространяются по ссылкам. Например, сайт happ.haus предлагает пять профилей под разные сценарии. Рассмотрим их.

P1 «Россия напрямую» — самый спокойный вариант. Российские сайты (зоны .ru, .su, .рф, а также банки, госуслуги, Ozon, Wildberries, Яндекс, VK) идут напрямую, всё остальное (YouTube, Telegram) — через туннель. База лёгкая (0,5 МБ), работает на iPhone и слабых Android.

P2 «Россия и игры» — добавляет к P1 прямой путь для игровых сервисов (Steam, Epic Games, Riot, Twitch) и обновлений Windows/Apple, а также блокирует рекламу и трекеры. Подходит для геймеров и рабочих компьютеров.

P3 «Только банки и госуслуги» — максимальная приватность: из туннеля выведены только банки, госуслуги и домашняя сеть. Весь остальной трафик, включая .ru-сайты, идёт через прокси. Подходит, если прямой путь нужен только для критически важных сервисов.

P4 «Точный список блокировок» — использует списки РКН: в туннель уходит только то, что действительно заблокировано, даже если это .ru-домен. Сервисы, которые пускают только из России, остаются напрямую. База тяжелее (4,7 МБ), но всё равно меньше полных списков.

P5 (не описан полностью в источниках, но предполагается) — вероятно, комбинированный профиль. Важно помнить: готовые профили из случайных источников могут быть небезопасны, так как чужие правила решают за вас, что пойдёт мимо туннеля. Лучше использовать проверенные источники или создавать свои.

Как настроить исключения для банков и госуслуг вручную

Если готовые профили не подходят, можно создать свой. Для этого нужно перейти в раздел «Маршрутизация» → «Профили» → «Создать» и вставить JSON-конфигурацию. Рассмотрим минимальный пример для исключения банков и госуслуг.

В поле DirectSites добавьте категории geosite:category-bank-ru и geosite:category-gov-ru. Это обеспечит прямой доступ к сайтам банков и государственных органов. Также стоит добавить geosite:private для локальных адресов (роутер, принтер, NAS) и geoip:private в DirectIp.

Для DNS: укажите DomesticDNSType как DoU (DNS over UDP) и DomesticDNSIP — например, 77.88.8.8 (Яндекс DNS) для быстрых прямых запросов. RemoteDNS оставьте DoH с Cloudflare (1.1.1.1).

Пример JSON:

{
  "Name": "Мой профиль",
  "GlobalProxy": "true",
  "RouteOrder": "block-proxy-direct",
  "RemoteDNSType": "DoH",
  "RemoteDNSDomain": "https://cloudflare-dns.com/dns-query",
  "RemoteDNSIP": "1.1.1.1",
  "DomesticDNSType": "DoU",
  "DomesticDNSDomain": "",
  "DomesticDNSIP": "77.88.8.8",
  "Geoipurl": "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat",
  "Geositeurl": "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat",
  "LastUpdated": "",
  "DnsHosts": { "cloudflare-dns.com": "1.1.1.1" },
  "DirectSites": ["geosite:private", "geosite:category-bank-ru", "geosite:category-gov-ru"],
  "DirectIp": ["geoip:private", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "169.254.0.0/16", "224.0.0.0/4", "255.255.255.255"],
  "ProxySites": [],
  "ProxyIp": [],
  "BlockSites": [],
  "BlockIp": [],
  "DomainStrategy": "IPIfNonMatch",
  "FakeDNS": "false",
  "UseChunkFiles": "true"
}

После сохранения профиль нужно активировать и перезапустить соединение (Reconnect), чтобы изменения применились.

Особенности работы с JSON-подписками и ограничения

Для JSON-конфигураций (когда подписка приходит в виде JSON-файла) действуют жёсткие ограничения, чтобы предотвратить рассинхронизацию настроек. У JSON-подписки может быть строго 0 или 1 профиль маршрутизации. Профиль не может быть добавлен вручную, скопирован из другой подписки или импортирован из буфера обмена — он приходит только вместе с самой подпиской от провайдера.

Пользователь не может вручную управлять активностью такого профиля или менять его параметры. Главный тумблер маршрутизации принудительно заблокирован в состоянии true (или false, если отключение прислал провайдер). Изменение имени, ссылок и геофайлов полностью заблокировано.

Поля Remote DNS в интерфейсе переименованы в Tunnel DNS и используются локально для настройки системного туннеля, но не инжектируются в сам JSON-файл провайдера. Это значит, что даже если вы измените DNS в интерфейсе, на конфигурацию провайдера это не повлияет.

Такие ограничения защищают от случайных или вредоносных изменений, но также означают, что если провайдер прислал профиль с ошибками, вы не сможете его исправить вручную. В этом случае нужно обращаться к провайдеру или использовать другую подписку.

Обработка ошибок загрузки геофайлов и их устранение

При загрузке геофайлов могут возникать ошибки, особенно при медленном соединении или недоступности сервера. Приложение использует фоновый менеджер загрузки. Если загрузка не завершается в течение 3 минут, процесс останавливается, на главном экране появляется сообщение об ошибке, а рядом с проблемным профилем в списке отображается красный восклицательный знак.

Проблемное состояние исчезает автоматически после удаления проблемного профиля. Если в списке больше нет проблемных профилей, уведомления об ошибках удаляются. Также можно попробовать перезапустить приложение или проверить подключение к интернету.

Чтобы избежать ошибок, убедитесь, что URL геофайлов доступны и не заблокированы. Если вы используете кастомные URL, проверьте их работоспособность в браузере. Для стандартных баз Loyalsoldier обычно проблем нет.

Если ошибка возникает постоянно, возможно, проблема в самом профиле — например, указан неверный URL или слишком большой файл для устройства. Попробуйте использовать профиль с UseChunkFiles: true, чтобы уменьшить размер загружаемых данных.

Практические советы по выбору профиля и настройке

При выборе профиля маршрутизации важно понимать свои потребности. Если вы живёте в России и пользуетесь банковскими приложениями, госуслугами и маркетплейсами, профиль «Россия напрямую» — хороший старт. Он обеспечит прямой доступ к российским сервисам, а всё остальное пустит через туннель.

Для геймеров подойдёт профиль с прямым доступом к игровым сервисам, чтобы снизить пинг. Для тех, кто ценит приватность, лучше выбрать профиль с минимальным количеством исключений — например, «Только банки и госуслуги».

Перед установкой профиля убедитесь, что у вас есть рабочее подключение к прокси. Профиль только распределяет трафик, но не выдаёт доступ. Если приложение не подключается, сначала решите проблему с подпиской.

Также помните, что в поколении 4.x профиль привязывается к конкретной подписке. Если у вас несколько подписок, проверьте, к какой из них применился набор правил. Это частая ошибка, когда пользователь настраивает профиль для одной подписки, а трафик другой продолжает идти по-старому.

Наконец, не забывайте про функцию Reconnect: изменения настроек маршрутизации применяются только после перезапуска соединения. Если вы изменили профиль, но ничего не произошло, переподключитесь.

Частые ошибки при настройке маршрутизации и как их избежать

Одна из самых частых ошибок — неправильный порядок правил. Если RouteOrder задан как direct-proxy-block, то сначала будут применяться прямые правила, и трафик, который должен был блокироваться, может уйти напрямую. Рекомендуется использовать block-proxy-direct, чтобы блокировки имели приоритет.

Вторая ошибка — забыть добавить geosite:private и geoip:private в списки direct. Без этого локальные устройства (роутер, принтер, NAS) будут пытаться идти через прокси, что приведёт к недоступности.

Третья ошибка — использование неверных категорий в geosite. Например, geosite:category-ru может не включать все российские сайты, а только определённые. Лучше использовать несколько категорий: tld-ru, category-ru, category-gov-ru, category-bank-ru.

Четвёртая ошибка — игнорирование DNS-настроек. Если DomesticDNS не настроен, прямые запросы могут идти через системный DNS, что замедлит работу и может привести к утечкам. Убедитесь, что указан быстрый DNS, например, 77.88.8.8.

Пятая ошибка — установка профиля из ненадёжного источника. Чужие правила могут отправлять ваши данные не туда или блокировать нужные сервисы. Всегда проверяйте JSON перед установкой или используйте проверенные профили.

Наконец, не забывайте про LastUpdated. Если вы обновили геофайлы, но не изменили дату, приложение может не перекачать их. Убедитесь, что дата актуальна.

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

Что такое happ://routing/add и happ://routing/onadd?

Это специальные ссылки для добавления профиля маршрутизации в приложение Happ. add добавляет профиль в список, но не активирует его автоматически (кроме случая, когда это первый профиль). onadd добавляет и сразу активирует профиль, даже если другие уже активны. Вместо {base64} подставляется закодированная JSON-конфигурация профиля.

Как создать свою ссылку маршрутизации?

Используйте онлайн-конструктор на сайте routing.happ.su. Вставьте существующую конфигурацию (base64 или JSON) или настройте параметры визуально, затем скопируйте сгенерированную ссылку. Также можно вручную закодировать JSON в base64 и подставить в URL.

Почему банки и госуслуги требуют подтверждения, если я использую VPN?

Потому что они видят IP-адрес прокси-сервера, который может находиться в другой стране или быть в списке подозрительных. Чтобы этого избежать, добавьте российские банки и госуслуги в список DirectSites (например, geosite:category-bank-ru и geosite:category-gov-ru), чтобы они шли напрямую с вашего домашнего IP.

Что такое геофайлы geoip.dat и geosite.dat?

Это базы данных со списками IP-адресов (geoip) и доменов (geosite), сгруппированных по категориям. Они используются правилами маршрутизации для определения, куда направить трафик. Например, категория geosite:category-bank-ru содержит домены российских банков. Приложение скачивает эти файлы по URL, указанным в профиле.

Можно ли изменить профиль маршрутизации, если он пришёл с JSON-подпиской?

Нет. Для JSON-подписок действуют жёсткие ограничения: профиль приходит только вместе с подпиской, его нельзя редактировать, отключать или удалять. Вы можете только использовать его как есть. Если профиль не подходит, обратитесь к провайдеру подписки.

Что делать, если после установки профиля не работает интернет?

Проверьте, что профиль привязан к правильной подписке (если их несколько). Убедитесь, что соединение активно (Reconnect). Проверьте, не блокирует ли профиль нужные домены — возможно, в BlockSites попали важные сервисы. Также проверьте DNS-настройки: если DomesticDNS не работает, прямые запросы могут зависать. В крайнем случае удалите профиль и вернитесь к настройкам по умолчанию.

Как проверить, что правило маршрутизации работает?

Откройте сайт, который должен идти напрямую (например, банк), и проверьте свой IP-адрес — он должен быть вашим домашним. Для сайтов, идущих через прокси, IP будет адресом сервера. Также можно использовать сервисы проверки IP, такие как 2ip.ru или ifconfig.me. Если IP не соответствует ожидаемому, проверьте настройки профиля и порядок правил.