Happ Routing Builder: визуальный конструктор правил маршрутизации для VPN

Разбираем Happ Routing Builder: как создать профиль маршрутизации, настроить DNS, списки сайтов и геофайлы, а также использовать готовые профили для России.

Что такое Happ Routing Builder и зачем он нужен

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

Builder решает эту задачу, предоставляя удобный интерфейс, где можно настроить параметры без ручного редактирования JSON. Он автоматически генерирует ссылку вида happ://routing/add/... или happ://routing/onadd/..., которую можно передать в приложение для импорта профиля. Это особенно полезно для провайдеров VPN-подписок, которые хотят распространять готовые конфигурации среди пользователей, а также для продвинутых пользователей, желающих точно настроить поведение своего клиента.

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

Ключевые параметры профиля маршрутизации

Профиль маршрутизации в Happ — это JSON-объект, содержащий несколько групп настроек. Рассмотрим основные поля, которые доступны в Routing Builder.

Основные настройки:

  • Name — имя профиля, отображаемое в приложении.
  • GlobalProxy — булево значение: если true, весь трафик по умолчанию идет через прокси; если false — напрямую. Это определяет «выход» по умолчанию, когда ни одно правило не сработало.
  • RouteOrder — порядок проверки правил, например block-proxy-direct означает: сначала блокировка, затем прокси, затем прямое соединение.
  • LastUpdated — Unix-метка времени, управляющая принудительным обновлением геофайлов. Если новая дата больше предыдущей, приложение скачает свежие базы.

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

  • RemoteDNSType и RemoteDNSDomain — тип и адрес удаленного DNS-сервера (для проксируемых ресурсов). Обычно используется DoH (DNS over HTTPS), например https://cloudflare-dns.com/dns-query.
  • RemoteDNSIP — статический IP удаленного DNS, чтобы избежать проблем с поиском сервера.
  • DomesticDNSType, DomesticDNSDomain, DomesticDNSIP — аналогичные параметры для локального DNS (для прямых подключений). Часто используют Яндекс DNS 77.88.8.8.
  • DnsHosts — словарь «домен: IP» для ручного переопределения, работает как hosts-файл.
  • FakeDNS — если включено, подменяет реальные IP-адреса виртуальными, направляя все запросы через Xray.

Правила маршрутизации:

  • DirectSites, DirectIp — списки доменов и IP-диапазонов, которые должны идти напрямую.
  • ProxySites, ProxyIp — списки ресурсов, которые должны идти через прокси.
  • BlockSites, BlockIp — списки для блокировки (реклама, трекеры).

Продвинутые параметры:

  • DomainStrategy — определяет, как Xray сопоставляет домены с IP-правилами: AsIs, IPIfNonMatch, IPOnDemand.
  • UseChunkFiles — если true, приложение создает урезанные версии геофайлов для экономии памяти (важно для iOS).

Как работает визуальный редактор Routing Builder

Веб-интерфейс Routing Builder устроен так, что все изменения мгновенно синхронизируются с JSON-представлением профиля. Это позволяет новичкам настраивать параметры через понятные поля и переключатели, а опытным пользователям — видеть, как каждое действие отражается в коде.

Основные элементы интерфейса:

  • Импорт конфигурации — можно вставить Happ-ссылку или Base64/JSON, чтобы начать редактирование с существующего профиля.
  • Сгенерированная ссылка — автоматически формируется на основе текущей конфигурации. Есть опция использовать happ://routing/onadd/ для автоматической активации профиля после импорта.
  • Настройка DNS — выбор типа (DoH или DoU), ввод домена и IP для удаленного и локального DNS.
  • Списки сайтов — поля для DirectSites, ProxySites, BlockSites, где можно добавлять домены или гео-теги (например, geosite:category-ru).
  • JSON-редактор — прямая правка кода с подсветкой синтаксиса и валидацией.

