Маршрутизация в Happ: как настроить VPN-профили для России и мира

Разбираем геонастройки и профили маршрутизации в Happ: правила direct/proxy/block, DNS, импорт и экспорт, готовые профили для банков, игр и приватности.

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

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

Профиль маршрутизации — это JSON-структура, содержащая списки сайтов и IP-адресов для прямого подключения (direct), проксирования (proxy) и блокировки (block). Также в профиле задаются настройки DNS, стратегия обработки доменов и порядок применения правил. Благодаря этому можно, например, оставить российские сайты на домашнем IP, а YouTube и Telegram пустить через туннель.

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

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

Профиль маршрутизации хранится в виде JSON и содержит несколько ключевых блоков. Основные параметры: Name — имя профиля, GlobalProxy — определяет, идет ли весь трафик через прокси по умолчанию, RouteOrder — порядок проверки правил (например, block-proxy-direct).

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

Правила могут ссылаться на гео-базы: geosite:category-ru включает все российские сайты, geosite:youtube — YouTube, geoip:ru — все российские IP-адреса. Также можно указывать конкретные домены через domain:example.com или подсети через CIDR-нотацию, например 10.0.0.0/8.

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

Гео-базы GeoIP и GeoSite: что это и как обновляются

Гео-базы — это файлы geoip.dat и geosite.dat, которые содержат списки IP-адресов и доменов, сгруппированных по категориям. Happ использует базы из проекта Loyalsoldier/v2ray-rules-dat, а также собственные сборки на happ.haus. Эти файлы позволяют правилам ссылаться на группы вроде geosite:category-bank-ru или geoip:ru без необходимости перечислять каждый адрес вручную.

Приложение поставляется с предустановленными геофайлами, поэтому работает сразу после установки. Актуальность поддерживается автоматически при обновлении ядра. При импорте профиля с заполненным полем LastUpdated (Unix-время) приложение принудительно скачивает свежие версии геофайлов, даже если URL совпадают со стандартными.

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

Настройка DNS: Remote, Domestic и FakeDNS

В профиле маршрутизации DNS-запросы разделяются на два типа: Remote (удаленный) — для ресурсов, идущих через прокси, и Domestic (локальный) — для прямых подключений. Это позволяет ускорить отклик и избежать утечек DNS.

Для Remote DNS обычно используется DoH (DNS over HTTPS) с сервером Cloudflare (https://cloudflare-dns.com/dns-query, IP 1.1.1.1). Для Domestic DNS часто выбирают DoU (DNS over UDP) с российским сервером, например 77.88.8.8 (Яндекс.DNS). Поля RemoteDNSDomain и DomesticDNSDomain обязательны, если выбран тип DoH.

Параметр DnsHosts позволяет задать ручные соответствия «домен: IP» — работает как системный файл hosts. Это полезно для принудительного использования нужного DNS-сервера, например cloudflare-dns.com: 1.1.1.1.

FakeDNS (FakeDNS: true) подменяет реальные IP-адреса виртуальными, чтобы все запросы направлялись только в Xray и обрабатывались строго по конфигурации. Это исключает перехват DNS системными средствами, но может быть несовместимо с некоторыми приложениями.

Порядок маршрутизации и стратегия доменов

Порядок маршрутизации (RouteOrder) определяет, в какой последовательности проверяются правила. Например, block-proxy-direct означает: сначала проверяются блокировки, затем прокси, и только потом direct. Если ни одно правило не подошло, трафик направляется в основной выход — proxy, если GlobalProxy включен, иначе direct.

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

Для большинства случаев рекомендуется IPIfNonMatch — он балансирует между скоростью и точностью. Если у вас много правил на IP-диапазоны, возможно, стоит использовать IPOnDemand, но это увеличит количество DNS-запросов.

Готовые профили для России: банки, госуслуги, игры

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

Профиль «Россия и игры» добавляет прямые пути для Steam, Epic Games, Riot, Twitch и обновлений Windows, а также блокирует рекламу и телеметрию. Это снижает пинг в играх и ускоряет загрузку патчей.

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

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

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

Создание и импорт собственных профилей

Создать профиль маршрутизации можно вручную, написав JSON, или с помощью визуального редактора на сайте routing.happ.su. Редактор позволяет настроить все параметры через интерфейс и автоматически генерирует ссылку вида happ://routing/add/{base64}.

Импорт профиля в Happ выполняется несколькими способами: переход по ссылке happ://routing/add/... (добавляет профиль без активации) или happ://routing/onadd/... (добавляет и сразу активирует). Также профиль можно передать через HTTP-заголовок routing или в теле подписки — тогда он автоматически привязывается к этой подписке.

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

Экспорт профиля доступен через кнопку «Поделиться» или «Экспорт» в разделе маршрутизации — вы получаете файл или ссылку для передачи на другое устройство.

Ограничения для JSON-подписок и режим Restricted Mode

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

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

Это важно учитывать при работе с провайдерскими подписками: если вам нужна гибкая настройка, используйте обычные подписки (не JSON) или создавайте собственные профили.

Оптимизация памяти: UseChunkFiles и работа на iOS

На устройствах с ограниченной памятью (например, iPhone с лимитом 50 МБ) полные геофайлы могут привести к падению ядра при старте. Для решения этой проблемы в Happ реализована функция UseChunkFiles — она вырезает из геофайлов только указанные секции и передает ядру уже обрезанные файлы.

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

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

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

При выборе профиля ориентируйтесь на свои сценарии: если вам нужен доступ к российским банкам и госуслугам без капчи — используйте «Россия напрямую». Если вы играете в онлайн-игры — добавьте игровые сервисы в direct. Для максимальной приватности подойдет «Только банки и госуслуги».

Если после установки профиля что-то перестало работать (например, Ozon или Яндекс), вернитесь к более сбалансированному профилю или создайте свой с нужными исключениями. Помните, что изменения в настройках маршрутизации применяются только после перезапуска соединения (Reconnect).

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

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

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

Профиль можно добавить несколькими способами: перейти по ссылке happ://routing/add/{base64} (добавит без активации) или happ://routing/onadd/{base64} (добавит и активирует). Также профиль можно получить через HTTP-заголовок routing или в теле подписки — тогда он автоматически привяжется к подписке. Если профиль с таким именем уже существует, он будет перезаписан.

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

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

Чем отличаются Remote DNS и Domestic DNS?

Remote DNS используется для запросов ресурсов, которые идут через прокси, и обычно настраивается на DoH-сервер Cloudflare (1.1.1.1). Domestic DNS — для прямых подключений, часто это DoU-сервер Яндекса (77.88.8.8). Разделение позволяет ускорить отклик и избежать утечек DNS: запросы для проксируемых сайтов не видны локальному провайдеру.

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

Скорее всего, вы используете профиль, который не выводит российские сервисы в direct. Например, профиль «Только банки и госуслуги» оставляет Ozon, Яндекс и другие .ru-сайты через туннель, из-за чего они видят иностранный IP и запрашивают подтверждение. Решение — переключиться на профиль «Россия напрямую» или добавить нужные домены в DirectSites.

Как экспортировать профиль маршрутизации на другое устройство?

В разделе маршрутизации у профиля есть кнопка «Поделиться» или «Экспорт». Вы получите файл или ссылку вида happ://routing/add/.... Передайте ссылку на другое устройство (например, через мессенджер) и откройте её в Happ — профиль импортируется. Учтите, что если страница открыта на компьютере, телефон профиль не получит — нужно открыть ссылку именно на мобильном устройстве.

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

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