Управление приложением

Управляйте настройками приложения через подписку

Функционал управление приложения включает два направления:

Чтобы активировать параметр, передайте значение true или 1 ; чтобы отключить — любое другое непустое значение (например, 0 или false).

Стандартные параметры

Автообновление подписки

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

Пример настройки данного параметра:

profile-update-interval: [int]

Способы передачи:

Через HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-update-interval: 1
Через тело подписки:
#profile-update-interval: 1
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
Имя подписки

Название профиля подписки. Может быть передано как plain text или в base64 (UTF-8). Ограничение: Максимальная длина — 25 символов.

Через тело подписки, указав перед параметром знак # (например #profile-title)

Пример настройки данного параметра:

profile-title: [string]

Способы передачи:

Через HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-title: Name VPN
Через тело подписки:
#profile-title: Name VPN
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
Строка состояния подписки (трафик, дата истечения)

Отображается информация о балансе, объёме использованного трафика и сроке действия подписки. В приложении левой части шкалы показано количество израсходованного трафика (upload + download), а в правой — общий объём (total) после символа «/». Дата окончания подписки указывается в параметре expire. Примечание: все данные передаются в одном заголовке и разделяются символом ;

Пример настройки данного параметра:

subscription-userinfo: [string]

Способы передачи:

Через HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622
Через тело подписки:
№subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
Ссылка на страницу поддержки

Кнопка для перехода на страницу поддержки. Отображается в виде синей иконки, расположенной в правой части строки. Если ссылка ведёт в Telegram, отображается иконка Telegram; в остальных случаях используется стандартная иконка ссылки.

Пример настройки данного параметра:

support-url: [string]

Способы передачи:

Через HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
support-url: https://t.me/happ_chat
Через тело подписки:
#support-url: https://t.me/happ_chat
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
Ссылка на страницу сайта

Кнопка для перехода на страницу сайта подписки. Отображается в виде синей иконки, расположенной в левой части строки. Если параметр не задан иконка будет серого цвета

Пример настройки данного параметра:

Способы передачи:

Объявление

Подписка может содержать текст объявления, передаваемый в формате plain text или Base64. Ограничение: максимальная длина отображаемого текста — 200 символов.

Пример настройки данного параметра:

Способы передачи:

Отключение маршрутизации

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

Пример настройки данного параметра:

Способы передачи:

Конфигурация туннеля (только для Desktop)

Передавайте собственную конфигурацию туннеля для ядра sing-box

Пример настройки данного параметра:

Способы передачи:

Расширенные параметры

Смена URL подписки

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

Пример настройки данного параметра:

Способы передачи:

Смена домена подписки

Изменение домена сайта без смены полного URL, сохраняя остальную часть адреса.

Пример настройки данного параметра:

Способы передачи:

Описание сервера в подписке

Позволяет задать дополнительную подпись, которая отображается под названием сервера вместо стандартного текста (например, "VMess", "VLESS", "Trojan").

  • Максимальная длина — 30 символов.

  • Если не помещается на экран, будет сокращена с троеточием.

  • Задаётся после title через разделитель ?.

Примеры:

Расширенные объявления

Более заметные обьявления. Делятся на два типа: произвольный информационный текст (sub-info) и системное уведомление об окончании подписки (sub-expire).

Уведомления об истечении подписки имеют приоритет и отображаются автоматически за 3 дня до окончания или после истечения. Информационный блок показывается только при отсутствии активного expire-сообщения.

Оба механизма можно явно отключить через http headers. Если параметры были переданы и не отменены, они остаются активными до удаления подписки.

Логика отображения (summary)

Примечания

Способы передачи:

Фрагментация и фронтинг подписки

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

Например, указав адрес подключения visa.com, а в заголовке Host — my-domain.com, провайдер увидит только запрос к visa.com.

Также вы можете обращаться к своему домену за списком серверов, используя фрагментацию пакетов в SNI TLSHello.

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

Схема URL c параметрами

Фрагментация содержит три параметра: [length], [interval] и [packets].

При использовании фронтинга необходимо сначала указать URL с доменом, через который будет осуществляться соединение. Также требуется задать resolve-address — это может быть домен или IP-адрес — и host, соответствующий вашему хосту в сети выбранного провайдера.

Advanced fragmentation

Данная функция пока что проходит закрытое тестирование и скоро будет доступна...

Неотключаемый HWID

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

Пример настройки данного параметра:

Способы передачи:

Уведомление об окончании подписки

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

Текст уведомления:

Пример настройки данного параметра:

Способы передачи:

Скрыть настройки серверов в подписке

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

Пример настройки данного параметра:

Способы передачи:

Резолвинг доменов

