todo/Zapret2/verify-strategy.md
loop-uh 08b4491545
Some checks failed
Published content check / validate (push) Failing after 3s
Завершить переезд базы знаний на Forgejo
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
2026-08-07 08:27:28 +03:00

90 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2026-06-29
tags:
- zapret
- zapret2
- troubleshooting
- profile
- desync
aliases:
- Как проверить что стратегия работает
- Проверка стратегии Zapret
- Автоподбор показывает ОК но сайт не грузится
- Блокчек говорит работает а в браузере нет
- Сайт не грузится хотя стратегия рабочая
- curl работает а браузер нет
- F5 не помогает проверить обход
- Ctrl F5 инкогнито проверка обхода
- Почему после смены стратегии сайт всё равно не открывается
---
# 🧪 Как проверить, заработала ли стратегия (и почему проверка часто обманывает)
> [!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-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/Zapret2/verify-strategy.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).