Перейти к содержанию

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.