Happ VPN

Как включить TLS-фрагментацию

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

Коротко

TLS-фрагментация в Happ включена по умолчанию для всех подписок; для одного сервера параметры задаются прямо в ссылке — fragment=length,interval,packets — а для всей подписки сразу — параметрами fragmentation-enable и fragmentation-length/interval/packets, которые провайдер задаёт с Provider ID.

TLS-фрагментация разбивает крупный пакет ClientHello при установке TLS-соединения на несколько частей — это влияет на стабильность самого TLS-рукопожатия в сетях, где обработка большого ClientHello целиком проходит нестабильно. Документация Happ описывает два уровня этой настройки: параметр fragment в ссылке конкретного сервера — например vless:// или trojan:// — и глобальные параметры подписки fragmentation-enable, fragmentation-length, fragmentation-interval, fragmentation-packets, fragmentation-maxsplit, которые провайдер с Provider ID применяет сразу ко всем серверам. Документация прямо указывает, что фрагментация включена по умолчанию для всех подписок, а настройки внутри конкретного сервера действуют только тогда, когда отключены глобальные настройки приложения. Отдельного пункта меню с точным названием для ручного включения этой функции документация не приводит.

Что делает TLS-фрагментация

При установке TLS-соединения клиент отправляет серверу пакет ClientHello — часто он получается крупным, особенно с современными расширениями протокола. В сетях, где обработка такого крупного пакета целиком проходит нестабильно, разбиение его на несколько меньших частей помогает установить соединение надёжнее.

Документация Happ описывает эту настройку как параметр fragment — он разбивает трафик на фрагменты по длине, интервалу и типу пакетов. Рядом с ним есть параметр noises, который добавляет к пакетам дополнительные данные, но работает только вместе с включённой фрагментацией, а не отдельно от неё.

Важный факт из документации: фрагментация включена по умолчанию для всех подписок Happ. Поэтому задача чаще не «включить с нуля», а настроить или изменить параметры под конкретную ситуацию — обычно когда TLS-рукопожатие с конкретным сервером проходит нестабильно.

Как настроить фрагментацию для одного сервера

  1. Убедитесь, что сервер использует протокол на TCP

    Для Hysteria2 похожую задачу решает обфускация Salamander, а не параметр fragment.

    Результат: Ссылка сервера начинается с vless://, vmess:// или trojan://, а не с hysteria2:// или hy2://.

  2. Получите текущую ссылку сервера

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

    Результат: У вас есть полная ссылка конфигурации, которую можно отредактировать.

  3. Добавьте параметр fragment в ссылку

    Формат — три значения через запятую, четвёртое (maxSplit) необязательно. Документация приводит как пример значение 1-10,5-20,tlshello.

    Результат: В строке ссылки после знака вопроса появился параметр вида &fragment=length,interval,packets.

  4. При необходимости добавьте noises

    Noises работает только совместно с фрагментацией — без параметра fragment он не действует.

    Результат: Параметр noises=type,packet,delay[,applyTo] указан рядом с fragment, а не вместо него.

  5. Импортируйте изменённую ссылку

    Так как отдельного поля для fragment в интерфейсе документация не описывает, изменения вносятся в саму ссылку до импорта, а не через форму редактирования сервера.

    Результат: Обновлённый сервер появился в «Список серверов» либо заменил прежний.

  6. Подключитесь и проверьте стабильность

    Результат: TLS-рукопожатие проходит без ошибок при нескольких попытках подключения.

  7. При необходимости скорректируйте значения

    Результат: Найдены параметры, при которых соединение устанавливается стабильно.

Настройка сразу для всех серверов подписки

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

Текст
fragmentation-enable: 1
fragmentation-packets: tlshello
fragmentation-length: 50-100
fragmentation-interval: 5
fragmentation-maxsplit: 100-200
noises-enable: true
noises-packet-type: base64
noises-rand: 1-1024

Эти параметры передаются HTTP-заголовками ответа сервера подписки или строками с # в начале её тела — так же, как остальные расширенные параметры Happ. Документация отдельно уточняет: параметры внутри ссылки конкретного сервера действуют только тогда, когда такие глобальные настройки отключены.

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

ПлатформаОсобенность применения
Windows, macOS, LinuxПараметр разбирает ядро Xray-core одинаково на всех десктопных сборках; отдельного поля в интерфейсе документация не приводит
Android, Android TVТо же ядро и тот же принцип разбора ссылки, что и на десктопе; Android TV использует то же приложение, что Android
iOSРаботает через то же ядро Xray-core в составе NetworkExtension; отдельного поля документация также не описывает
Apple TVДокументация описывает для Apple TV выбор сервера, подключение и пинг, но не уточняет применение параметра fragment отдельно; ограничения там касаются в первую очередь маршрутизации

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

  • В ссылке сервера или в глобальных параметрах подписки указаны корректные значения fragment или fragmentation-*.
  • Протокол сервера — на TCP (VLESS, VMess, Trojan, Shadowsocks, SOCKS5), а не Hysteria2.
  • TLS-рукопожатие при подключении проходит без повторяющейся ошибки.
  • «Проверить текущее соединение» показывает задержку в мс при нескольких повторных попытках подключения.
  • Если менялись глобальные параметры подписки, изменения внесены именно с Provider ID, а не в ссылку отдельного сервера.