Приложение может выполнять предварительное резолвинг доменов серверов ещё до установления подключения. Вы можете указать любой DoH-сервер, и при соединении с сервером Xray доменное имя будет заменено на полученный IP-адрес.

Если для домена возвращается несколько IP-адресов, приложение автоматически выберет тот, у которого минимальное время отклика (ping). Однако стоит учитывать: при большом количестве IP-адресов подключение может занять больше времени, так как все варианты будут протестированы заранее.

Пример настройки данного параметра:

Способы передачи:

Управление настройками приложения

Автоподключение

Позволяет автоматически подключать пользователя к серверам при запуске приложения. Дополнительно, с помощью параметра subscription-autoconnect можно указать критерий для подключения к определенному серверу.

Пример настройки данного параметра:

Способы передачи:

Автопинг

Запускайте автоматическое тестирование списка серверов при открытии приложения если это необходимо.

Пример настройки данного параметра:

Способы передачи:

Автообновление подписок

В приложении можно включать или отключать автообновление сразу для всех подписок — эта настройка применяется ко всем подпискам одновременно. Если же нужно задать автообновление только для конкретной подписки, воспользуйтесь функционалом Автообновление подписки. При отключении глобальной настройки каждая подписка самостоятельно определяет своё время обновления.

Пример настройки данного параметра:

Способы передачи:

Фрагментация

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

Пример настройки данного параметра:

Способы передачи:

Пинг

Эта функция позволяет выбрать способ выполнения пинга в приложении. Доступны три варианта: «via Proxy», «TCP» и «ICMP». Для режима «via Proxy» можно дополнительно указать URL для проверки пинга.

Пример настройки данного параметра:

Способы передачи:

User-Agent

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

Пример настройки данного параметра:

Способы передачи:

Автозапуск приложения

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

Пример настройки данного параметра:

Способы передачи:

Обновление подписки при запуске приложения

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

Пример настройки данного параметра:

Способы передачи:

Прокси для выбранных приложений (Android)

В этом параметре можно указать список приложений, которые должны использовать VPN или, наоборот, обходить его. Если приложение ещё не установлено на устройстве, но указано в списке, оно будет автоматически учтено при первом подключении к VPN после установки.

Пример настройки данного параметра:

Способы передачи:

Анализ пакетов (Sniffing)

В xray-core sniffing нужен, чтобы анализировать первые пакеты соединения и автоматически определять протокол (HTTP, TLS, BitTorrent и т.д.) и домен (SNI/Host). Может влиять на загрузку медиа в приложении WeChat. По умолчанию включен.

Пример настройки данного параметра:

Способы передачи:

Запрет сворачивания подписок

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

Пример настройки данного параметра:

Способы передачи:

Режим отображения пинга

Позволяет отобразить иконки вместо временных значений

Пример настройки данного параметра:

Способы передачи:

Mux

Mux в xray-core — это функция мультиплексирования (multiplexing), которая позволяет передавать данные нескольких виртуальных TCP-соединений через одно физическое TCP-соединение. Она предназначена для снижения задержек от TCP-handshake, но не для повышения пропускной способности (может даже замедлить большие загрузки). Настраивается в outbound-конфигурации с параметрами вроде enabled и concurrency (min -1 max 1024).

Пример настройки данного параметра:

Способы передачи:

Режим Proxy \ TUN (только для Desktop)

Необходимо использовать только один из двух перечисленных параметров! Эти параметры определяют тип подключения при добавлении\обновлении подписки.

Пример настройки данного параметра:

Способы передачи:

Режим TUN (только для Desktop)

Определяет какой режим будет использоваться для TUN подключения.

  • system — использует системный сетевой стек ОС. Быстро и эффективно, но зависит от корректной настройки маршрутов и файрвола .

  • gvisor — пользовательский стек gVisor (userspace). Меньше зависимостей от правил ядра и конфликтов с iptables/nftables/Docker, лучше изоляция; возможен небольшой минус к производительности.

Пример настройки данного параметра:

Способы передачи:

Выбор ядра туннеля (только для Desktop)

Определяет какое ядро будет использоваться для TUN подключения. Для выбора доступно sing-box, tun2proxy

Пример настройки данного параметра:

Способы передачи:

Exclude routes

Определяет перечень подсетей и IP-адресов, трафик которых не должен проходить через туннель. Адреса указываются в одной строке, разделяя их пробелами и запятыми.

Пример настройки данного параметра:

Способы передачи:

Темы (только iOS)

Позволяет изменить цветовую тему на персональную. Собственную тему можно создать в редакторе — удерживайте надпись «Тема оформления» для вызова меню. Созданную тему можно экспортировать в буфер обмена, а также импортировать из буфера, из файла .happ или передать через подписку.

Пример настройки данного параметра:

Способы передачи:

Last updated