Такой подход удобен для быстрого создания профилей «под себя». Например, можно взять готовый профиль «Россия напрямую» и добавить в DirectSites пару доменов, не разбираясь в структуре JSON. Или наоборот, скопировать сложный профиль и изменить порядок маршрутизации, просто перетащив элементы в RouteOrder.

Готовые профили маршрутизации для России

Для пользователей из России особенно актуальны готовые профили, которые решают проблему «российские сервисы видят иностранный IP». На сайте happ.haus представлены пять профилей, проверенных на актуальных версиях Happ (4.x).

P1 «Россия напрямую» — базовый профиль: все российские сайты (зоны .ru, .su, .рф, .moscow, .tatar), банки, госуслуги, маркетплейсы (Ozon, Wildberries, Яндекс, VK) идут напрямую, а YouTube, Telegram и остальное — через туннель. Это самый безопасный вариант для большинства пользователей.

P2 «Россия и игры» — расширяет первый профиль: игровые сервисы (Steam, Epic Games, Riot, Twitch), обновления Windows и push-уведомления Apple также идут напрямую, чтобы не было задержек и проблем с уведомлениями. Дополнительно блокируется реклама и телеметрия.

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

P4 «Точный список сервисов» — самый точный: в туннель уходит только то, что перечислено в списках (YouTube, Telegram, Discord и т.д.), даже если это .ru-домен. Российские сервисы, которые пускают только с локальных адресов, остаются напрямую.

P5 (не описан в источниках, но подразумевается) — вероятно, комбинированный профиль. Все профили имеют небольшой размер (0,5–5 МБ) и работают на iPhone и Android.

Как установить профиль маршрутизации в Happ

Установка профиля маршрутизации в Happ происходит через специальные ссылки или импорт JSON. Рассмотрим основные способы.

Через ссылку:

  1. Откройте ссылку вида happ://routing/add/{base64} или happ://routing/onadd/{base64} в браузере на устройстве, где установлен Happ.
  2. Приложение откроется и покажет диалог импорта.
  3. Подтвердите импорт — профиль добавится в список профилей маршрутизации.
  4. Если использовалась ссылка onadd, профиль сразу станет активным. В противном случае его нужно активировать вручную.

Через JSON:

  1. Скопируйте JSON-конфигурацию профиля.
  2. В приложении перейдите в раздел «Маршрутизация» → «Профили» → «Создать».
  3. Вставьте JSON в соответствующее поле и сохраните.

Важные нюансы:

  • В поколении 4.x профиль привязывается к конкретной подписке, а не ко всему приложению. Если у вас несколько подписок, убедитесь, что профиль применился к нужной.
  • При импорте профиля, если он уже существует с таким именем, он будет перезаписан.
  • Если профиль содержит LastUpdated с более поздней датой, чем текущая, приложение принудительно скачает новые геофайлы.
  • Для JSON-подписок (Restricted Mode) действуют ограничения: профиль маршрутизации может быть только один, и он приходит только от провайдера. Ручное добавление или изменение заблокировано.

Настройка DNS: DoH, DoU и DnsHosts

Правильная настройка DNS критична для работы маршрутизации. Happ разделяет DNS-запросы на локальные (Domestic) и удаленные (Remote), что позволяет оптимизировать скорость и обходить блокировки.

Типы DNS:

  • DoH (DNS over HTTPS) — запросы шифруются и передаются по HTTPS-протоколу. Рекомендуется для удаленного DNS, так как скрывает запросы от провайдера. Пример: https://cloudflare-dns.com/dns-query.
  • DoU (DNS over UDP) — обычные DNS-запросы по UDP. Быстрее, но не шифруются. Часто используется для локального DNS, например Яндекс DNS 77.88.8.8.

Настройка Remote DNS:

  • Для проксируемых ресурсов используется удаленный DNS. Он должен быть доступен через прокси, чтобы избежать утечек. Обычно это Cloudflare (1.1.1.1) или Google (8.8.8.8).
  • Поле RemoteDNSDomain обязательно, если выбран тип DoH.
  • RemoteDNSIP — статический IP, чтобы не было проблем с резолвингом самого DNS-сервера.

