todo/DPI/tspu-3xui-scmininterval-trap.md
loop-uh 0ad0bcc8dd
Some checks failed
Published content check / validate (push) Failing after 5s
seo+зеркало: [!mirror]-плашка со ссылкой на вики и description во frontmatter всех заметок
Каждая публикуемая заметка получила callout-шапку со ссылкой на свою страницу
wiki.zapret.moe (на самой вики она вырезается транформером RemoveMirrorCallout,
видна только на зеркале Obsidian Publish и в Forgejo) и SEO-поле description —
1–2 предложения для meta description обоих сайтов.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:05:57 +03:00

14 KiB
Raw Permalink Blame History

date tags aliases link description
2026-06-11
dpi
tspu
rkn
xray
3x-ui
xhttp
vless
howto
Ловушка 3x-ui scMinPostsIntervalMs
Почему после обновления 3x-ui всё легло
scMinPostsIntervalMs триггерит ТСПУ
3x-ui 3.x.x блокировка
https://ebyebots.ru/blog/kak-tspu-roskomnadzora-lomaet-legitimnye-sajty-i-servery-v-iyune-2026-goda-tehnicheskij-razbor/ После обновления 3x-ui до 3.x.x отвалились VLESS/XHTTP-прокси: параметр scMinPostsIntervalMs: 30 триггерит ТСПУ. Как вырезать его или откатиться на 2.9.4.

[!mirror] Резервное зеркало Актуальная версия этой страницы — на основной вики: wiki.zapret.moe/DPI/tspu-3xui-scmininterval-trap

🪤 Ловушка обновления 3x-ui: как scMinPostsIntervalMs триггерит ТСПУ

[!info] О чём заметка Узкий, но коварный случай «Июньской блокировки 2026»: после обновления панели 3x-ui (веб-панель управления прокси-ядром Xray) до ветки 3.x.x у многих администраторов массово отвалились соединения — особенно на мобильных операторах. Причина не в самих серверах, а в том, что новая версия панели стала автоматически вшивать в конфиг Xray параметр scMinPostsIntervalMs: 30, который сам по себе триггерит ТСПУ (Технические Средства Противодействия Угрозам) — оборудование DPI (Deep Packet Inspection, глубокий анализ пакетов) Роскомнадзора. Здесь — что это за параметр, почему он попадает под фильтр и как починить. Общая картина блокировки (И-триггер из трёх условий) — в обзорной заметке DPI/tspu-false-blocks-june-2026.

[!warning] Статус данных Связь параметра scMinPostsIntervalMs: 30 со срабатыванием ТСПУ — это эмпирическое наблюдение из разбора eByeBots (7 июня 2026): «опытным путём доказано, что именно это ограничение мгновенно триггерит алгоритмы ТСПУ на мобильных сетях». Это не официальная документация и не подтверждённая разработчиками Xray причинно-следственная связь; объяснение «почему» (через поведенческий признак частоты) — реконструкция, а не утверждение eByeBots. Параметры фильтра различаются по операторам и регионам и со временем меняются. Перед откатом версии сделайте резервную копию конфигурации.

TL;DR

  • Симптом: после обновления 3x-ui до ветки 3.x.x прокси (например, на протоколе VLESS — лёгком прокси поверх Xray) на транспорте XHTTP (маскировка трафика под обычный HTTP, ранее назывался SplitHTTP) начали массово блокироваться, особенно на мобильном интернете.
  • Причина: панель стала автоматически добавлять в конфиг ядра Xray два параметра — "scMaxEachPostBytes": "1000000" и "scMinPostsIntervalMs": "30". Именно scMinPostsIntervalMs: 30 — минимальный интервал между POST-запросами (HTTP-метод, которым клиент отправляет данные на сервер)разрешает слать их уже через 30 мс после предыдущего, то есть очень часто при активной передаче. ТСПУ ловит эту «суетливость» как признак туннеля.
  • Почему это триггер: частые короткие POST делают поведение туннеля «машинным» — это родственно поведенческому признаку «частоты», на котором стоит третье условие И-триггера ТСПУ. Строго оно считается по числу новых TLS-сессий к одному адресу (см. обзорную заметку), но «суетливый» транспорт питает тот же сигнал.
  • Фикс: вручную вырезать scMaxEachPostBytes и scMinPostsIntervalMs из конфига — на сервере (вкладка «Расширенный шаблон») и из клиентских ссылок (блок Extra). Если не помогло — откатить панель до стабильной 2.9.4.

Что такое 3x-ui и XHTTP

  • 3x-ui — популярная веб-панель для управления сервером Xray (ядро прокси, на котором работают VLESS, VMess, Trojan и др.). Через неё админ заводит пользователей, генерирует ссылки-подключения и правит конфиг, не залезая в JSON руками.
  • XHTTP (ранее SplitHTTP) — один из транспортов Xray: он маскирует трафик прокси под обычный HTTP-обмен, разбивая поток на серию HTTP-запросов (в том числе POST — метод отправки данных от клиента к серверу). Маскировка под HTTP помогает против DPI — но только пока поведение запросов выглядит «человеческим».

