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

Параметры для управления поведением приложения через HTTP-заголовки подписки и строки в теле ответа.

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

Все параметры можно передавать двумя способами:

1. HTTP-заголовок:

HTTP/2 200
profile-title: Мой VPN
support-url: https://t.me/support

2. Строка в теле подписки (комментарий с #):

#profile-title: Мой VPN
#support-url: https://t.me/support
#profile-update-interval: 6
#announce: Текст объявления
vless://...

Приоритет: HTTP-заголовки имеют приоритет. Строки в теле подписки используются как fallback, когда соответствующий заголовок отсутствует. Это особенно полезно при раздаче подписок через статические файлы (nginx), где нет возможности задать кастомные HTTP-заголовки.


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

Имя подписки

Название профиля подписки. Максимум 25 символов. Можно передавать как текст или base64 (UTF-8).

Заголовок:

В теле подписки:

Base64 с описанием (первая строка — имя, остальные — описание):

Альтернативные заголовки (fallback, если profile-title отсутствует):

  • subscription-name — альтернативное имя подписки

  • content-disposition — имя файла из заголовка (расширения .txt, .yaml, .yml удаляются автоматически)

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

Отдельный заголовок для описания, если оно не включено в profile-title:

Поддерживает base64: profile-description: base64:...

Интервал обновления подписки

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

Заголовок:

В теле подписки:

Статус подписки

Информация о балансе, объёме использованного трафика и сроке действия подписки. Поля разделяются точкой с запятой.

Поле
Описание

upload

Исходящий трафик (байт)

download

Входящий трафик (байт)

total

Лимит трафика (байт)

expire

Дата истечения (Unix timestamp, секунды)

Если expire > 32 000 000 000 — значение интерпретируется как миллисекунды и конвертируется в секунды.

Ссылка на поддержку

Кнопка перехода на страницу поддержки. Если ссылка ведёт в Telegram — отображается иконка Telegram.

Заголовок:

В теле подписки:

Ссылка на сайт

Кнопка перехода на сайт подписки.

Заголовок:

В теле подписки:

Альтернативный заголовок: homepage

Объявление

Текстовое объявление (до 200 символов). Можно передавать как текст или base64.

Заголовок:

Base64:

URL объявления (ссылка, не текст):

В теле подписки:


Сводная таблица параметров

Заголовок

Альтернативы

Формат

Body (#)

Описание

profile-title

subscription-name, content-disposition

текст / base64:...

Имя подписки

profile-description

текст / base64:...

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

profile-update-interval

число (часы)

Интервал обновления

subscription-userinfo

key=value;...

Статистика трафика

support-url

URL

Ссылка на поддержку

profile-web-page-url

homepage

URL

Ссылка на сайт

announce

текст / base64:...

Текст объявления

announce-url

URL

Ссылка на объявление

autorouting

URL

Автообновляемый профиль маршрутизации

routing

base64 / ссылка

Статический профиль маршрутизации

premium-url

URL

Ссылка «Премиум» (в карточке подписки, см. ниже)

per-app-proxy-enable

1 / 0

Включить per-app режим (только Android)

per-app-proxy-mode

bypass / proxy

Режим per-app

per-app-proxy-list

CSV / URL

Список package names

fragmentation-enable

1 / 0

TCP-фрагментация

fragmentation-length

min-max

Диапазон длины фрагмента

fragmentation-interval

min-max

Диапазон задержки между фрагментами

fragmentation-packets

tlshello / 1-3 / all

На какие пакеты применять

noises-enable

1 / 0

Отправка шумовых пакетов до handshake

noises-type

rand / str / hex

Тип шумового контента

noises-packet

строка

Payload шума (формат зависит от type)

noises-delay

min-max мс

Диапазон задержки между шумами

server-address-resolve-enable

1 / 0

Предварительный DNS-резолв адреса сервера через DoH

server-address-resolve-dns-domain

URL

URL DoH-сервера

server-address-resolve-dns-ip

IP

IP DoH-сервера (bootstrap)

Все заголовки регистронезависимы (profile-title = Profile-Title).

Параметры из тела подписки (body) используются как fallback — HTTP-заголовки всегда имеют приоритет.

Все заголовки со значениями поддерживают префикс base64: для передачи UTF-8 данных без проблем с Latin-1 / non-ASCII (применяется к announce, profile-title, profile-description, per-app-proxy-list).


Маршрутизация

Профиль маршрутизации

Статический профиль в base64. Подробнее — routing.md.

Автообновляемый профиль маршрутизации

URL-источник профиля маршрутизации с периодическим обновлением. Подробнее — autorouting.md.

Приоритет источников маршрутизации

Если профиль маршрутизации указан в нескольких местах, используется первый найденный по приоритету:

Приоритет
Источник

1 (высший)

Заголовок autorouting

2

Body — строка с URL (://autorouting/onadd/, ://autorouting/add/)

3

Заголовок routing

4 (низший)

Body — строка с base64 (://routing/onadd/, ://routing/add/, ://routing/)

Важно: только ://autorouting/ устанавливает sourceURL и включает автообновление. Строки ://routing/onadd/{url} в теле подписки импортируют профиль одноразово, без привязки к источнику.


Описание сервера

Дополнительная подпись, отображаемая под именем сервера (максимум 30 символов). Добавляется после title через разделитель ?:


Per-app proxy (только Android)

Android VpnService позволяет пропускать через VPN только выбранные приложения либо наоборот — исключать их из туннеля. Провайдер может форсировать этот режим через три заголовка:

Параметры

Заголовок
Значение
Описание

per-app-proxy-enable

1 / 0

Включить режим per-app

per-app-proxy-mode

bypass | proxy

bypass — указанные приложения обходят VPN. proxyтолько они идут через VPN

per-app-proxy-list

CSV или URL

Список package names через запятую, перенос строки, или URL до текстового файла

Формат списка

Inline (CSV или строчный):

Base64 (для длинных списков):

Удалённый URL:

Файл по URL — обычный plain text с package names по одному на строку или через запятую. Клиент скачивает его при применении подписки и при каждом обновлении.

Поведение

  • Если ни одно из трёх полей не задано — настройки пользователя в приложении не переопределяются.

  • Если per-app-proxy-enable задан в 0 — per-app режим выключается, даже если пользователь его включил локально.

  • Платформы кроме Android игнорируют эти заголовки.


TCP-фрагментация

Перезаписывает глобальные настройки фрагментации пользователя для данной подписки.

Заголовок
Значение
Описание

fragmentation-enable

1 / 0

Включить фрагментацию

fragmentation-packets

tlshello | 1-3 | 1 | all

На какие TCP-пакеты применять фрагментацию

fragmentation-length

min-max

Диапазон длины фрагмента в байтах

fragmentation-interval

min-max

Диапазон задержки между фрагментами в мс

Те же параметры доступны через Premium API как fragmentEnabled / fragmentPackets / fragmentLength / fragmentInterval — при Premium-подписке HTTP-заголовки игнорируются в пользу API-значений.


Шумовые пакеты (noises)

Отправка случайных UDP-пакетов перед VPN-handshake'ом для маскировки. Актуально в первую очередь для WireGuard и Hysteria2 в сетях с глубокой инспекцией трафика.

Заголовок
Значение
Описание

noises-enable

1 / 0

Включить шумы

noises-type

rand | str | hex

Формат payload'а

noises-packet

строка

Содержимое шумового пакета; для rand — диапазон длины min-max

noises-delay

min-max мс

Диапазон задержки между шумовыми пакетами


Резолв адреса сервера через DoH

Bootstrap-резолв домена сервера через DNS-over-HTTPS до установки туннеля. Полезно когда провайдерский DNS подменяет адрес VPN-сервера.

Заголовок
Значение
Описание

server-address-resolve-enable

1 / 0

Включить DoH-резолв

server-address-resolve-dns-domain

URL

DoH endpoint (обычно /dns-query)

server-address-resolve-dns-ip

IP

IP DoH-сервера для bootstrap'а — используется до резолва его домена

Те же поля передаются через Premium API как serverAddressResolveEnable / serverAddressResolveDnsDomain / serverAddressResolveDnsIp.


Ссылка «Премиум»

Дополнительная кнопка в карточке подписки — ведёт на страницу покупки или личный кабинет провайдера.

Заголовок
Значение
Описание

premium-url

URL

URL кнопки «Премиум» в карточке подписки

Если не задан — кнопка скрыта.


Настройки, которые подписка не может задать HTTP-заголовками

Эти параметры хранятся в Premium API конфигурации провайдера и применяются клиентом только если домен подписки принадлежит Premium-провайдеру. Включить их «через подписку без аккаунта в панели» нельзя — это by design.

Группа
Что настраивается
Ссылка

Lite Mode

Упрощённый интерфейс, ссылки на бот/канал/поддержку + пресет-иконки

premium-api.md § Lite Mode

Баннер подписки

Текст + цвета + кнопка в карточке подписки

premium-api.md § Баннер подписки

Кастомная тема

Плоские цвета и градиенты для аккаунта / фона

premium-api.md § Кастомная тема

Force-настройки

forceConnectionStyle: классическая круглая кнопка vs compact-toggle

premium-api.md § Принудительные настройки

Ping и сортировка

defaultPingProtocol, defaultSortOrder, pingOnUpdate

premium-api.md § Ping и сортировка

Domain fronting

resolveAddress / hostHeader (связка SNI ↔ Host для маскировки)

premium-api.md § Domain fronting и фрагментация

Админ-доступ по HWID

adminHwids + auto-approve пушей

admin-hwids.md

Push-уведомления

Модерация, таргетинг, отмена

provider-notifications.md

Фрагментация, шумы и DoH-резолв доступны через оба канала: HTTP-заголовками подписки (см. выше) или через Premium API. При Premium-подписке API-значения приоритетнее заголовков.

Последнее обновление