Настройка Domestic DNS:

  • Для прямых подключений (российские сайты) используется локальный DNS. Он должен быть быстрым и доступным напрямую. Яндекс DNS (77.88.8.8) — популярный выбор для России.
  • Если выбран тип DoU, поле DomesticDNSDomain можно оставить пустым.

DnsHosts:

  • Позволяет вручную задать соответствия «домен: IP». Это полезно для принудительного направления определенных доменов на нужные IP, например, для обхода блокировок или ускорения доступа.
  • Работает аналогично системному файлу hosts, встраивается в конфигурацию Xray.

FakeDNS:

  • Если включено, приложение подменяет реальные IP-адреса виртуальными, что гарантирует, что все запросы идут через Xray и не перехватываются системным DNS. Это повышает приватность, но может вызвать проблемы с некоторыми приложениями.

Правила маршрутизации: Direct, Proxy, Block

Сердце профиля маршрутизации — списки правил, которые определяют судьбу каждого запроса. В Happ есть три категории: прямое подключение (Direct), прокси (Proxy) и блокировка (Block).

DirectSites и DirectIp:

  • Сюда попадают ресурсы, которые должны открываться напрямую, без туннеля. Это могут быть домены (domain:example.com), гео-теги (geosite:category-ru) или IP-диапазоны (geoip:ru, 10.0.0.0/8).
  • Для России сюда обычно включают банки, госуслуги, локальные сети.

ProxySites и ProxyIp:

  • Ресурсы, которые должны идти через прокси. Это зарубежные сервисы, которые могут быть недоступны напрямую или требуют иностранного IP (YouTube, Telegram, Discord).
  • Можно использовать гео-теги, например geosite:youtube, geosite:telegram.

BlockSites и BlockIp:

  • Запрещенные ресурсы: реклама, трекеры, телеметрия. Блокировка происходит на уровне DNS или соединения.
  • Примеры: geosite:category-ads, geosite:win-spy.

Порядок проверки (RouteOrder):

  • Определяет, в каком порядке проверяются правила. Например, block-proxy-direct означает: сначала блокировка, затем прокси, затем прямое соединение.
  • Если ни одно правило не сработало, трафик направляется в основной выход (Proxy, если GlobalProxy=true, иначе Direct).

Пример из готового профиля: В профиле «Россия напрямую» DirectSites содержит geosite:category-ru, geosite:category-bank-ru, geosite:category-gov-ru и т.д. Это позволяет автоматически направлять все российские сайты напрямую, не перечисляя каждый домен вручную.

Геофайлы и их обновление

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

Источники геофайлов:

  • По умолчанию используются файлы от Loyalsoldier (v2ray-rules-dat) с GitHub: https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat и аналогично для geosite.dat.
  • В готовых профилях могут использоваться собственные источники, например https://happ.haus/geo/base/geoip.dat.

Механизм обновления:

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

Проблемы с загрузкой:

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

Оптимизация (UseChunkFiles):

  • Для экономии памяти (особенно на iOS) можно включить UseChunkFiles. Приложение создает урезанные версии геофайлов, содержащие только нужные секции.
  • Нарезка происходит при сохранении профиля, после загрузки геофайлов или после изменения правил.
  • Важно: если вы используете JSON-подписку, убедитесь, что в профиле маршрутизации созданы те же теги, что и в JSON-конфигурации.

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

Для JSON-подписок (Restricted Mode) действуют жесткие ограничения, которые важно понимать провайдерам и пользователям.

Основные ограничения:

  • У JSON-подписки может быть строго 0 или 1 профиль маршрутизации.
  • Профиль не может быть добавлен вручную, скопирован из другой подписки или импортирован из буфера обмена. Он приходит только вместе с подпиской от провайдера.
  • Пользователь не может отключить или изменить такой профиль: главный тогл маршрутизации заблокирован, изменение имени, ссылок и геофайлов запрещено.