[!example] На пальцах Представь курьера, который носит письма (данные) через проходную (ТСПУ), маскируясь под обычного посетителя. Пока он ходит спокойно, охрана не реагирует. Но если разрешить ему слать письма уже через 30 миллисекунд после предыдущего — при потоке данных он начинает мелькать в проходной по 30+ раз в секунду. Никакой обычный посетитель так не делает; охрана опознаёт «слишком частый» паттерн и блокирует. scMinPostsIntervalMs: 30 — это и есть снятый тормоз, который позволяет курьеру бегать как можно чаще и выдаёт маскировку.

Почему именно scMinPostsIntervalMs: 30 опасен

scMinPostsIntervalMs задаёт минимальный интервал (в миллисекундах) между POST-запросами, которыми клиент отправляет данные на сервер в режиме XHTTP. Это нижний порог (троттл), а не форсированный темп: значение 30 не заставляет слать POST каждые 30 мс, но разрешает делать это уже через 30 мс после предыдущего — то есть до ~33 запросов в секунду на пике отдачи. При активной передаче клиент упирается в этот разрешённый максимум, и поведение становится «суетливым».

Для ТСПУ это выглядит как поток частых однотипных запросов к одному адресу — поведение, по которому фильтр отличает машинный туннель от обычного браузинга. В терминах И-триггера «Июньской блокировки» это близко к третьему условию (частота). Важная оговорка: строго третье условие модели измеряется по числу параллельных TLS-сессий к одному имени хоста за окно времени, а POST-запросы XHTTP идут внутри уже установленных сессий — поэтому «частые POST → третье условие» это реконструкция механизма, а не дословное утверждение источника. Эталон eByeBots даёт лишь эмпирический факт: с scMinPostsIntervalMs: 30 ТСПУ срабатывает.

Парный параметр scMaxEachPostBytes: "1000000" задаёт максимальный размер одного POST (1 МБ) и вшивается панелью заодно; триггерной роли эталон ему не приписывает — «опытным путём доказано» срабатывание именно от scMinPostsIntervalMs: 30.

[!note] Почему «на мобильных» По наблюдениям eByeBots эффект сильнее всего на сотовых операторах. Это согласуется с тем, что параметры ТСПУ «плавающие» и зависят от оператора и региона: на одних сетях порог частоты жёстче, на других — мягче. Поэтому один и тот же конфиг может работать на домашнем провайдере и падать на мобильном.

Как починить

[!tip] Главное Нужно убрать из конфигурации навязанный обновлением «слишком частый» интервал POST — тогда поведение XHTTP-транспорта перестаёт пробивать порог частоты.

  • Сделать резервную копию текущего конфига Xray и клиентских ссылок.
  • На сервере открыть в 3x-ui вкладку «Расширенный шаблон» (Advanced Template) и удалить строки (это фрагмент внутри настроек XHTTP-транспорта, а не самостоятельный JSON):
    "scMaxEachPostBytes": "1000000",
    "scMinPostsIntervalMs": "30"
    
  • В клиентских ссылках убрать эти же параметры из блока Extra (иначе клиент продолжит слать частые POST, даже если сервер их не требует).
  • Перевыпустить/обновить ссылки у пользователей и переподключиться, проверить доступность на мобильном операторе (где симптом проявлялся сильнее всего).
  • Если не помогло — откатить (даунгрейд) панель 3x-ui до стабильной версии 2.9.4, в которой эти параметры не вшиваются автоматически.

[!warning] Оговорка Это лечит поведенческий признак (частоту POST-запросов XHTTP). Если ваш прокси режется по другому условию И-триггера — по подсети сервера или по TLS-отпечатку (например, fingerprint: chrome в REALITY) — правка scMinPostsIntervalMs не поможет, нужны меры из соответствующих заметок. Параметры фильтра меняются: значения, безопасные сегодня, могут попасть под правило завтра.

Источники

Источник Дата Что отсюда взято
eByeBots — технический разбор «Июньской блокировки 2026» 7 июня 2026 Сам факт ловушки в 3x-ui 3.x.x, параметры "scMaxEachPostBytes": "1000000" и "scMinPostsIntervalMs": "30", эффект на мобильных сетях, фикс (вырезать строки из «Расширенного шаблона» и блока Extra, откат до 2.9.4).

📚 См. также

  • DPI/tspu-false-blocks-june-2026 — обзор И-триггера из трёх условий; этот случай — пробитие третьего условия (частота) кривым параметром транспорта.
  • VLESS/dpi-tls-june-2026 — почему DPI смотрит на поведение соединения, а не на содержимое; выбор транспорта и фингерпринта.
  • DPI/tspu-http2-tls12-fix — тот же поведенческий признак «частоты», но со стороны обычного сайта.
  • VPS/3X-UI API — управление 3x-ui программно.