Happ VPN

Как пустить через Happ только выбранные приложения на Android

Автор
Екатерина Лебедева, редактор раздела knowledge base
Проверил:
Артём Волков
Проверено:
Опубликовано:
, обновлено
Версия гайда:
1.0

Коротко

Чтобы на Android пустить через Happ только часть приложений, нужен параметр подписки per-app-proxy-mode со списком пакетов per-app-proxy-list — документация описывает его как настройку, которую провайдер задаёт через Provider ID, а не как переключатель в обычных настройках.

Per-app proxy на Android в Happ работает через параметры подписки: per-app-proxy-mode со значениями off, on или bypass задаёт общий режим, а per-app-proxy-list, per-app-proxy-list-invert или per-app-proxy-list-set — список конкретных приложений по идентификатору пакета Android, например com.google.chrome. Документация относит эти параметры к разделу управления приложением через подписку, для которого провайдеру нужен Provider ID, поэтому обычному подписчику часто нужно обращаться к провайдеру, а не искать переключатель самостоятельно. Если вы сами управляете подпиской и у неё есть Provider ID, эти параметры можно передать HTTP-заголовком ответа сервера подписки или строкой в её теле.

Как эта функция устроена в Happ

Per-app proxy на Android в Happ — это не отдельный переключатель в обычных настройках, а параметр, который провайдер передаёт вместе с подпиской. Документация описывает его в разделе управления приложением через подписку, для которого нужен Provider ID.

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

Задача решается на уровне пакетов Android, а не доменов: VPN получает или не получает трафик конкретного приложения целиком, независимо от того, к каким адресам оно обращается.

Как настроить

  1. Решите, какой режим нужен

    on ограничивает VPN списком приложений, bypass — наоборот, исключает список из VPN, оставляя остальные под туннелем.

    Результат: Вы можете сформулировать: только эти приложения через VPN (on) или все, кроме этих (bypass).

  2. Соберите список приложений

    Проще всего взглянуть на ссылку карточки приложения в Google Play — идентификатор указан там после id=.

    Результат: У вас есть точные идентификаторы пакетов нужных приложений, например com.google.chrome.

  3. Определите, кто настраивает параметр — вы или провайдер

    Результат: Понятно, нужно ли обращаться к провайдеру или у вас есть Provider ID для собственной подписки.

  4. Если вы подписчик — обратитесь к провайдеру

    Сообщите ему нужный режим и список идентификаторов пакетов — дальше настройка происходит на его стороне.

    Результат: Провайдер подтвердил, что применил per-app-proxy-mode и список для вашей подписки.

  5. Если вы управляете подпиской — добавьте параметры

    Формат такой же, как у других расширенных параметров: заголовок ответа сервера подписки или строка с # в начале её тела.

    Результат: Параметры per-app-proxy-mode и per-app-proxy-list переданы в HTTP-заголовке или в теле подписки.

  6. Обновите подписку в приложении на Android

    Результат: Happ запросил у сервера подписки актуальные параметры.

  7. Переподключитесь к серверу

    Результат: VPN-соединение установлено заново с новыми параметрами.

  8. Проверьте поведение конкретного приложения

    Откройте приложение из списка и сравните его сетевое поведение — например, определяемый по нему внешний адрес — с приложением, которого в списке нет.

    Результат: Приложение из списка ведёт себя так, как задано режимом on или bypass.

Пример параметров подписки

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

Текст
per-app-proxy-mode: on
per-app-proxy-list: com.google.chrome,com.meta.instagram

Обратный вариант — все приложения через VPN, кроме перечисленных:

Текст
per-app-proxy-mode: bypass
per-app-proxy-list: com.example.banking

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

Отличия по платформам

ПлатформаПоддержка per-app proxy
AndroidОписана в документации: per-app-proxy-mode и списки приложений по идентификатору пакета
Android TVТо же приложение, что на Android, но отдельно для TV документация функцию не описывает
iOSНе описана: выбор трафика по конкретным приложениям для обычных приложений App Store ограничен самой Apple
Windows, macOS, LinuxНе описана: похожую задачу решают через раздельное туннелирование по доменам и IP в профиле маршрутизации
Apple TVНе описана и не применима — на этой платформе нет даже полноценных профилей маршрутизации

