Что такое маршрутизация и зачем она нужна
Маршрутизация в 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— любое имя, например «Мой профиль».GlobalProxy—trueили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— для блокировки.
Продвинутые параметры:
DomainStrategy—AsIs,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, а DirectIp — geoip: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: Максимальная приватность. Выведите из туннеля только банки и госуслуги: DirectSites — geosite: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 в профиле или вручную.