todo/Zapret2/find-game-strategy.md
loop-uh 0990f02ff9
Some checks failed
Published content check / validate (push) Failing after 5s
Обновить ссылки на переименованный репозиторий zapret → zapretgui
Forgejo-репозиторий переименован; shields.io не ходит по 301-редиректу
API, из-за чего сломался бейдж загрузок. Обновлены ссылки в 12 заметках,
кириллическая метка бейджа URL-закодирована.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 17:32:44 +03:00

32 KiB
Raw Permalink Blame History

date tags aliases
2026-07-10
zapret
zapret2
gui
games
howto
troubleshooting
Как найти стратегию для игры
Подбор стратегии для игры
Игра не работает с Zapret
Профиль для игры
Как настроить Zapret для игры
TCPView для игры
Перебор стратегий для игры

🎮 Как найти и протестировать стратегию для игры (профиль + TCPView)

[!info] О чём заметка Пошаговый метод подбора рабочей desync для игры — «для самых непонятливых», без угадываний. Суть: сначала через tcpview64.exe собираем реальные IP-адреса, на которые ходит игра, кладём их в свой profile — и только потом перебираем стратегии. Так вы заранее знаете, что профиль точно применяется к трафику игры, и любой провал — это честно провал стратегии, а не «профиль не попал в нужный адрес». Что такое пресет и профиль — в preset и profile; создание профиля по шагам — в add-profile; сбор адресов — в Создание своей категории.

[!tip] TL;DR

  1. Собери IP игры через TCPView (tcpview64.exe): запусти игру, смотри Remote-адреса её процессов.
  2. Создай профиль под игру (add-profile) и внеси все найденные IP в ipset этого профиля.
  3. Теперь профиль гарантированно применяется к игре — перебирай стратегии в «Готовых стратегиях».
  4. Каждую стратегию проверяй полным перезапуском игры (вплоть до трея) — см. verify-strategy.
  5. Сначала пробей TCP, потом отдельным профилем — UDP: пока TCP не установился, UDP даже не начнёт подключаться.
  6. Игра заблокирована так, что и адреса не снять? Сначала найди стратегию на пресете «ALL TCP & UDP» — на работающей игре TCPView или netlimiter покажет полный список адресов (связка методов — в конце заметки).

Почему «тыкать стратегии наугад» не работает

Подбор обхода — это два независимых вопроса: к какому трафику применять дурение (filter: домены, IP, порты) и какую именно стратегию применять (desync). Когда фильтр заполнен наугад, перебор стратегий превращается в гадание с двумя классическими ложными выводами:

  • «Эта стратегия не работает»а на деле profile просто не покрывал адрес, на который реально ходит игра. Стратегия тестировалась вхолостую: дурение применялось не к тому трафику или вообще ни к чему.
  • «Профиль не применяется на нужную игру» — потому что неизвестно, какой адрес игре вообще нужен: лаунчер ходит на одни домены, авторизация — на другие, игровой трафик летит на третьи IP.

Оба вывода — symptom-not-cause. Лечится это тем, что вопрос «к какому трафику» закрывается до перебора: адреса игры не угадываются, а снимаются с живого трафика программой TCPView. После этого перебор становится честным экспериментом — фильтр заведомо верный, меняется только стратегия.

Проще говоря: у любой неудачи при подборе есть два возможных виновника — не подошла стратегия или профиль вообще не попадает в трафик игры. Пока адреса в профиле угаданы, вы не знаете, кто из двух виноват, и каждый провал ничего не сообщает. Когда адреса сняты с реального трафика через TCPView, второй виновник исключён: профиль точно попадает в игру, и провал теперь означает ровно одно — не подошла именно эта стратегия, берём следующую.

Шаг 1. Собери IP-адреса игры через TCPView