Проверка результата

  • Провайдер подтвердил применение per-app-proxy-mode и списка приложений либо вы сами передали эти параметры со своим Provider ID.
  • Подписка на Android обновлена после изменения параметров.
  • Устройство переподключено к серверу после обновления.
  • Приложение из списка ведёт себя согласно выбранному режиму — on или bypass.
  • Приложение, не входящее в список, ведёт себя противоположным образом.

Если поведение не изменилось

Что видноВозможная причинаГде разбор
Все приложения ведут себя одинаковоПровайдер не применил параметр или подписка не обновленаОбновление подписки
Приложение из списка не работает вовсеНеверный идентификатор пакета в спискеКонфигурация не валидная
Изменения не видны после правки заголовковЗабыто переподключение — режим применяется к активному VPN-соединениюTUN-режим
Работало раньше, перестало после обновления приложения из спискаИзменился идентификатор пакета у обновлённой версии—

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

Главное

  • Per-app proxy на Android в Happ настраивается параметром per-app-proxy-mode (off, on, bypass) и списком приложений в per-app-proxy-list.
  • Эти параметры входят в раздел управления приложением через подписку и требуют Provider ID — обычный подписчик не находит для них отдельного пункта в настройках.
  • Список приложений задаётся идентификаторами пакетов Android через запятую, например com.google.chrome,com.meta.instagram.
  • Если приложение из списка ещё не установлено на устройстве, Happ учтёт его автоматически при первом подключении к VPN после установки.
  • Документация не описывает такую функцию для iOS, Windows, macOS и Linux — там для похожей задачи используют раздельное туннелирование по доменам и IP в профиле маршрутизации.

Частые вопросы

Как узнать идентификатор пакета Android-приложения для списка per-app-proxy-list?

Проще всего найти приложение в Google Play через браузер и посмотреть адрес страницы: после `id=` в ссылке указан именно идентификатор пакета, например com.google.android.youtube. Также на самом устройстве в «Настройках» → «Приложения» у карточки приложения иногда показывается техническое имя пакета — оно совпадает с тем, что нужно вписать в список.

Я обычный подписчик, а не владелец сервера подписки — что мне делать?

Сами вы такой список в интерфейсе Happ не находите, потому что параметр относится к настройкам, которые провайдер передаёт через подписку с Provider ID. Обратитесь к провайдеру, назовите режим (on или bypass) и список идентификаторов пакетов нужных приложений — дальше это его сторона настройки, а не ваша.

Как включить per-app proxy, если я сам управляю подпиской с Provider ID?

Добавьте параметры per-app-proxy-mode и per-app-proxy-list (или per-app-proxy-list-invert, per-app-proxy-list-set) в HTTP-заголовки ответа сервера подписки либо строками с символом # в начале её тела — так же, как остальные расширенные параметры Happ. После следующего обновления подписки настройка применится у подписчиков на Android.

Сработает ли правило, если приложение переустановили с обновлённой версией?

Да, если идентификатор пакета не изменился — а при обычном обновлении через Google Play он остаётся тем же. Правило перестанет работать только если разработчик выпустит приложение под другим идентификатором пакета: тогда старое значение в списке будет указывать на уже не тот пакет, и список нужно будет обновить.

Чем per-app-proxy-list отличается от per-app-proxy-list-invert на практике?

per-app-proxy-list применяет режим on или bypass именно к перечисленным приложениям. per-app-proxy-list-invert делает наоборот — выбирает все приложения, кроме указанных в списке. Через bypass с обычным списком можно исключить пару приложений из VPN, а через bypass с invert-списком — оставить в VPN только пару приложений, пропустив мимо всё остальное.

Нужен ли включённый TUN, чтобы per-app proxy на Android заработал?

Да, по смыслу функции: per-app-proxy-mode решает, какие приложения используют активный VPN-туннель Android, а какие обращаются к сети напрямую. Без установленного и включённого туннеля нет самого VPN-соединения, которое можно было бы выборочно применять к части приложений.

Работает ли per-app proxy так же на Android TV, как на обычном Android?

Приложение на Android TV использует тот же код, что и на Android, но документация отдельно для Android TV эту функцию не описывает, а список установленных приложений на телевизоре обычно короче, чем на телефоне. Прежде чем настраивать список на Android TV, стоит уточнить у провайдера, тестировал ли он этот параметр именно на этой платформе.

Упомянутые темы

Разделы по теме

Источники

  1. Документация Happ: управление настройками приложения — обращение 28 сентября 2026
  2. Документация Happ: Provider ID — обращение 28 сентября 2026