# 🧪 Как проверить, заработала ли стратегия (и почему проверка часто обманывает) > [!info] О чём заметка > Вы подобрали [[desync|стратегию]] профилю (вручную или [[Blockcheck|автоподбором]]) и смотрите, открылся ли сайт. Сама эта проверка — самый ненадёжный шаг во всей настройке: она регулярно показывает «всё ОК», когда на деле сайт не грузится, и наоборот. Здесь — две главные ловушки проверки и как проверять так, чтобы результат был честным. Что такое профиль и стратегия — в [[profile|«Что такое профиль»]] и [[desync|«Десинхронизация»]]; почему «не работает» это симптом — в [[symptom-not-cause|одноимённой заметке]]. > [!tip] TL;DR > - **Автоподбор ([[Blockcheck|BlockCheck]] и аналоги) проверяет доступность отдельной утилитой (обычно `curl`), а вы сидите в браузере или игре** — у них разный сетевой «почерк» (отпечаток TLS, размеры пакетов). Поэтому вердикт автоподбора и реальность могут расходиться **в обе стороны**: «стратегия работает», а сайт не грузится — и наоборот. > - **Финальная проверка — всегда в том приложении, ради которого всё затевалось** (браузер, Discord, игра), а не в логе автоподбора. > - **Обычная перезагрузка F5 часто врёт:** браузер переиспользует уже открытое TCP-соединение, нового соединения (нового SYN) не создаётся, а [[desync|дурение]] и решение [[Zapret/about#Обход DPI (система ТСПУ)|ТСПУ]] действуют именно на установке соединения. Старое соединение ТСПУ как блокировал, так и блокирует. > - **Проверяйте новым соединением:** новое окно инкогнито (надёжнее всего), новая вкладка, `Ctrl+F5`; для приложений — полный перезапуск, в том числе выход из трея. ## Ловушка 1: автоподбор проверяет через `curl`, а вы — через браузер > [!example] На пальцах > Автоподбор — это как отправить к охраннику на входе не себя, а курьера в другой одежде. Курьер ([[curl|curl]]) прошёл — но это не значит, что пропустят **вас** (браузер): вы одеты иначе, и охранник ([[Zapret/about#Обход DPI (система ТСПУ)|ТСПУ]]) среагирует на ваш вид по-своему. И наоборот: курьера развернули, а вас бы пропустили. [[Blockcheck|BlockCheck]] и встроенный в GUI автоподбор перебирают стратегии и после каждой дёргают сайт утилитой `curl`, проверяя, пришёл ли нормальный ответ (пример такой проверки — в [[curl|заметке про curl]]). Логика разумная, но у неё есть слепое пятно: **`curl` и ваш браузер выходят в сеть по-разному.** - **Разный TLS-отпечаток.** Браузер и `curl` шлют разный по структуре первый пакет TLS-рукопожатия (ClientHello): другой набор расширений, другой порядок, другой размер. DPI умеет различать клиентов по этому «почерку» (JA3/JA4-отпечаток). Стратегия, которая удачно маскирует ClientHello от `curl`, на более крупном и сложном ClientHello браузера может сработать иначе. - **Разные размеры и тайминги пакетов.** Многие техники дурения «заточены» под конкретный разрез пакета (где разрезать ClientHello, какой длины [[fake|фейк]] подмешать). У браузера пакет другой — и тот же разрез ложится в другое место. - **Проверяется не весь сайт.** Автоподбор обычно дёргает один домен, а реальная страница тянет ресурсы с десятков доменов (CDN, аналитика, API). Главный домен обошёлся, а критичный поддомен — нет, и страница всё равно «не грузится». Подробнее — в [[zapret_not_working#4. Сложность современных веб-сайтов|«Сложность современных веб-сайтов»]]. Итог: **вердикт автоподбора — это ориентир, а не приговор.** По наблюдениям, расхождение бывает в обе стороны — и ложное «работает», и ложное «не работает». Поэтому стратегию, которую предложил автоподбор, обязательно проверяйте **в реальном приложении** (и наоборот — не выбрасывайте стратегию только потому, что её забраковал блокчек: проверьте её руками в браузере). ## Ловушка 2: F5 не пересоздаёт соединение — ТСПУ держит старое > [!example] На пальцах > TCP-соединение — это телефонный звонок: SYN — «Алло, можем говорить?», ответ — «Да, говори». [[desync|Дурение]] подмешивает свои уловки **в момент дозвона**, в самые первые реплики. Если [[Zapret/about#Обход DPI (система ТСПУ)|ТСПУ]] уже прослушал начало звонка и решил его глушить — он будет глушить **этот** звонок, сколько по нему ни говори. Обычная F5 — это не перезвонить, а продолжить тот же звонок. Чтобы новая стратегия вообще вступила в игру, надо **положить трубку и набрать заново** (новое соединение), а инкогнито — это позвонить с другого телефона. Когда вы меняете стратегию и жмёте F5, кажется, что страница запрашивается «с нуля». На деле — часто нет: - **Браузер переиспользует открытое соединение.** Ради скорости браузер держит TCP-соединения к сайту открытыми (HTTP keep-alive) и при F5 гонит запрос **по уже существующему** соединению. Нового рукопожатия (нового SYN-пакета) не происходит. - **Дурение работает только на установке соединения.** Техники [[desync|desync]] вмешиваются в рукопожатие и первый ClientHello — там, где DPI определяет домен и протокол (отсюда же приём «вложить данные в SYN», см. [[syndata]]). По уже установленному соединению новая стратегия попросту не применяется. - **ТСПУ запоминает соединение.** DPI отслеживает соединение по его «адресам» и принимает решение по его началу. Если соединение уже помечено как «плохое», оно таким и останется до закрытия — повторные запросы по нему ТСПУ продолжит блокировать. Сложите три факта вместе — и получится частая ложная картина: стратегию сменили на рабочую, а сайт по F5 «не открывается», потому что висит и проверяется **старое** соединение, на котором новая стратегия ещё не работала. > [!tip] Как заставить браузер открыть новое соединение > По возрастанию надёжности: > - **`Ctrl+F5` (он же `Ctrl+Shift+R`) — жёсткая перезагрузка.** Игнорирует кэш и на практике чаще, чем простой F5, инициирует новое соединение (но строгой гарантии нет — зависит от браузера). > - **Новая вкладка** (а лучше — предварительно закрыв старую вкладку этого сайта). > - **Новое окно инкогнито / приватное окно — самый чистый способ.** У него отдельный сетевой контекст и пустой кэш, поэтому к сайту почти наверняка пойдёт новое соединение. > - **Самое надёжное — полностью закрыть браузер** (все окна; проверьте, что он не висит в трее) и открыть заново. Или просто подождать минуту-другую, пока старое keep-alive-соединение закроется по таймауту. > [!warning] Для приложений (Discord, игры) — то же правило, но перезапуск полный > У программы нет «F5». Чтобы она открыла новое соединение с новой стратегией, её нужно **закрыть целиком, вплоть до выхода из системного трея** — иначе фоновый процесс продолжит держать старые соединения. Именно поэтому при подборе стратегии для Discord советуют перезапускать его полностью, «чтобы даже в трее его не было» — подробнее в [[zapret_not_working#Как починить приложение Дискорд:|разделе про Discord]]. ## Короткий чек-лист честной проверки - [ ] Сменили стратегию профиля и убедились, что Zapret **перезапущен** и статус «работает» (см. [[add-profile|как добавить профиль]]). - [ ] Проверяете **в реальном приложении** (браузер/Discord/игра), а не только по вердикту автоподбора. - [ ] Открываете ресурс **новым соединением**: новое окно инкогнито, новая вкладка или `Ctrl+F5` — не простой F5. - [ ] Для приложения — **полный перезапуск** с выходом из трея. - [ ] Сайт не грузится целиком? Проверьте, не блокируется ли отдельный поддомен/CDN (см. [[zapret_not_working#4. Сложность современных веб-сайтов|про множество доменов]]). - [ ] Сомневаетесь, что вообще нужен обход? Сначала пройдите [[zapret_not_working#🧭 Стандартная процедура: «что-то не работает, а я не знаю почему»\|стандартную процедуру диагностики]] (проверка без Zapret → чистый пресет → подбор). ## 📚 См. также - [[Blockcheck|BlockCheck]] — автоподбор стратегий: что это и как запустить (именно его вердикт и стоит перепроверять руками) - [[add-profile|Как добавить свой профиль]] — где задаётся стратегия и как убедиться, что профиль включён - [[desync|Десинхронизация и флаг --lua-desync]] — почему дурение действует на установке соединения - [[profile|Что такое профиль]] — устройство профиля, который вы настраиваете - [[symptom-not-cause|Почему «не работает» — это симптом]] — частые ложные выводы при настройке - [[zapret_not_working|Что делать, если Запрет не работает]] — полная диагностика и чек-лист - [[curl|Пример проверки через curl]] — как выглядит «рабочий» и «нерабочий» ответ - [[log-analyzer|Анализ лога winws2]] — проверка по фактам из debug-лога: какой профиль сработал и что именно сделала стратегия --- > [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ > При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны на GitHub: [исходник этой заметки](https://github.com/youtubediscord/todo/blob/main/Zapret2/verify-strategy.md) · [весь репозиторий](https://github.com/youtubediscord/todo/tree/main).