TCPView (tcpview64.exe) — бесплатная утилита Sysinternals (скачать), которая показывает все соединения каждого процесса в реальном времени. Ключевое её свойство для нашей задачи: она видит даже те запросы, которые не были доставлены — заблокированные соединения всё равно отправляются и попадают в список (в отличие от NetLimiter, показывающего только удачные запросы). Подробный разбор работы с TCPView и Wireshark — в Создание своей категории.

  1. Запусти TCPView, затем запусти игру и её лаунчер.
  2. Найди в списке процессы игры/лаунчера (сортировка по колонке процесса или поиск).
  3. Выпиши все Remote-адреса этих процессов — именно удалённые адреса участвуют в подключении и нужны Запрету (Local-адреса нужны только чтобы определить UDP-порты).
  4. Дай игре пожить: открой магазин, зайди в матч, включи голосовой чат — разные функции ходят на разные адреса, и чем дольше понаблюдаешь, тем полнее список.

[!warning] Наглухо заблокированная игра не покажет все свои адреса TCPView видит соединения, которые игра попыталась открыть — в том числе заблокированные. Но если из-за блокировки игра застревает на лаунчере или логине, до серверов матчей и голосового чата она просто не доходит — этих адресов в списке не будет, игра ещё не пыталась к ним подключиться. Выход — связка с пресетом «ALL TCP & UDP»: временно найти на нём стратегию, при которой игра работает целиком, и снять полный список адресов с живой игры. Как это сделать — в разделе про лобовой вариант ниже.

[!note] Сначала TCP, потом UDP Архитектурно, если TCP-соединение игры не установилось, UDP-трафик даже не начнёт устанавливаться. Поэтому сначала собираем и пробиваем TCP-адреса (этот и следующие два шага), и только когда игра начала подключаться — отдельно смотрим UDP (шаг 4).

Шаг 2. Создай профиль игры и внеси туда собранные IP

Полная пошаговая инструкция по созданию profileadd-profile (там же — зачем сперва дублировать preset как бэкап). Кратко применительно к игре:

  1. «Профили пресета» → большой + → название (например, имя игры) и TCP-порты: не знаешь точных — ставь 80,443-65535.
  2. Открой созданный профиль → вкладка «Редактор» → выбери тип Ipset (работа по IP-адресам, а не по доменам — см. ipset).
  3. Внеси в «Ваши записи» все Remote-IP из шага 1, по одному на строку, и сохрани список.
  4. Если из TCPView видны и доменные имена — их можно продублировать в hostlist того же профиля (hostlist).

С этого момента главное сомнение снято: профиль точно применяется к трафику игры, потому что в нём лежат адреса, снятые с её живых соединений, а не угаданные.

Шаг 3. Перебирай стратегии — теперь честно

Открой профиль игры → вкладка «Готовые стратегии». Это список готовых вариантов дурения (fake, multisplit, multidisorder и комбинации) — он одинаков для любого профиля:

!

Цикл перебора:

  • Выбери следующую стратегию (справа от названия — подсказка, на какой технике она основана).
  • Проверь, что профиль «Включён» (чекбокс в правом верхнем углу) и статус во вкладке «Управление Zapret 2» — «Zapret работает».
  • Полностью перезапусти игру и лаунчер — вплоть до выхода из системного трея. Иначе игра держит старые соединения, к которым новая стратегия не применяется, и перебор идёт «в воздух» — механика разобрана в verify-strategy.
  • Проверь: запускается, логинится, качает обновления.
  • Не работает → следующая стратегия. Работает → шаг 4.

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

Шаг 4. UDP: игровой трафик реального времени

Если игра стала запускаться и логиниться (TCP пробит), но не пускает в матч, лагает или молчит голосовой чат — дело в UDP-составляющей. Для неё нужен отдельный profile:

  1. Определи UDP-порты и адреса: Local-порты видны в TCPView, конкретные адреса на конкретном UDP-порту удобнее ловить Wireshark'ом — оба инструмента разобраны в Создание своей категории. Есть и способ без стороннего софта: записать debug-лог winws2 с расширенным wf и снять UDP-адреса игры из таблицы соединений log-analyzer — TCPView удалённые адреса UDP часто не показывает вовсе.
  2. Создай профиль с UDP-фильтром и своим ipset, стратегии для UDP перебираются так же (обычно это варианты fake).

