TLS Fragment - обход блокировки по SNI (анти-DPI)#
Когда клиент открывает соединение, в первом TLS-пакете (ClientHello) в открытом виде едет SNI - имя домена назначения. Системы фильтрации (в том числе ТСПУ в РФ) читают этот SNI и блокируют соединение по имени. TLS Fragment - функция Hiddify, которая прячет SNI от DPI.
В чем суть#
Фрагментация разбивает исходящий TLS-пакет на несколько кусков. SNI оказывается разрезанным между частями, и DPI не может собрать имя домена в одном пакете и сопоставить с черным списком. После фильтра куски склеиваются на сервере, соединение работает нормально.
Смежные приемы:
- TLS Mixed SNI Case - буквы домена шлются со случайным чередованием регистра. Многим DPI этого достаточно, чтобы перестать узнавать домен.
- TLS Padding - к имени домена добавляются случайные символы. Фрагмент и padding одновременно не включать - они гасят друг друга.
Когда помогает#
Если конкретные домены или сервисы блокируются именно по SNI - открывается подменная страница, рвется соединение к известному сайту. Метод чувствителен к оператору: то, что работает у одного провайдера, может не работать у другого, поэтому значения подбираются.
Как настроить и подобрать значения#
Настройки лежат в разделе TLS Trick: панели Hiddify Manager и в приложении Hiddify (в All Config Options найдите Tls Fragment и включите).
Ключевые параметры:
- Fragment Size - размер кусков. Рекомендация из документации: брать на единицу меньше длины домена, чтобы имя гарантированно разрезалось.
- Fragment Interval (Sleep) - пауза между отправкой кусков.
- Режимы: Default (по конфигу), SNI/domain (на две части), Random (очень мелкие случайные куски).
Стартовые значения из документации для приложения Hiddify: Fragment Size 100-200, Fragment Sleep 10-20. Под конкретного оператора их почти всегда придется править.
Точный подбор - сканером на VPS (скрипт FragmentScanner): он перебирает случайные значения и выдает лучшие комбинации (тип пакета, интервал, длина). Если в топе пакеты tlshello - значения задаются прямо в Hiddify Manager; иначе настраиваются на стороне клиента. Рекомендуется включить Mixed SNI и выключить Padding.
Если не помогло#
Поднимите минимальную версию TLS до 1.3 (на CDN/Cloudflare - Minimum TLS Version, на клиенте - включить TLS 1.3). Если домен уже "засвечен" фильтром - смените поддомен: старый мог быть детектирован, и новый помогает сам по себе.
Источники#
На основе официальной документации Hiddify Manager: TLS Trick, подбор значений.
Не помогло или есть уточняющий вопрос - заходите в русское сообщество @hiddify_rus.