Обход блокировок¶
ЗАЧЕМ ЭТО НУЖНО
Системы DPI часто блокируют по SNI (домен назначения) из TLS ClientHello — первого пакета каждого TLS/Reality-хендшейка. Фрагментация дробит этот ClientHello на множество мелких TCP-сегментов с крошечными задержками, так что DPI не может собрать SNI обратно → не видит домен → не может резать по домену. Работает целиком на штатном ядре Xray (outbound freedom с настройками fragment) — без дополнительного сервера и инфраструктуры.
Четыре параметра ниже решают разные задачи и часто применяются вместе.
✓
Приложение настраивает всё за вас. Вручную добавлять fragment-outbound в конфиг НЕ нужно: при включении приложение само вставляет его и перенаправляет через него весь прямой TLS/Reality-трафик на ЛЮБОМ конфиге, оставляя цепочки (multi-hop) нетронутыми — фрагментируется только тот хоп, который видит DPI.
08.1 · s-fragment — фрагментация TLS¶
Включение — заголовок s-fragment¶
| Значение | Эффект |
|---|---|
отсутствует / off |
Выключено (отсутствие заголовка не меняет прежнее значение) |
on |
Включено с параметрами по умолчанию |
packets=tlshello;length=50-100;interval=10-20;maxsplit=100-200 |
Включено с этими параметрами |
Передаётся как HTTP-заголовок ответа s-fragment: или строкой-комментарием в теле #s-fragment: packets=tlshello;length=50-100;interval=10-20.
🔒
Требует активного Provider ID. Как и любое управляемое провайдером поле, s-fragment учитывается только пока ваш Provider ID активен. Неактивный или неизвестный провайдер не может включать фрагментацию на устройствах пользователей.
Параметры¶
| Параметр | Формат · по умолчанию · описание |
|---|---|
packets |
tlshello или N-M · по умолчанию tlshelloКакие пакеты фрагментировать. tlshello — только TLS ClientHello (несёт SNI), рекомендуется. 1-3 — первые 1–3 исходящих пакета. |
length |
min-max (байты) · по умолчанию 50-100Размер фрагмента, случайно в диапазоне. Меньше = труднее собрать, но больше накладных расходов. |
interval |
min-max (мс) · по умолчанию 10-20Задержка между фрагментами, случайно в диапазоне. Джиттер мешает буферизации и пересборке. |
maxsplit |
min-max · по умолчанию не заданОпционально (только новые ядра). Ограничивает число фрагментов. Старые ядра игнорируют. |
Значения по умолчанию подходят большинству сетей. Тюнинг под конкретный DPI: сильнее блокируют → меньше length и/или больше interval; падает скорость → больше length и меньше interval.
Имена параметров не зависят от регистра (maxsplit и maxSplit — один и тот же ключ), а ключ packets — во множественном числе: packets=, не packet=. packet= относится к s-noise, где означает полезную нагрузку.
⚙️Пользователь может включить сам¶
Пользователь также может включить фрагментацию и отредактировать те же параметры вручную — в приложении: Настройки → Обход блокировок → TLS-фрагментация, независимо от провайдера. При ручном включении его параметры имеют приоритет над заголовком.
08.2 · s-noise — шумовые пакеты¶
Мусорный трафик, отправляемый до соединения, чтобы DPI не распознал его начало. Работает в паре с фрагментацией — у них общий выход, и вместе они закрывают и начало соединения, и его содержимое.
Значения: on / 1 — параметры по умолчанию (rand, пакет 50-100, задержка 10-20); off / 0 — выключить. Полная форма — type=rand;packet=50-100;delay=10-20 или позиционно rand,50-100,10-20; type принимает rand, str или hex.
Принимаются оба написания заголовка — s-noise и s-noises.
08.3 · s-resolve — предразрешение адреса сервера¶
Разрешает адрес сервера через DoH до подъёма туннеля. Нужно там, где локальный DNS отдаёт подменённый ответ для домена вашего узла: без этого клиент получит неверный IP и просто не подключится.
Значения: on / 1 — резолвер по умолчанию (dnsforge.de); off / 0 — выключить; URL задаёт свой резолвер.
Если отравлен и домен самого резолвера, добавьте bootstrap-IP через ;ip=… — например https://dnsforge.de/dns-query;ip=49.12.67.122. Исходный домен остаётся в SNI, поэтому TLS/Reality проверяются как обычно. Если резолвер не ответил за полторы секунды, используется обычный поиск — параметр может только помочь, но не заблокировать подключение.
Несколько резолверов. Адреса можно перечислить через запятую, каждый со своим bootstrap-IP — они пробуются по порядку до первого ответившего. Одиночный адрес работает как раньше: это тот же формат без запятых.
Список полезнее встроенного набора приложения: вы задаёте адреса, про которые знаете, что они работают в сетях ваших пользователей, — встроенный список об этом знать не может. К тому же включить его заголовком нельзя, он управляется только тумблером у пользователя.
08.4 · s-dns — DNS-over-HTTPS в туннеле¶
Шифрует обычные DNS-запросы внутри туннеля. Значения: on / 1 — встроенный резолвер по умолчанию (dnsforge.de); URL вида https://dnsforge.de/dns-query — свой резолвер; off / 0 — выключить. Разрешённый DNS идёт через туннель, а не через физическую сеть.
Порядок применения
Параметры провайдера всегда важнее пользовательских настроек, включая off. Если настраивает сам пользователь, порядок такой: фрагментация → шум → DoH.