[!warning] Игровой UDP почти всегда unknown — ставь --payload=all, иначе профиль молчит Самая частая причина «UDP-профиль не работает у игры»: по умолчанию payload равен known, то есть дурение применяется только к опознанным протоколам (TLS, QUIC, HTTP, mtproto_initial). Но игры почти всегда гоняют трафик реального времени по собственным проприетарным протоколам, которые Zapret не распознаёт — их тип payload получается unknown, и дефолтный known пропускает такой трафик мимо, даже если фильтр по портам и ipset совпал идеально. Готовых распознавателей под конкретные игры в Zapret обычно нет, так что рассчитывать на автоопределение не стоит. Лечится явным указанием payload в UDP-профиле: --payload=unknown (только неопознанное — как раз игровой случай) или, чтобы не гадать, --payload=all (и известное, и неопознанное). Практичнее сразу ставить --payload=all во всех игровых UDP-профилях. Подробный разбор типов и синтаксиса — в payload#Игры: payload часто unknown — ставьте unknown или all.

Куда деть собранные адреса ещё

Полный список IP и портов игры — ценность не только для вас: его можно отправить разработчикам Zapret2 GUI, чтобы игру добавили в категории по умолчанию — правила оформления в Создание своей категории. Тогда следующим игрокам не придётся проходить этот путь.

Лобовой вариант: пресеты «ALL TCP & UDP» — и связка с TCPView

