🧪 Как проверить, заработала ли стратегия (и почему проверка часто обманывает)
О чём заметка
Вы подобрали стратегию профилю (вручную или автоподбором) и смотрите, открылся ли сайт. Сама эта проверка — самый ненадёжный шаг во всей настройке: она регулярно показывает «всё ОК», когда на деле сайт не грузится, и наоборот. Здесь — две главные ловушки проверки и как проверять так, чтобы результат был честным. Что такое профиль и стратегия — в «Что такое профиль» и «Десинхронизация»; почему «не работает» это симптом — в одноимённой заметке.
TL;DR
- Автоподбор (BlockCheck и аналоги) проверяет доступность отдельной утилитой (обычно
curl), а вы сидите в браузере или игре — у них разный сетевой «почерк» (отпечаток TLS, размеры пакетов). Поэтому вердикт автоподбора и реальность могут расходиться в обе стороны: «стратегия работает», а сайт не грузится — и наоборот.- Финальная проверка — всегда в том приложении, ради которого всё затевалось (браузер, Discord, игра), а не в логе автоподбора.
- Обычная перезагрузка F5 часто врёт: браузер переиспользует уже открытое TCP-соединение, нового соединения (нового SYN) не создаётся, а дурение и решение ТСПУ действуют именно на установке соединения. Старое соединение ТСПУ как блокировал, так и блокирует.
- Проверяйте новым соединением: новое окно инкогнито (надёжнее всего), новая вкладка,
Ctrl+F5; для приложений — полный перезапуск, в том числе выход из трея.
Ловушка 1: автоподбор проверяет через curl, а вы — через браузер
На пальцах
BlockCheck и встроенный в GUI автоподбор перебирают стратегии и после каждой дёргают сайт утилитой curl, проверяя, пришёл ли нормальный ответ (пример такой проверки — в заметке про curl). Логика разумная, но у неё есть слепое пятно: curl и ваш браузер выходят в сеть по-разному.
- Разный TLS-отпечаток. Браузер и
curlшлют разный по структуре первый пакет TLS-рукопожатия (ClientHello): другой набор расширений, другой порядок, другой размер. DPI умеет различать клиентов по этому «почерку» (JA3/JA4-отпечаток). Стратегия, которая удачно маскирует ClientHello отcurl, на более крупном и сложном ClientHello браузера может сработать иначе. - Разные размеры и тайминги пакетов. Многие техники дурения «заточены» под конкретный разрез пакета (где разрезать ClientHello, какой длины фейк подмешать). У браузера пакет другой — и тот же разрез ложится в другое место.
- Проверяется не весь сайт. Автоподбор обычно дёргает один домен, а реальная страница тянет ресурсы с десятков доменов (CDN, аналитика, API). Главный домен обошёлся, а критичный поддомен — нет, и страница всё равно «не грузится». Подробнее — в «Сложность современных веб-сайтов».
Итог: вердикт автоподбора — это ориентир, а не приговор. По наблюдениям, расхождение бывает в обе стороны — и ложное «работает», и ложное «не работает». Поэтому стратегию, которую предложил автоподбор, обязательно проверяйте в реальном приложении (и наоборот — не выбрасывайте стратегию только потому, что её забраковал блокчек: проверьте её руками в браузере).
Ловушка 2: F5 не пересоздаёт соединение — ТСПУ держит старое
На пальцах
TCP-соединение — это телефонный звонок: SYN — «Алло, можем говорить?», ответ — «Да, говори». Дурение подмешивает свои уловки в момент дозвона, в самые первые реплики. Если ТСПУ уже прослушал начало звонка и решил его глушить — он будет глушить этот звонок, сколько по нему ни говори. Обычная F5 — это не перезвонить, а продолжить тот же звонок. Чтобы новая стратегия вообще вступила в игру, надо положить трубку и набрать заново (новое соединение), а инкогнито — это позвонить с другого телефона.
Когда вы меняете стратегию и жмёте F5, кажется, что страница запрашивается «с нуля». На деле — часто нет:
- Браузер переиспользует открытое соединение. Ради скорости браузер держит TCP-соединения к сайту открытыми (HTTP keep-alive) и при F5 гонит запрос по уже существующему соединению. Нового рукопожатия (нового SYN-пакета) не происходит.
- Дурение работает только на установке соединения. Техники desync вмешиваются в рукопожатие и первый ClientHello — там, где DPI определяет домен и протокол (отсюда же приём «вложить данные в SYN», см. syndata). По уже установленному соединению новая стратегия попросту не применяется.
- ТСПУ запоминает соединение. DPI отслеживает соединение по его «адресам» и принимает решение по его началу. Если соединение уже помечено как «плохое», оно таким и останется до закрытия — повторные запросы по нему ТСПУ продолжит блокировать.
Сложите три факта вместе — и получится частая ложная картина: стратегию сменили на рабочую, а сайт по F5 «не открывается», потому что висит и проверяется старое соединение, на котором новая стратегия ещё не работала.
Как заставить браузер открыть новое соединение
По возрастанию надёжности:
Ctrl+F5(он жеCtrl+Shift+R) — жёсткая перезагрузка. Игнорирует кэш и на практике чаще, чем простой F5, инициирует новое соединение (но строгой гарантии нет — зависит от браузера).- Новая вкладка (а лучше — предварительно закрыв старую вкладку этого сайта).
- Новое окно инкогнито / приватное окно — самый чистый способ. У него отдельный сетевой контекст и пустой кэш, поэтому к сайту почти наверняка пойдёт новое соединение.
- Самое надёжное — полностью закрыть браузер (все окна; проверьте, что он не висит в трее) и открыть заново. Или просто подождать минуту-другую, пока старое keep-alive-соединение закроется по таймауту.
Для приложений (Discord, игры) — то же правило, но перезапуск полный
У программы нет «F5». Чтобы она открыла новое соединение с новой стратегией, её нужно закрыть целиком, вплоть до выхода из системного трея — иначе фоновый процесс продолжит держать старые соединения. Именно поэтому при подборе стратегии для Discord советуют перезапускать его полностью, «чтобы даже в трее его не было» — подробнее в разделе про Discord.
Короткий чек-лист честной проверки
- Сменили стратегию профиля и убедились, что Zapret перезапущен и статус «работает» (см. как добавить профиль).
- Проверяете в реальном приложении (браузер/Discord/игра), а не только по вердикту автоподбора.
- Открываете ресурс новым соединением: новое окно инкогнито, новая вкладка или
Ctrl+F5— не простой F5. - Для приложения — полный перезапуск с выходом из трея.
- Сайт не грузится целиком? Проверьте, не блокируется ли отдельный поддомен/CDN (см. про множество доменов).
- Сомневаетесь, что вообще нужен обход? Сначала пройдите стандартную процедуру диагностики (проверка без Zapret → чистый пресет → подбор).
📚 См. также
- BlockCheck — автоподбор стратегий: что это и как запустить (именно его вердикт и стоит перепроверять руками)
- Как добавить свой профиль — где задаётся стратегия и как убедиться, что профиль включён
- Десинхронизация и флаг —lua-desync — почему дурение действует на установке соединения
- Что такое профиль — устройство профиля, который вы настраиваете
- Почему «не работает» — это симптом — частые ложные выводы при настройке
- Что делать, если Запрет не работает — полная диагностика и чек-лист
- Пример проверки через curl — как выглядит «рабочий» и «нерабочий» ответ
- Анализ лога winws2 — проверка по фактам из debug-лога: какой профиль сработал и что именно сделала стратегия
🤖 Эти статьи открыты — можно обучать на них ИИ
При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.