Что такое маршрутизация в VPN-клиенте Happ
Маршрутизация — это механизм, который определяет, какой трафик устройства должен идти через VPN-туннель, а какой — напрямую, минуя прокси. В клиенте Happ эта логика реализована через профили маршрутизации — наборы правил, которые можно создавать, импортировать и переключать в зависимости от ситуации.
Профиль маршрутизации содержит несколько ключевых блоков: список сайтов и IP-адресов для прямого подключения (direct), список ресурсов, которые должны идти через туннель (proxy), и список блокируемых доменов (block). Дополнительно настраиваются DNS-серверы, стратегия обработки доменов и параметры геофайлов.
В отличие от простых VPN-приложений, где весь трафик уходит в туннель, Happ позволяет гибко управлять исключениями. Это особенно важно для пользователей из России, где многие банковские сервисы и госуслуги требуют подключения с локального IP-адреса. Правильная маршрутизация позволяет сохранить доступ к таким ресурсам без отключения VPN.
Как устроены профили маршрутизации в Happ
Каждый профиль маршрутизации в Happ — это JSON-объект, который содержит все настройки. Основные поля включают:
Name— имя профиля для идентификации в интерфейсе.GlobalProxy— флаг, определяющий, какой outbound используется по умолчанию:trueозначает, что весь трафик, не попавший под правила, идёт через прокси;false— напрямую.RouteOrder— порядок проверки правил: например,block-proxy-directозначает, что сначала проверяются блокировки, затем прокси, затем direct.RemoteDNSType,RemoteDNSDomain,RemoteDNSIP— настройки удалённого DNS для запросов, которые идут через туннель.DomesticDNSType,DomesticDNSDomain,DomesticDNSIP— настройки локального DNS для прямых запросов.DirectSites,DirectIp— списки доменов и IP-диапазонов для прямого подключения.ProxySites,ProxyIp— списки ресурсов, которые должны идти через туннель.BlockSites,BlockIp— списки блокируемых ресурсов.DomainStrategy— стратегия сопоставления доменов с IP-правилами.FakeDNS— включение подмены IP-адресов для обработки всех запросов через Xray.UseChunkFiles— оптимизация геофайлов для экономии памяти.
Профили могут быть предустановлены в приложении, добавлены вручную или импортированы через специальные ссылки. Каждая подписка может иметь собственный набор профилей, что позволяет изолировать настройки для разных серверов.
Правила direct, proxy и block: как они работают
Правила маршрутизации делят трафик на три категории: direct (напрямую), proxy (через туннель) и block (заблокировать). Каждая категория может содержать как домены, так и IP-адреса.
Direct — это ресурсы, к которым нужно обращаться с вашего реального IP-адреса. Обычно сюда включают:
- Локальные сети:
geoip:private,10.0.0.0/8,192.168.0.0/16. - Российские домены:
geosite:tld-ru,geosite:category-ru. - Банки и госуслуги:
geosite:category-bank-ru,geosite:category-gov-ru. - Домашние устройства: принтеры, роутеры, NAS.
Proxy — ресурсы, которые должны быть доступны через VPN. Это могут быть заблокированные сайты, зарубежные сервисы или просто те, которые вы хотите скрыть от провайдера. Например, geosite:youtube, geosite:telegram, geosite:discord.
Block — нежелательные ресурсы: реклама, трекеры, телеметрия. Например, geosite:category-ads, geosite:win-spy.
Порядок проверки правил задаётся параметром RouteOrder. По умолчанию используется block-proxy-direct: сначала проверяются блокировки, затем прокси, и только потом direct. Это гарантирует, что заблокированные ресурсы не будут случайно пропущены.
DNS-конфигурация: локальный и удалённый DNS
DNS играет ключевую роль в маршрутизации. Happ разделяет DNS-запросы на два типа: локальные (Domestic) и удалённые (Remote).
Удалённый DNS используется для запросов, которые идут через прокси. Он позволяет избежать утечек DNS и обеспечивает корректное разрешение имён для заблокированных ресурсов. По умолчанию используется Cloudflare DoH (https://cloudflare-dns.com/dns-query) с IP 1.1.1.1.
Локальный DNS обслуживает запросы для прямых подключений. В профилях для России часто используется DoU (DNS over UDP) с IP 77.88.8.8 (Яндекс DNS) или DoH с https://dns.google/dns-query и IP 8.8.8.8.
Дополнительно можно задать DnsHosts — ручные соответствия «домен: IP», которые работают как системный файл hosts. Это полезно для фиксации адресов DNS-серверов, чтобы избежать проблем с их поиском.
Параметр FakeDNS включает подмену реальных IP-адресов виртуальными. Это гарантирует, что все запросы направляются только в Xray, исключая перехват системным DNS. Однако в некоторых случаях FakeDNS может вызывать проблемы с приложениями, которые проверяют IP-адреса, поэтому его следует использовать осторожно.
Геофайлы GeoIP и GeoSite: что это и зачем они нужны
Геофайлы — это базы данных, которые содержат списки IP-адресов (GeoIP) и доменов (GeoSite), сгруппированных по категориям. Happ использует их для сопоставления правил маршрутизации с реальными ресурсами.
Например, geoip:ru включает все IP-адреса, принадлежащие России, а geosite:telegram — домены и подсети Telegram. Это позволяет создавать правила вида «весь российский трафик — напрямую» или «Telegram — через туннель» без ручного перечисления каждого домена.
По умолчанию Happ использует базы из репозитория Loyalsoldier (https://github.com/Loyalsoldier/v2ray-rules-dat). Однако в профилях для России могут использоваться альтернативные источники, например https://happ.haus/geo/base/geoip.dat, которые оптимизированы под местные условия.
Геофайлы обновляются автоматически при изменении профиля или вручную через параметр LastUpdated. Если указана более новая дата, приложение принудительно скачивает свежие версии баз. Это важно для поддержания актуальности списков заблокированных ресурсов.
Импорт и экспорт профилей: ссылки happ://routing
Профили маршрутизации можно передавать между устройствами с помощью специальных ссылок. Формат ссылки: happ://routing/add/{base64} — добавляет профиль в список, но не активирует его. Ссылка happ://routing/onadd/{base64} добавляет и сразу активирует профиль. Также есть команда happ://routing/off, которая отключает маршрутизацию.
Base64-часть — это JSON-профиль, закодированный в текстовый формат. Ссылку можно передать через HTTP-заголовок routing или вставить в тело подписки. При импорте профиль привязывается к подписке, в которой он пришёл.
Экспорт профиля выполняется через интерфейс приложения: в разделе маршрутизации у профиля есть кнопка «Поделиться» или «Экспорт», которая генерирует ссылку или файл. Это удобно для переноса настроек на второе устройство или для передачи коллеге.
Важно: для JSON-подписок действуют ограничения — профиль маршрутизации не может быть добавлен вручную, он приходит только вместе с подпиской. Это предотвращает рассинхронизацию настроек с провайдером.
Готовые профили для России: практические примеры
Для пользователей из России разработчики Happ предлагают несколько готовых профилей, которые решают типичные задачи.
P1 «Россия напрямую» — базовый профиль: российские сайты (банки, госуслуги, маркетплейсы) идут напрямую, всё остальное — через туннель. Включает правила для зон .ru, .su, .рф, а также для Яндекс, VK, Ozon, Wildberries и других. Подходит для большинства пользователей.
P2 «Россия и игры» — дополняет первый профиль прямым доступом к игровым сервисам (Steam, Epic Games, Riot) и обновлениям Windows/Apple. Полезен для геймеров, чтобы не терять пинг в матчах.
P3 «Только банки и госуслуги» — обратный подход: напрямую идут только банки, госсервисы и домашняя сеть, весь остальной трафик — через туннель. Подходит для максимальной приватности.
P4 «Точный список блокировок» — использует списки РКН, чтобы направлять в туннель только реально заблокированные ресурсы, даже если они имеют .ru-домен. При этом сервисы, доступные только из России, остаются напрямую.
P5 «Всё через туннель» — возврат к исходному состоянию: весь трафик идёт через туннель, кроме локальной сети. Полезен для сброса настроек.
Эти профили можно установить одной кнопкой с сайта, они содержат готовые JSON-конфигурации и подходят для iPhone и Android.
Продвинутые настройки: DomainStrategy, UseChunkFiles, RouteOrder
Для тонкой настройки маршрутизации в Happ доступны несколько продвинутых параметров.
DomainStrategy определяет, как Xray сопоставляет домены с IP-правилами:
AsIs— домен передаётся «как есть», без резолва. Быстро, но может не сработать для IP-правил.IPIfNonMatch— сначала проверяются доменные правила, и только если ни одно не подошло, выполняется DNS-запрос для проверки по IP. Это оптимальный баланс скорости и точности.IPOnDemand— домен всегда резолвится в IP перед проверкой правил. Точнее, но медленнее.
UseChunkFiles — оптимизация геофайлов: из баз вырезаются ненужные секции, и ядру передаются урезанные файлы. Это особенно важно для iOS, где есть ограничение памяти в 50 МБ. Нарезка выполняется автоматически при сохранении профиля или после обновления геофайлов.
RouteOrder — порядок проверки правил. По умолчанию block-proxy-direct, но можно изменить, например, на direct-proxy-block, если нужно приоритизировать прямые подключения.
Эти параметры позволяют адаптировать маршрутизацию под конкретные сценарии, например, для слабых устройств или специфических сетей.
Ограничения и особенности работы с JSON-подписками
При использовании JSON-подписок (Restricted Mode) Happ вводит жёсткие ограничения на управление профилями маршрутизации:
- У JSON-подписки может быть строго 0 или 1 профиль маршрутизации.
- Профиль не может быть создан вручную, скопирован или импортирован из буфера обмена — он приходит только вместе с подпиской от провайдера.
- Пользователь не может отключить или изменить профиль: главный тогл маршрутизации заблокирован, изменение имени, ссылок и геофайлов недоступно.
Это сделано для предотвращения рассинхронизации настроек с метаданными провайдера. Однако поля Tunnel DNS (ранее Remote DNS) остаются доступными для локальной настройки системного туннеля, но не инжектируются в JSON-файл провайдера.
Если вы используете JSON-подписку, убедитесь, что в профиле маршрутизации созданы те же теги, что и в JSON-конфигурации, иначе нарезка секций может работать некорректно.
Как выбрать подходящий профиль маршрутизации
Выбор профиля зависит от ваших задач и условий использования.
Для повседневного использования в России оптимален профиль «Россия напрямую»: он обеспечивает стабильный доступ к банкам и госуслугам, а остальной трафик идёт через туннель. Это снижает риск блокировок и капчи.
Для игр выбирайте профиль «Россия и игры» — он добавляет прямые подключения к игровым серверам, что снижает пинг. Также он блокирует рекламу и телеметрию.
Для максимальной приватности подойдёт профиль «Только банки и госуслуги» — почти весь трафик идёт через туннель, что скрывает вашу активность от провайдера.
Если вы часто путешествуете или используете общественные Wi-Fi, лучше выбрать профиль «Всё через туннель» — он защищает весь трафик, но может вызвать проблемы с локальными сервисами.
При выборе учитывайте, что профили с большим количеством правил (например, «Точный список блокировок») требуют больше ресурсов устройства и могут замедлять работу на слабых устройствах. Начните с базового профиля и при необходимости настройте его под себя.
Вопросы и ответы
Как добавить профиль маршрутизации в Happ?
Профиль можно добавить несколькими способами:
- Через ссылку вида
happ://routing/add/{base64}— она добавляет профиль в список, но не активирует его. Ссылкаhapp://routing/onadd/{base64}добавляет и сразу активирует. - Через HTTP-заголовок
routingили тело подписки — профиль привязывается к подписке автоматически. - Вручную через интерфейс приложения, если это не JSON-подписка.
После добавления профиль появится в разделе маршрутизации. Изменения применяются только после переподключения соединения (Reconnect).
Что такое геофайлы GeoIP и GeoSite?
Геофайлы — это базы данных, содержащие списки IP-адресов (GeoIP) и доменов (GeoSite), сгруппированных по категориям. Например, geoip:ru — все IP-адреса России, geosite:telegram — домены Telegram. Happ использует их для сопоставления правил маршрутизации с реальными ресурсами. Базы обновляются автоматически через параметр LastUpdated или вручную.
Почему банки и госуслуги нужно выводить из туннеля?
Многие российские банки и госуслуги (например, Сбербанк, Госуслуги) определяют местоположение пользователя по IP-адресу. Если трафик идёт через зарубежный VPN-сервер, сервисы могут заподозрить мошенничество, потребовать дополнительную верификацию или вовсе заблокировать доступ. Вывод этих ресурсов в direct-правила позволяет сохранить обычный доступ без отключения VPN.
Как экспортировать профиль маршрутизации на другое устройство?
В разделе маршрутизации у профиля есть кнопка «Поделиться» или «Экспорт». Она генерирует ссылку вида happ://routing/add/... или файл. Ссылку можно отправить на другое устройство, открыть её в Happ — профиль импортируется. Обратите внимание: если страница открыта на компьютере, телефон профиль не получит — ссылку нужно открыть именно на целевом устройстве.
Что делать, если после установки профиля перестали работать некоторые сайты?
Проверьте, какие правила в профиле относятся к этим сайтам. Возможно, они попали в block-список или не попали в direct/proxy. Попробуйте:
- Переключиться на другой профиль (например, «Россия напрямую»).
- Вручную добавить нужный домен в DirectSites или ProxySites.
- Убедиться, что DNS-настройки корректны (попробуйте сменить DomesticDNSIP).
Если проблема не решается, сбросьте маршрутизацию через профиль «Всё через туннель».
Влияет ли маршрутизация на скорость VPN?
Да, влияет. Если большая часть трафика идёт через туннель, скорость ограничена пропускной способностью VPN-сервера. Вывод ресурсов в direct-правила (например, российских сайтов) снижает нагрузку на туннель и ускоряет доступ к ним. Однако слишком много direct-правил может снизить приватность. Оптимальный баланс — использовать готовые профили, например «Россия напрямую».
Можно ли создать свой профиль маршрутизации с нуля?
Да, если вы используете не JSON-подписку. В интерфейсе Happ можно создать новый профиль и заполнить правила вручную или через визуальный редактор на сайте routing.happ.su. Также можно импортировать JSON-конфигурацию через ссылку. Для JSON-подписок создание профилей вручную заблокировано — они приходят только от провайдера.