Tunnel DNS:

  • В интерфейсе поля Remote DNS переименованы в Tunnel DNS (Tunnel DNS Type, Tunnel IP, Tunnel Domain).
  • Эти настройки используются локально для системного туннеля и не инжектируются в JSON-файл провайдера.

Зачем это нужно:

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

Как добавить правила маршрутизации:

  • Провайдер может передавать профиль через HTTP-заголовок routing или в теле подписки. При добавлении профиль автоматически привязывается к подписке.
  • Также можно использовать ссылки happ://routing/add/ и happ://routing/onadd/, но для JSON-подписок они не сработают, если профиль уже существует.

Практические советы и частые ошибки

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

Советы:

  • Начинайте с готовых профилей. Они проверены и работают в большинстве случаев. Настраивать вручную стоит только тогда, когда готовый профиль не подходит.
  • Если вы используете несколько подписок, проверьте, к какой подписке привязан профиль. В поколении 4.x профиль привязан к подписке, а не ко всему приложению.
  • При добавлении правил используйте гео-теги (geosite:category-ru) вместо перечисления сотен доменов. Это упрощает профиль и ускоряет его работу.
  • Не забывайте про LastUpdated. Если вы обновили геофайлы на сервере, обязательно измените эту дату, чтобы клиенты скачали новые версии.
  • Для iOS включайте UseChunkFiles, чтобы избежать падения ядра из-за нехватки памяти.

Частые ошибки:

  • Неправильный порядок маршрутизации. Если RouteOrder задан как proxy-direct-block, блокировка не будет работать, так как трафик уйдет в прокси раньше.
  • Конфликт правил. Если домен есть и в DirectSites, и в ProxySites, приоритет будет определяться порядком проверки. Убедитесь, что порядок соответствует вашим намерениям.
  • Забыли про DNS. Если удаленный DNS не работает, проксируемые сайты могут не открываться. Проверьте доступность DNS-сервера.
  • Использование устаревших геофайлов. Если не обновлять геофайлы, новые сайты могут неправильно маршрутизироваться.

Как проверить, что правило работает:

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

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

Что такое Happ Routing Builder?

Happ Routing Builder — это веб-инструмент для визуального создания и редактирования профилей маршрутизации для приложения Happ. Он позволяет настроить правила, по которым трафик идет через прокси, напрямую или блокируется, а также сгенерировать ссылку для импорта профиля в приложение.

Как установить профиль маршрутизации в Happ?

Профиль можно установить двумя способами: через ссылку happ://routing/add/{base64} или happ://routing/onadd/{base64}, либо вручную вставив JSON в разделе «Маршрутизация» → «Профили» → «Создать». Ссылка onadd автоматически активирует профиль после импорта.

Что такое GlobalProxy и как он влияет на маршрутизацию?

GlobalProxy — это параметр, определяющий, куда направляется трафик по умолчанию. Если true, весь трафик, для которого не нашлось правила, идет через прокси. Если false — напрямую. Это важно для понимания, как будут обрабатываться новые или неизвестные ресурсы.

Какие DNS-серверы лучше использовать для России?

Для удаленного DNS (проксируемые ресурсы) обычно используют Cloudflare (1.1.1.1) или Google (8.8.8.8) через DoH. Для локального DNS (прямые подключения) часто выбирают Яндекс DNS (77.88.8.8) через DoU, так как он быстрее и доступнее в России.

Что такое геофайлы и зачем их обновлять?

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

Можно ли использовать готовые профили для России?

Да, на сайте happ.haus представлены готовые профили, например «Россия напрямую», «Россия и игры», «Только банки и госуслуги». Они решают типичные проблемы с российскими сервисами и могут быть установлены одной ссылкой.

Какие ограничения у JSON-подписок в Happ?

У JSON-подписок может быть только один профиль маршрутизации, который приходит от провайдера. Пользователь не может вручную создавать, изменять или отключать такой профиль. Это сделано для предотвращения рассинхронизации настроек.