Как включить 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-рукопожатие с конкретным сервером проходит нестабильно.
Как настроить фрагментацию для одного сервера
Убедитесь, что сервер использует протокол на TCP
Для Hysteria2 похожую задачу решает обфускация Salamander, а не параметр fragment.
Результат: Ссылка сервера начинается с vless://, vmess:// или trojan://, а не с hysteria2:// или hy2://.
Получите текущую ссылку сервера
Если подписка не зашифрована и не скрыта, ссылку можно получить функцией «Поделиться» у нужного сервера.
Результат: У вас есть полная ссылка конфигурации, которую можно отредактировать.
Добавьте параметр fragment в ссылку
Формат — три значения через запятую, четвёртое (maxSplit) необязательно. Документация приводит как пример значение
1-10,5-20,tlshello.Результат: В строке ссылки после знака вопроса появился параметр вида &fragment=length,interval,packets.
При необходимости добавьте noises
Noises работает только совместно с фрагментацией — без параметра fragment он не действует.
Результат: Параметр noises=type,packet,delay[,applyTo] указан рядом с fragment, а не вместо него.
Импортируйте изменённую ссылку
Так как отдельного поля для fragment в интерфейсе документация не описывает, изменения вносятся в саму ссылку до импорта, а не через форму редактирования сервера.
Результат: Обновлённый сервер появился в «Список серверов» либо заменил прежний.
Подключитесь и проверьте стабильность
Результат: TLS-рукопожатие проходит без ошибок при нескольких попытках подключения.
При необходимости скорректируйте значения
Результат: Найдены параметры, при которых соединение устанавливается стабильно.
Настройка сразу для всех серверов подписки
Если фрагментацию нужно настроить не для одного сервера, а для всей подписки сразу, документация описывает отдельный набор расширенных параметров, доступных только с 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).
Упомянутые темы
Похожие материалы
Разделы по теме
Источники
- Документация Happ: примеры ссылок и параметры — обращение 28 сентября 2026
- Документация Happ: управление приложением через подписку — обращение 28 сентября 2026