В чатах поддержки (июль 2026) часто советуют путь ещё проще: включить preset из раздела ALL TCP & UDP — там стратегия применяется сразу ко всем сайтам (широкий профиль-перехватчик «Все сайты (исключение)», механика — в profile#Порядок профилей важен: чем выше — тем главнее) — и перебирать стратегии в нём. По словам разработчика Zapret2 GUI, это «самый тупой, но лёгкий способ найти нужную стратегию».

!

!

Как такой пресет устроен внутри

Чтобы понимать, чем именно вы щёлкаете при таком переборе, вот реальное содержимое стокового пресета ALL TCP & UDP hostfakesplit_multi_syndata (BuiltinVersion 2.24, июль 2026) — шапка с blob опущена, она такая же, как в любом пресете (см. preset#Структура пресета):

# Preset: ALL TCP & UDP hostfakesplit_multi_syndata
# BuiltinVersion: 2.24

--wf-tcp-out=80,443-65535    # перехват почти всех TCP-портов
--wf-udp-out=80,443-65535    # и почти всех UDP-портов

# ( ...стандартная шапка: --lua-init, кэш, --blob — опущена... )

--name=Исключения (RU сайты)       # профиль 1 — самый верхний
--filter-tcp=80,443-65535
--ipset=lists/ipset-ru.txt         # российские сайты,
--ipset=lists/ipset-dns.txt        # DNS-серверы
--ipset=lists/ipset-exclude.txt    # и ручные исключения...
--out-range=-d8
--payload=tls_client_hello
--lua-desync=pass                  # ...не дурятся вообще

--new

--name=Все сайты (айпи)            # профиль 2 — ВЕСЬ остальной TCP
--filter-tcp=80,443-65535
--ipset-exclude=lists/ipset-ru.txt
--ipset-exclude=lists/ipset-dns.txt
--ipset-exclude=lists/ipset-exclude.txt
--out-range=-n8
--lua-desync=send:repeats=2
--lua-desync=syndata:blob=stun_pat
--lua-desync=hostfakesplit_multi:hosts=google.com,vimeo.com:tcp_ts=-1000:tcp_md5:repeats=2

--new

--name=Все сайты UDP (айпи)        # профиль 3 — ВЕСЬ UDP, отдельно
--filter-udp=443-65535
--ipset-exclude=lists/ipset-ru.txt
--ipset-exclude=lists/ipset-dns.txt
--ipset-exclude=lists/ipset-exclude.txt
--out-range=-d8
--payload=all
--lua-desync=fake:blob=quic_google:ip_autottl=-2,3-20:ip6_autottl=-2,3-20:repeats=10:payload=all

Что здесь важно понимать:

  • Перехват на всю ширину. wf --wf-tcp-out и --wf-udp-out открыты на 80,443-65535 — Zapret видит почти весь исходящий трафик, включая нестандартные игровые порты. Именно поэтому такой пресет «дотягивается» до игры, адресов которой вы не знаете.
  • Российское — мимо дурения. Самый верхний профиль «Исключения (RU сайты)» держит ipset российских сайтов и DNS на стратегии pass («ничего не делать»). По правилу profile#Порядок профилей важен: чем выше — тем главнее он срабатывает первым — поэтому «на all-tcp ломается всё» — преувеличение: отваливаться могут в основном зарубежные сервисы, а RU-ресурсы пресет не трогает вовсе.
  • Один TCP-профиль на всё остальное. «Все сайты (айпи)» берёт весь TCP за вычетом тех же списков (--ipset-exclude) — это и есть тот профиль, где вы перебираете стратегии: GUI при выборе в «Готовых стратегиях» подменяет строки --lua-desync именно этого блока. В этом пресете стоит связка send + syndata (с блобом stun_pat) + hostfakesplit (маскировка под чужие хосты google.com, vimeo.com).
  • UDP — отдельный профиль с отдельной стратегией. «Все сайты UDP (айпи)» дурит весь UDP 443-65535 своей стратегией (fake с QUIC-блобом и автоподбором TTL). Смена TCP-стратегии его не касается — ещё одно напоминание, что игровой UDP-трафик пробивается отдельно.
  • Названия профилей от пресета к пресету отличаются — в этом файле «Все сайты (айпи)», в других стоковых «Все сайты (исключение)» / «Все сайты (хостлисты)» (как на скриншоте выше). Механика одна: широкий фильтр минус списки исключений.

[!tip] Как узнать профиль «на все сайты» в любом пресете Признак простой (его же называет разработчик GUI, чат поддержки, июль 2026): если в профиле нет --ipset/--hostlist, а есть только исключающие списки --ipset-exclude/--hostlist-exclude (механика — в exclusions) — профиль действует на все сайты. Именно так устроены «Все сайты (айпи)» и «Все сайты UDP (айпи)» в листинге выше.

Перебрал все пресеты — перебор только начинается

Готовых пресетов в разделе ALL TCP & UDP немного — 12 штук (GUI v21.1.3.18, июль 2026, скриншот выше). Частая ошибка: переключить все 12, не завестись — и решить «я всё перепробовал, ничего не работает». Это не так: перепробованы только пресеты, а стратегий гораздо больше, чем пресетов.

Проще говоря: preset — это не отдельный способ обхода, а всего лишь пара заранее выбранных за вас стратегий — одна для profile, одна для UDP-профиля. Сами стратегии лежат в списке «Готовые стратегии» внутри каждого профиля, и в этом списке порядка сотни вариантов (оценка по списку в GUI v21.1.3.18, июль 2026). Переключая пресеты, вы попробовали только 12 пар из этой сотни — все остальные стратегии по-прежнему доступны и перебираются вручную, прямо внутри любого включённого пресета, отдельно для TCP и отдельно для UDP:

  • «Профили пресета» → TCP-профиль («Все сайты (айпи)» / «Все сайты (исключение)») → «Готовые стратегии» → выбрать следующую. Этот профиль отвечает за лаунчер, логин, загрузку.
  • «Профили пресета» → UDP-профиль («Все сайты UDP») → «Готовые стратегии» → выбрать следующую. Этот отвечает за матчи и голос; его стратегия от TCP-профиля не зависит.

Вывод: кончились 12 пресетов — не бросайте перебор. Откройте профиль внутри любого из них и продолжайте менять стратегии по одной: сочетаний «TCP-стратегия + UDP-стратегия» — сотни.

Как понять, что стратегия на «all tcp» сработала

Открывать каждый сайт подряд не нужно. Раз пресет применяет стратегию ко всему трафику, критерий проверки один — сама игра: полностью перезапустил (verify-strategy) → запускается, логинится, пускает в матч. Остальные сайты — не индикатор: им та же стратегия может не подойти, и это ничего не говорит о том, работает ли она для игры.

Связка двух методов: нашёл стратегию — сразу собери адреса

Когда игра на «all tcp» заработала, не спеши переключаться обратно. Именно в этот момент TCPView покажет полный список адресов: игра живая, проходит все этапы — лаунчер, логин, матчи, голос — и реально открывает соединения ко всем своим серверам (заблокированная игра до большинства из них просто не доходила, см. шаг 1). Порядок такой:

  1. На рабочей «all tcp»-стратегии запусти TCPView и сними все Remote-адреса игры, погоняв её по всем режимам.
  2. Вернись на свой обычный пресет.
  3. Создай узкий профиль игры с этими адресами и той самой стратегией — шаги 23 основного метода.

Так лобовой перебор и метод TCPView смыкаются в один цикл: «all tcp» отвечает на вопрос «какая стратегия», работающая игра под ним — на вопрос «какие адреса», а узкий профиль закрепляет и то и другое без побочных эффектов.

Оставаться же на «all tcp» насовсем не стоит: пока он активен, зарубежные сервисы (Spotify, Discord, форумы) получают ту же неоптимальную для них стратегию и могут отваливаться, а узкие профили под широким перехватчиком не срабатывают вовсе. Это поисковый стенд, а не постоянная конфигурация; постоянная — узкий профиль из шагов выше.

Если ни одна стратегия не помогла

  • Проверь честность проверки: полный перезапуск игры и лаунчера, вплоть до трея (verify-strategy).
  • Если перебирал только стоковые пресеты «ALL TCP & UDP» — это лишь 12 готовых комбинаций: внутри любого из них TCP- и UDP-стратегии меняются независимо, комбинаций сотни (см. find-game-strategy#Перебрал все пресеты — перебор только начинается).
  • Не работает именно UDP-часть (не пускает в матч, молчит голос)? Проверь, что в UDP-профиле стоит --payload=all или --payload=unknown: с дефолтным known игровой UDP с неопознанным протоколом дурится вхолостую (см. предупреждение в find-game-strategy#Шаг 4. UDP: игровой трафик реального времени).
  • Пересними адреса: у игр адреса и CDN меняются, список из TCPView мог устареть или быть неполным (собери его заново, погоняв игру подольше).
  • Убедись, что профиль игры стоит выше широких ipset-профилей в пресете — иначе трафик перехватывает профиль над ним (profile#Порядок профилей важен: чем выше — тем главнее, profile-independence).
  • Возможно, игра вообще не блокируется по DPI (упал сам сервис, GeoIP-бан, проблема провайдера) — тогда никакая стратегия не поможет; с чего начать диагностику — symptom-not-cause.

📚 См. также

  • Создание своей категории — TCPView и Wireshark подробно: как собирать домены, IP и UDP-порты ресурса
  • find-domain-owner — тот же принцип «сначала адреса, потом стратегии», но для сайтов: браузерное расширение вместо TCPView
  • add-profile — пошаговое создание профиля в GUI (бэкап пресета, редактор списков, включение)
  • verify-strategy — почему без полного перезапуска игры перебор бессмыслен
  • profile — фильтры, порядок «выше = главнее» и механика широких профилей «all tcp udp»
  • preset — почему захардкоженная стратегия «на всё» чинит одни сайты и ломает другие
  • payload — почему игровой UDP-трафик получает тип unknown и когда ставить --payload=all
  • ipset · hostlist — файлы списков IP и доменов, которые наполняет профиль
  • exclusions — как устроены exclude-списки широких профилей и профили pass
  • circular — автоматический перебор стратегий (другая механика: Lua-оркестратор сам меняет стратегию при неудачах)
  • log-analyzerсбор адресов и портов игры через debug-лог, без Wireshark и TCPView (особенно для UDP)
  • Blockcheck — автоподбор стратегии для сайтов (для игр работает хуже: проверяет через curl один домен)
  • symptom-not-cause — частые ложные выводы при настройке

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