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

15 KiB
Raw Permalink Blame History

date tags aliases
2026-06-29
zapret
zapret2
troubleshooting
profile
desync
Как проверить что стратегия работает
Проверка стратегии Zapret
Автоподбор показывает ОК но сайт не грузится
Блокчек говорит работает а в браузере нет
Сайт не грузится хотя стратегия рабочая
curl работает а браузер нет
F5 не помогает проверить обход
Ctrl F5 инкогнито проверка обхода
Почему после смены стратегии сайт всё равно не открывается

🧪 Как проверить, заработала ли стратегия (и почему проверка часто обманывает)

[!info] О чём заметка Вы подобрали desync профилю (вручную или Blockcheck) и смотрите, открылся ли сайт. Сама эта проверка — самый ненадёжный шаг во всей настройке: она регулярно показывает «всё ОК», когда на деле сайт не грузится, и наоборот. Здесь — две главные ловушки проверки и как проверять так, чтобы результат был честным. Что такое профиль и стратегия — в profile и desync; почему «не работает» это симптом — в symptom-not-cause.

[!tip] TL;DR

  • Автоподбор (Blockcheck и аналоги) проверяет доступность отдельной утилитой (обычно curl), а вы сидите в браузере или игреу них разный сетевой «почерк» (отпечаток TLS, размеры пакетов). Поэтому вердикт автоподбора и реальность могут расходиться в обе стороны: «стратегия работает», а сайт не грузится — и наоборот.
  • Финальная проверка — всегда в том приложении, ради которого всё затевалось (браузер, Discord, игра), а не в логе автоподбора.
  • Обычная перезагрузка F5 часто врёт: браузер переиспользует уже открытое TCP-соединение, нового соединения (нового SYN) не создаётся, а desync и решение Zapret/about#Обход DPI (система ТСПУ) действуют именно на установке соединения. Старое соединение ТСПУ как блокировал, так и блокирует.
  • Проверяйте новым соединением: новое окно инкогнито (надёжнее всего), новая вкладка, Ctrl+F5; для приложений — полный перезапуск, в том числе выход из трея.

Ловушка 1: автоподбор проверяет через curl, а вы — через браузер

[!example] На пальцах Автоподбор — это как отправить к охраннику на входе не себя, а курьера в другой одежде. Курьер (curl) прошёл — но это не значит, что пропустят вас (браузер): вы одеты иначе, и охранник (Zapret/about#Обход DPI (система ТСПУ)) среагирует на ваш вид по-своему. И наоборот: курьера развернули, а вас бы пропустили.

Blockcheck и встроенный в GUI автоподбор перебирают стратегии и после каждой дёргают сайт утилитой 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 вмешиваются в рукопожатие и первый ClientHello — там, где DPI определяет домен и протокол (отсюда же приём «вложить данные в SYN», см. syndata). По уже установленному соединению новая стратегия попросту не применяется.
  • ТСПУ запоминает соединение. DPI отслеживает соединение по его «адресам» и принимает решение по его началу. Если соединение уже помечено как «плохое», оно таким и останется до закрытия — повторные запросы по нему ТСПУ продолжит блокировать.

Сложите три факта вместе — и получится частая ложная картина: стратегию сменили на рабочую, а сайт по F5 «не открывается», потому что висит и проверяется старое соединение, на котором новая стратегия ещё не работала.

[!tip] Как заставить браузер открыть новое соединение По возрастанию надёжности:

  • Ctrl+F5 (он же Ctrl+Shift+R) — жёсткая перезагрузка. Игнорирует кэш и на практике чаще, чем простой F5, инициирует новое соединение (но строгой гарантии нет — зависит от браузера).
  • Новая вкладка (а лучше — предварительно закрыв старую вкладку этого сайта).
  • Новое окно инкогнито / приватное окно — самый чистый способ. У него отдельный сетевой контекст и пустой кэш, поэтому к сайту почти наверняка пойдёт новое соединение.
  • Самое надёжное — полностью закрыть браузер (все окна; проверьте, что он не висит в трее) и открыть заново. Или просто подождать минуту-другую, пока старое keep-alive-соединение закроется по таймауту.

[!warning] Для приложений (Discord, игры) — то же правило, но перезапуск полный У программы нет «F5». Чтобы она открыла новое соединение с новой стратегией, её нужно закрыть целиком, вплоть до выхода из системного трея — иначе фоновый процесс продолжит держать старые соединения. Именно поэтому при подборе стратегии для Discord советуют перезапускать его полностью, «чтобы даже в трее его не было» — подробнее в zapret_not_working#Как починить приложение Дискорд:.

Короткий чек-лист честной проверки

  • Сменили стратегию профиля и убедились, что Zapret перезапущен и статус «работает» (см. add-profile).
  • Проверяете в реальном приложении (браузер/Discord/игра), а не только по вердикту автоподбора.
  • Открываете ресурс новым соединением: новое окно инкогнито, новая вкладка или Ctrl+F5 — не простой F5.
  • Для приложения — полный перезапуск с выходом из трея.
  • Сайт не грузится целиком? Проверьте, не блокируется ли отдельный поддомен/CDN (см. zapret_not_working#4. Сложность современных веб-сайтов).
  • Сомневаетесь, что вообще нужен обход? Сначала пройдите zapret_not_working#🧭 Стандартная процедура: «что-то не работает, а я не знаю почему» (проверка без Zapret → чистый пресет → подбор).

📚 См. также

  • Blockcheck — автоподбор стратегий: что это и как запустить (именно его вердикт и стоит перепроверять руками)
  • add-profile — где задаётся стратегия и как убедиться, что профиль включён
  • desync — почему дурение действует на установке соединения
  • profile — устройство профиля, который вы настраиваете
  • symptom-not-cause — частые ложные выводы при настройке
  • zapret_not_working — полная диагностика и чек-лист
  • curl — как выглядит «рабочий» и «нерабочий» ответ
  • log-analyzer — проверка по фактам из debug-лога: какой профиль сработал и что именно сделала стратегия

[!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.