Маршрутизация в Happ: как настроить правила для VPN и безопасного интернета

Разбираем, что такое маршрутизация в Happ, как работают профили, геофайлы и DNS. Готовые профили, ручная настройка, частые ошибки и ответы на вопросы.

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

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

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

Ключевая идея: маршрутизация не заменяет VPN-подключение, а дополняет его. Она лишь распределяет трафик по правилам, но само подключение должно быть активным. Если VPN не работает, никакие профили не помогут.

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

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

Основные поля профиля:

  • Name — имя профиля для идентификации.
  • GlobalProxy — если true, весь трафик по умолчанию идёт через прокси; если false — напрямую.
  • RouteOrder — порядок проверки правил: например, block-proxy-direct означает, что сначала проверяются блокировки, затем прокси, затем direct.
  • RemoteDNS и DomesticDNS — настройки удалённого и локального DNS-серверов.
  • DirectSites / DirectIp — списки доменов и IP, которые идут напрямую.
  • ProxySites / ProxyIp — списки для туннелирования.
  • BlockSites / BlockIp — списки блокировок (реклама, трекеры).
  • DomainStrategy — как Xray сопоставляет домены с IP-правилами.
  • FakeDNS — подмена реальных IP виртуальными для исключения утечек.
  • UseChunkFiles — оптимизация геофайлов для экономии памяти.

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

Готовые профили: что выбрать и как установить

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

  • Россия напрямую — российские сайты (.ru, .рф, банки, госуслуги, маркетплейсы) идут напрямую, всё остальное — через туннель. Подходит для большинства, лёгкий (0,5 МБ).
  • Россия и игры — дополнительно выводит напрямую игровые сервисы (Steam, Epic Games, Riot) и обновления Windows, блокирует рекламу и телеметрию.
  • Только банки и госуслуги — из туннеля выведены только банки, госуслуги и домашняя сеть; весь остальной трафик, включая .ru-сайты, идёт через VPN. Максимум приватности.
  • Точный список блокировок — использует реальные списки РКН, направляет в туннель только заблокированные ресурсы, даже если у них .ru-домен. База тяжелее (4,7 МБ).

Установка профиля обычно происходит по ссылке вида happ://routing/add/{base64} или happ://routing/onadd/{base64}. Первая добавляет профиль, но активирует его только после успешной загрузки геофайлов; вторая сразу активирует. Также можно импортировать JSON вручную через интерфейс приложения.

Перед установкой убедитесь, что VPN-подключение уже работает — профиль лишь распределяет трафик, но не создаёт соединение.

Ручная настройка профиля: ключевые параметры

Если готовые профили не подходят, можно создать свой. Рассмотрим основные параметры JSON-профиля подробнее.

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

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

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

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

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

  • DirectSites — список доменов для прямого подключения, например geosite:category-ru или domain:example.com.
  • DirectIp — список IP-подсетей, например geoip:ru или 192.168.0.0/16.
  • ProxySites и ProxyIp — аналогично для туннелирования.
  • BlockSites и BlockIp — для блокировки.

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

  • DomainStrategyAsIs, IPIfNonMatch или IPOnDemand. IPIfNonMatch сначала проверяет доменные правила, а если не нашёл — резолвит IP и проверяет по IP. IPOnDemand всегда резолвит домен перед проверкой.
  • UseChunkFiles — если true, приложение вырезает из геофайлов только нужные секции, экономя память (важно для iOS).
  • RouteOrder — порядок проверки правил, например block-proxy-direct.

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

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

По умолчанию используются файлы из репозитория Loyalsoldier: https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat и аналогичный для geosite. Однако в профиле можно указать свои URL.

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

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

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

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

JSON-подписки — это конфигурации, которые приходят от провайдера и содержат не только серверы, но и профиль маршрутизации. В Happ для таких подписок действует Restricted Mode, который жёстко ограничивает возможности пользователя:

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

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

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

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

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

Стратегия доменов (DomainStrategy) влияет на то, как Xray сопоставляет домены с IP-правилами:

  • AsIs — Xray не резолвит домен на этапе маршрутизации, передаёт его «как есть». Это быстрее, но может привести к тому, что IP-правила не сработают.
  • IPIfNonMatch — сначала проверяются доменные правила; если ни одно не подошло, выполняется DNS-запрос и проверка по IP. Это компромисс между скоростью и точностью.
  • IPOnDemand — Xray всегда резолвит домен в IP перед проверкой любых правил. Это самый точный, но и самый медленный вариант.

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

Также стоит учитывать, что при использовании FakeDNS все DNS-запросы идут через Xray, что исключает утечки, но может замедлить работу, если DNS-сервер недоступен.

Частые ошибки и способы их устранения

При настройке маршрутизации пользователи часто сталкиваются с типичными проблемами. Рассмотрим их и способы решения.