Если соединение всё равно нестабильно

Что видноВозможная причинаГде разбор
Ошибка TLS-рукопожатия при подключенииПараметры fragment не помогли конкретной сети либо заданы некорректноОшибка TLS-рукопожатия
Соединение обрывается сразу после подключенияКонфликт между глобальными параметрами подписки и параметром в ссылке сервераРешение для Windows
Ошибка повторяется только на AndroidОсобенности сети именно этого устройства или его текущего подключенияРешение для Android
Ошибка повторяется только на iOSТот же параметр может требовать других числовых значений на другой сетиРешение для iOS

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

Главное

  • TLS-фрагментация включена в Happ по умолчанию для всех подписок — обычно её не нужно включать отдельно, разве что настроить параметры под конкретный случай.
  • Для одного сервера параметр fragment=length,interval,packets[,maxSplit] добавляется прямо в ссылку конфигурации, например vless:// или trojan://.
  • Для всех серверов подписки сразу используются расширенные параметры fragmentation-enable, fragmentation-length, fragmentation-interval, fragmentation-packets и fragmentation-maxsplit, которые провайдер задаёт с Provider ID.
  • Настройки фрагментации внутри отдельного сервера действуют только тогда, когда отключены глобальные настройки приложения — иначе приоритет у глобальных значений.
  • Параметр noises работает только совместно с включённой фрагментацией и добавляет к пакетам дополнительные шумовые данные, а не заменяет её.

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

Нужно ли включать TLS-фрагментацию отдельно, если она уже включена по умолчанию?

Как правило, нет: документация указывает, что фрагментация включена по умолчанию для всех подписок Happ. Если TLS-рукопожатие всё равно нестабильно в конкретной сети, задача обычно не «включить», а «настроить» — подобрать другие значения length, interval и packets для конкретного сервера, а не активировать функцию с нуля.

Как добавить параметр fragment к ссылке сервера, если в форме ручного ввода нет такого поля?

Документация не описывает отдельное поле для fragment в форме ручного ввода, поэтому параметр добавляют прямо в текст ссылки перед импортом — как обычный параметр запроса через амперсанд, например `…&fragment=1-10,5-20,tlshello`. Отредактированную ссылку затем добавляют так же, как любую другую: вставкой из буфера обмена, QR-кодом или диплинком.

Работает ли параметр fragment с протоколом Hysteria2?

В документации примеры fragment приводятся для протоколов на TCP — VLESS, VMess, Trojan, а Hysteria2 работает над QUIC и использует для похожей задачи другой механизм — обфускацию Salamander с параметрами obfs и obfs-password. Указывать fragment в ссылке Hysteria2 документация не описывает.

Что означают числа в параметре fragment=1-10,5-20,tlshello?

Согласно документации, это три составляющие: length, interval и packets — то есть длина фрагментов, интервал между их отправкой и то, какие именно пакеты фрагментируются, например tlshello — сам ClientHello TLS-рукопожатия. Необязательный четвёртый параметр maxSplit задаёт дополнительное ограничение разбиения. Документация приводит эти значения как пример формата, а не как рекомендованные числа для любой сети.

Как настроить фрагментацию сразу для всех серверов подписки, а не для одного?

Это делается расширенными параметрами подписки — fragmentation-enable, fragmentation-length, fragmentation-interval, fragmentation-packets и fragmentation-maxsplit, — которые провайдер передаёт через HTTP-заголовки ответа сервера подписки или строки в её теле. Для этого у подписки должен быть Provider ID; обычному пользователю без доступа к настройкам подписки эти параметры недоступны напрямую.

Что делать, если после изменения параметров fragment соединение стало хуже, а не лучше?

Верните прежние значения параметра или уберите его из ссылки вовсе и переподключитесь — универсального набора цифр, который одинаково хорошо работает в любой сети, документация не называет. Изменения такого параметра стоит проверять по факту: пробное подключение и повторная попытка при ошибке TLS-рукопожатия, а не по одной теоретически «правильной» настройке.

Как понять, что параметры fragment применились, а не были проигнорированы?

Прямого индикатора активной фрагментации в интерфейсе документация не описывает, поэтому ориентируйтесь на результат подключения: если соединение и TLS-рукопожатие проходят стабильно после добавления параметра там, где раньше случались обрывы или ошибка рукопожатия, значит настройка учтена. Разбор самой ошибки — на странице [ошибка TLS-рукопожатия](/errors/tls-handshake).

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

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

Источники

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