Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
15 KiB
| date | tags | aliases | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-06-29 |
|
|
🧪 Как проверить, заработала ли стратегия (и почему проверка часто обманывает)
[!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: исходник этой заметки · весь репозиторий.