1. Профиль не активируется. Если вы импортировали профиль по ссылке happ://routing/add, он станет активным только после успешной загрузки геофайлов. Проверьте, что загрузка завершилась, и что нет ошибок. Если ошибка есть, удалите профиль и попробуйте снова.

2. Российские сайты требуют капчу или подтверждение. Это значит, что они идут через VPN. Убедитесь, что в профиле есть правила для geosite:category-ru или geoip:ru, и что GlobalProxy не перекрывает их. Возможно, стоит использовать готовый профиль «Россия напрямую».

3. Игры лагают или высокий пинг. Если игровые сервисы идут через туннель, пинг будет выше. Добавьте их в DirectSites или используйте профиль «Россия и игры».

4. Не работает блокировка рекламы. Проверьте, что в BlockSites есть geosite:category-ads, и что RouteOrder начинается с block. Также убедитесь, что геофайлы обновлены.

5. После изменения профиля ничего не изменилось. Изменения применяются только после перезапуска соединения (Reconnect). Перезапустите VPN-подключение.

6. Профиль из случайного источника ломает доступ. Чужие правила могут отправлять нужные сервисы не туда. Используйте только проверенные профили или создавайте свои.

Если ничего не помогает, проверьте, работает ли само VPN-подключение. Маршрутизация не может исправить мёртвый доступ.

Практические примеры настройки

Рассмотрим несколько практических сценариев.

Сценарий 1: Базовый профиль для России. Нужно, чтобы российские сайты шли напрямую, а всё остальное — через VPN. Создайте профиль с GlobalProxy: true, DirectSites включая geosite:category-ru, geosite:category-bank-ru, geosite:category-gov-ru, geosite:category-ecommerce-ru, а DirectIpgeoip:ru и приватные подсети. DomainStrategy: IPIfNonMatch, FakeDNS: false.

Сценарий 2: Игры и обновления напрямую. Добавьте в DirectSites geosite:steam, geosite:epicgames, geosite:riot, geosite:twitch, а также geosite:microsoft и geosite:apple для обновлений. В BlockSites добавьте geosite:category-ads и geosite:win-spy для блокировки рекламы и телеметрии.

Сценарий 3: Максимальная приватность. Выведите из туннеля только банки и госуслуги: DirectSitesgeosite:category-bank-ru, geosite:category-gov-ru, geosite:private. Всё остальное, включая .ru-сайты, оставьте в туннеле. GlobalProxy: true.

Сценарий 4: Точная блокировка по спискам РКН. Используйте профиль, который направляет в туннель только реально заблокированные ресурсы. Это требует более тяжёлых геофайлов, но обеспечивает точность. В ProxySites укажите geosite:youtube, geosite:telegram, geosite:discord и другие, а в DirectSites — сервисы, которые пускают только из России.

Во всех случаях не забывайте про RouteOrder и DomainStrategy. Для большинства профилей подходит block-proxy-direct и IPIfNonMatch.

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

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

1. Проверка IP-адреса. Зайдите на сайт типа 2ip.ru или ifconfig.me. Если вы видите IP вашего провайдера — трафик идёт напрямую. Если IP VPN-сервера — через туннель.

2. Проверка конкретного сайта. Откройте сайт, который должен идти напрямую (например, gosuslugi.ru). Если он открывается без капчи и подтверждений — правило работает. Если требует подтверждение — вероятно, идёт через VPN.

3. Проверка блокировок. Попробуйте открыть сайт с рекламой. Если реклама не отображается — блокировка работает.

4. Логи приложения. В Happ есть логи, где видно, какое правило сработало для каждого запроса. Это самый точный способ, но требует понимания формата логов.

5. Использование команды curl. На компьютере можно выполнить curl --resolve example.com:443:IP https://example.com, чтобы проверить, какой IP используется.

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

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

Что такое профиль маршрутизации в Happ?

Профиль маршрутизации — это набор правил в формате JSON, который определяет, какие сайты и IP-адреса должны идти через VPN, какие напрямую, а какие блокироваться. Профиль можно импортировать по ссылке, получить от провайдера или создать вручную. Он содержит настройки DNS, списки direct/proxy/block и продвинутые параметры.

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

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

Почему российские сайты требуют капчу при включённом VPN?

Это происходит, когда российские сайты идут через VPN-сервер с иностранным IP. Банки, госуслуги и маркетплейсы видят незнакомый адрес и запрашивают подтверждение. Решение — добавить эти сайты в список DirectSites или использовать готовый профиль «Россия напрямую», который выводит .ru-зоны и российские сервисы из туннеля.

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

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

Что делать, если после изменения профиля ничего не изменилось?

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

Как выбрать между DomainStrategy AsIs, IPIfNonMatch и IPOnDemand?

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

Что такое геофайлы и зачем они нужны?

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