Что такое маршрутизация и зачем она нужна
Маршрутизация в VPN-клиенте определяет, какой трафик идёт через туннель, а какой — напрямую с вашего устройства. Без неё всё соединение уходит на прокси-сервер, что может вызывать проблемы с сервисами, которые ориентируются на ваше реальное местоположение. Например, банковские приложения, госуслуги и маркетплейсы часто блокируют доступ или требуют дополнительную проверку, если видят иностранный IP-адрес.
В Happ маршрутизация реализована через профили — наборы правил, которые распределяют трафик по категориям: прямое подключение (direct), прокси (proxy) и блокировка (block). Профили можно создавать вручную, импортировать по ссылке или использовать готовые наборы. Это позволяет гибко настроить поведение приложения под конкретные задачи: например, оставить российские сайты на домашнем адресе, а остальной трафик пустить через туннель.
Понимание маршрутизации важно не только для обхода блокировок, но и для безопасности: правильные правила предотвращают утечку данных, когда чувствительные запросы уходят напрямую, и снижают нагрузку на прокси-сервер, ускоряя доступ к локальным ресурсам.
Как устроены профили маршрутизации в Happ
Профиль маршрутизации — это JSON-структура, содержащая параметры, которые определяют логику обработки трафика. Основные элементы:
- Name — имя профиля для идентификации в интерфейсе.
- GlobalProxy — глобальный режим: если
true, весь трафик по умолчанию идёт через прокси; еслиfalse— напрямую. - RouteOrder — порядок проверки правил: например,
block-proxy-directозначает, что сначала проверяются блокировки, затем прокси, потом direct. - DirectSites / DirectIp — списки доменов и IP-адресов, которые идут напрямую.
- ProxySites / ProxyIp — списки для туннелирования.
- BlockSites / BlockIp — списки блокируемых ресурсов (реклама, трекеры).
- DNS-настройки — разделение на локальный (Domestic) и удалённый (Remote) DNS.
- DomainStrategy — стратегия сопоставления доменов с IP-правилами.
- UseChunkFiles — оптимизация геофайлов для экономии памяти.
Профили привязываются к конкретной подписке, а не к приложению целиком. Это значит, что если у вас несколько подписок, каждая может иметь свой набор правил. Изменения в профиле применяются только после перезапуска соединения (Reconnect).
Пример базового профиля включает стандартные DNS-серверы (Cloudflare и Google), списки частных IP-диапазонов и пустые списки исключений. Пользователь может редактировать эти параметры через интерфейс или импортировать готовый JSON.
Готовые профили: обзор пяти популярных наборов
Для быстрой настройки Happ предлагает готовые профили, которые можно установить одной ссылкой. Вот основные варианты:
- Россия напрямую — российские сайты (домены .ru, .su, .рф, а также банки, госуслуги, маркетплейсы) идут напрямую, всё остальное — через туннель. Это самый сбалансированный вариант для большинства пользователей.
- Россия и игры — дополнительно выводит напрямую игровые сервисы (Steam, Epic Games, Riot) и системные обновления Windows/Apple, а также блокирует рекламу и трекеры.
- Только банки и госуслуги — максимальная приватность: в туннель уходит почти весь трафик, включая .ru-сайты, но банковские и государственные сервисы остаются напрямую.
- Точный список блокировок — использует списки РКН: в туннель идёт только реально заблокированное, даже если это .ru-домен, а сервисы, требующие российский IP, остаются напрямую.
- Всё через туннель — возврат к исходному состоянию: весь трафик через прокси, кроме локальной сети.
Каждый профиль имеет разный размер гео-баз: от 0,5 МБ до 4,7 МБ. Лёгкие базы подходят для слабых устройств, тяжёлые — для точной фильтрации. Выбор зависит от ваших задач: если нужен доступ к российским сервисам без капчи — первый вариант, если важна приватность — третий.
Настройка DNS в профилях маршрутизации
DNS-конфигурация в Happ разделяет запросы на локальные (Domestic) и удалённые (Remote). Локальный DNS используется для ресурсов, которые идут напрямую, удалённый — для проксируемого трафика. Это позволяет ускорить отклик и избежать утечек.
Основные параметры:
- RemoteDNSType — протокол для удалённого DNS: DoH (DNS over HTTPS) или DoU (DNS over UDP). По умолчанию используется DoH с адресом
https://cloudflare-dns.com/dns-query. - RemoteDNSIP — статический IP удалённого DNS-сервера (например, 1.1.1.1).
- DomesticDNSType — протокол для локального DNS, часто DoU с IP 77.88.8.8 (Яндекс DNS).
- DnsHosts — ручные соответствия «домен: IP», работающие как системный файл hosts.
- FakeDNS — подмена реальных IP-адресов виртуальными, чтобы все запросы шли через Xray и не перехватывались системным DNS.
Правильная настройка DNS критична для безопасности: если DNS-запросы уходят напрямую, они могут быть перехвачены или подменены. Использование DoH шифрует запросы, а FakeDNS гарантирует, что весь трафик обрабатывается строго по правилам маршрутизации.
Импорт и экспорт профилей: ссылки, файлы и JSON
Профили маршрутизации можно импортировать несколькими способами:
- По ссылке — специальные ссылки вида
happ://routing/add/{base64}открывают Happ и добавляют профиль. Ссылкаhapp://routing/onadd/{base64}дополнительно активирует профиль сразу. - Из файла — экспортированный JSON-файл можно импортировать через интерфейс.
- Вручную — вставить JSON в редактор профилей.
Экспорт профиля доступен через кнопку «Поделиться» или «Экспорт» в разделе маршрутизации. Это удобно для переноса настроек на другое устройство или для резервного копирования.
Важно: при импорте профиля с уже существующим именем происходит обновление, а не создание дубликата. Если профиль привязан к подписке, он наследует её правила. Для JSON-подписок действуют ограничения: профиль может быть только один, и он приходит от провайдера — вручную его не изменить.
Продвинутые параметры: DomainStrategy и оптимизация геофайлов
DomainStrategy определяет, как Xray сопоставляет домены с IP-правилами:
- AsIs — домен передаётся «как есть», без DNS-резолва на этапе маршрутизации.
- IPIfNonMatch — сначала проверяются доменные правила, если совпадения нет — выполняется DNS-запрос и проверка по IP.
- IPOnDemand — домен всегда резолвится в IP перед проверкой правил.
Выбор стратегии влияет на скорость и точность маршрутизации. IPIfNonMatch — хороший компромисс, но IPOnDemand может замедлить обработку из-за лишних DNS-запросов.
UseChunkFiles — функция, которая вырезает из геофайлов (geoip.dat, geosite.dat) только нужные секции и передаёт ядру урезанные версии. Это критично для iOS, где ограничение памяти составляет 50 МБ. Оптимизация происходит автоматически при сохранении профиля, после загрузки геофайлов или при изменении правил.
Важно: если вы используете JSON-подписку, нарезка секций выполняется на основе профиля маршрутизации, а не JSON-конфигурации. Убедитесь, что теги в профиле совпадают с тегами в JSON.
Как проверить, что правило работает, и что делать при ошибках
После настройки профиля важно убедиться, что правила применяются корректно. Простой способ — открыть сайт, который должен идти напрямую (например, госуслуги), и проверить, что он загружается без капчи и с вашим реальным IP. Для сайтов через туннель можно использовать сервисы определения IP — они должны показывать адрес прокси-сервера.
Если что-то не работает, проверьте:
- Активен ли профиль (в списке профилей должен быть переключатель).
- Привязан ли профиль к правильной подписке.
- Перезапущено ли соединение после изменений.
- Не блокирует ли профиль нужный ресурс (проверьте списки BlockSites).
При ошибках загрузки геофайлов (например, если загрузка не завершилась за 3 минуты) на главном экране появляется сообщение, а рядом с профилем — красный восклицательный знак. Проблема исчезает после удаления проблемного профиля или успешной повторной загрузки.
Частые ошибки при настройке маршрутизации
Одна из распространённых ошибок — использование профиля из случайного источника. Чужие правила могут отправлять нужные сервисы не туда, и вы будете искать проблему в приложении, хотя дело в профиле. Всегда проверяйте JSON перед импортом.
Другая ошибка — забыть перезапустить соединение после изменения настроек. В Happ изменения применяются только после Reconnect, иначе старые правила продолжают действовать.
Также пользователи часто путают порядок правил. RouteOrder определяет приоритет: если блокировка стоит первой, она может перекрыть прокси-правило. Убедитесь, что порядок соответствует вашим намерениям.
Наконец, не забывайте про ограничения JSON-подписок: в них нельзя вручную добавить или изменить профиль маршрутизации — он приходит только от провайдера. Попытка обойти это может привести к рассинхронизации настроек.
Практические сценарии использования профилей
Рассмотрим несколько типичных ситуаций:
- Домашний интернет: профиль «Россия напрямую» — банки и госуслуги работают без проблем, а YouTube и Telegram идут через туннель для обхода блокировок.
- Игровой компьютер: профиль «Россия и игры» — пинг в Steam и других играх остаётся низким, так как игровой трафик идёт напрямую, а реклама блокируется.
- Поездка за границу: профиль «Только банки и госуслуги» — сохраняется доступ к российским банковским приложениям, а остальной трафик идёт через туннель для приватности.
- Корпоративная сеть: можно создать свой профиль с исключениями для рабочих сервисов, чтобы они не шли через прокси.
В каждом случае важно тестировать профиль и при необходимости корректировать списки. Готовые профили — хорошая отправная точка, но идеальная конфигурация зависит от ваших потребностей.
Ограничения и особенности работы с JSON-подписками
Для JSON-конфигураций в Happ действует Restricted Mode, который предотвращает рассинхронизацию с метаданными провайдера. Основные ограничения:
- У JSON-подписки может быть только 0 или 1 профиль маршрутизации.
- Профиль нельзя создать вручную, скопировать или импортировать — он приходит только вместе с подпиской.
- Пользователь не может отключить или изменить профиль: главный тогл маршрутизации заблокирован, а изменение имени, ссылок и геофайлов запрещено.
- Поля Remote DNS переименованы в Tunnel DNS и используются локально для настройки системного туннеля, не влияя на сам JSON-файл.
Эти ограничения защищают от ошибок, но снижают гибкость. Если вам нужна полная свобода настройки, используйте обычные подписки, а не JSON-конфигурации.
Вопросы и ответы
Что такое профиль маршрутизации в Happ?
Профиль маршрутизации — это набор правил, которые определяют, какой трафик идёт через прокси, а какой напрямую. Он включает списки сайтов и IP-адресов для direct, proxy и block, а также DNS-настройки. Профили можно создавать, импортировать и переключать в зависимости от ситуации.
Как установить готовый профиль маршрутизации?
Готовые профили устанавливаются по ссылке вида happ://routing/add/... или через импорт JSON. Нажмите кнопку «Установить профиль» на сайте, и Happ откроется с диалогом импорта. Профиль привяжется к активной подписке. После импорта перезапустите соединение, чтобы правила применились.
Почему после настройки маршрутизации не работает интернет?
Возможные причины: профиль не привязан к нужной подписке, соединение не перезапущено, или в профиле есть блокирующее правило. Проверьте активность профиля, перезапустите соединение и убедитесь, что нужные сайты не попали в BlockSites. Также проверьте, что у вас есть рабочий доступ — маршрутизация не выдаёт интернет, а только распределяет трафик.
В чём разница между локальным и удалённым DNS?
Локальный DNS (Domestic) используется для запросов к ресурсам, которые идут напрямую, а удалённый (Remote) — для проксируемого трафика. Это позволяет ускорить отклик и избежать утечек DNS-запросов. Обычно локальный DNS — это сервер вашего провайдера или Яндекс, а удалённый — Cloudflare или Google.
Можно ли изменить профиль маршрутизации в JSON-подписке?
Нет, в JSON-подписках действует Restricted Mode: профиль приходит только от провайдера, и вы не можете его изменить, отключить или создать новый. Это ограничение предотвращает рассинхронизацию настроек. Если нужна гибкость, используйте обычные подписки.
Как экспортировать профиль маршрутизации для переноса на другое устройство?
В разделе маршрутизации выберите профиль и нажмите «Поделиться» или «Экспорт». Вы получите файл или ссылку вида happ://routing/add/.... Передайте её на другое устройство, и Happ импортирует профиль. Убедитесь, что на новом устройстве есть подписка, к которой профиль будет привязан.