Some checks failed
Published content check / validate (push) Failing after 5s
Forgejo-репозиторий переименован; shields.io не ходит по 301-редиректу API, из-за чего сломался бейдж загрузок. Обновлены ссылки в 12 заметках, кириллическая метка бейджа URL-закодирована. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
220 lines
32 KiB
Markdown
220 lines
32 KiB
Markdown
---
|
||
date: 2026-07-10
|
||
tags:
|
||
- zapret
|
||
- zapret2
|
||
- gui
|
||
- games
|
||
- howto
|
||
- troubleshooting
|
||
aliases:
|
||
- Как найти стратегию для игры
|
||
- Подбор стратегии для игры
|
||
- Игра не работает с 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 ([скачать](https://download.sysinternals.com/files/TCPView.zip)), которая показывает все соединения каждого процесса в реальном времени. Ключевое её свойство для нашей задачи: она **видит даже те запросы, которые не были доставлены** — заблокированные соединения всё равно отправляются и попадают в список (в отличие от 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
|
||
|
||
Полная пошаговая инструкция по созданию [[profile|профиля]] — [[add-profile|«Как добавить свой профиль»]] (там же — зачем сперва дублировать [[preset|пресет]] как бэкап). Кратко применительно к игре:
|
||
|
||
1. «Профили пресета» → большой `+` → название (например, имя игры) и TCP-порты: не знаешь точных — ставь `80,443-65535`.
|
||
2. Открой созданный профиль → вкладка **«Редактор»** → выбери тип **Ipset** (работа по IP-адресам, а не по доменам — см. [[ipset]]).
|
||
3. Внеси в «Ваши записи» **все** Remote-IP из шага 1, по одному на строку, и сохрани список.
|
||
4. Если из TCPView видны и доменные имена — их можно продублировать в hostlist того же профиля ([[hostlist]]).
|
||
|
||
С этого момента главное сомнение снято: профиль **точно применяется** к трафику игры, потому что в нём лежат адреса, снятые с её живых соединений, а не угаданные.
|
||
|
||
## Шаг 3. Перебирай стратегии — теперь честно
|
||
|
||
Открой профиль игры → вкладка **«Готовые стратегии»**. Это список готовых вариантов дурения ([[fake]], [[multisplit]], [[multidisorder]] и комбинации) — он одинаков для любого профиля:
|
||
|
||
![[vse-saity-strategii-gui-2026-07.png]]
|
||
|
||
Цикл перебора:
|
||
|
||
- [ ] Выбери следующую стратегию (справа от названия — подсказка, на какой технике она основана).
|
||
- [ ] Проверь, что профиль **«Включён»** (чекбокс в правом верхнем углу) и статус во вкладке «Управление Zapret 2» — «Zapret работает».
|
||
- [ ] **Полностью перезапусти игру и лаунчер** — вплоть до выхода из системного трея. Иначе игра держит старые соединения, к которым новая стратегия не применяется, и перебор идёт «в воздух» — механика разобрана в [[verify-strategy|«Как проверить, заработала ли стратегия»]].
|
||
- [ ] Проверь: запускается, логинится, качает обновления.
|
||
- [ ] Не работает → следующая стратегия. Работает → шаг 4.
|
||
|
||
Каждый «провал» теперь информативен: фильтр заведомо верный, значит именно эта стратегия не подходит под блокировку — берём следующую.
|
||
|
||
## Шаг 4. UDP: игровой трафик реального времени
|
||
|
||
Если игра стала запускаться и логиниться (TCP пробит), но **не пускает в матч, лагает или молчит голосовой чат** — дело в UDP-составляющей. Для неё нужен **отдельный [[profile|UDP-профиль]]**:
|
||
|
||
1. Определи UDP-порты и адреса: Local-порты видны в TCPView, конкретные адреса на конкретном UDP-порту удобнее ловить Wireshark'ом — оба инструмента разобраны в [[Создание своей категории]]. Есть и способ без стороннего софта: записать debug-лог winws2 с расширенным [[wf|wf-фильтром]] и снять UDP-адреса игры из таблицы соединений [[log-analyzer|анализатора лога]] — TCPView удалённые адреса UDP часто не показывает вовсе.
|
||
2. Создай профиль с UDP-фильтром и своим ipset, стратегии для UDP перебираются так же (обычно это варианты [[fake]]).
|
||
|
||
> [!warning] Игровой UDP почти всегда `unknown` — ставь `--payload=all`, иначе профиль молчит
|
||
> Самая частая причина «UDP-профиль не работает у игры»: по умолчанию [[payload|фильтр 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|заметке про payload]].
|
||
|
||
## Куда деть собранные адреса ещё
|
||
|
||
Полный список IP и портов игры — ценность не только для вас: его можно [отправить разработчикам Zapret2 GUI](https://git.zapret.moe/zapretdiscordyoutube/zapretgui/issues/new?template=hostlist_ipset_request.yml), чтобы игру добавили в категории по умолчанию — правила оформления в [[Создание своей категории]]. Тогда следующим игрокам не придётся проходить этот путь.
|
||
|
||
## Лобовой вариант: пресеты «ALL TCP & UDP» — и связка с TCPView
|
||
|
||
В чатах поддержки (июль 2026) часто советуют путь ещё проще: включить [[preset|пресет]] из раздела `ALL TCP & UDP` — там стратегия применяется **сразу ко всем сайтам** (широкий профиль-перехватчик «Все сайты (исключение)», механика — в [[profile#Порядок профилей важен: чем выше — тем главнее|«Порядок профилей»]]) — и перебирать стратегии в нём. По словам разработчика Zapret2 GUI, это «самый тупой, но лёгкий способ найти нужную стратегию».
|
||
|
||
![[all-tcp-udp-presets-2026-07.png]]
|
||
|
||
![[vse-saity-profili-gui-2026-07.png]]
|
||
|
||
### Как такой пресет устроен внутри
|
||
|
||
Чтобы понимать, чем именно вы щёлкаете при таком переборе, вот реальное содержимое стокового пресета `ALL TCP & UDP hostfakesplit_multi_syndata` (BuiltinVersion 2.24, июль 2026) — шапка с [[blob|блобами]] опущена, она такая же, как в любом пресете (см. [[preset#Структура пресета|структуру пресета]]):
|
||
|
||
```bash
|
||
# 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|WinDivert-фильтры]] `--wf-tcp-out` и `--wf-udp-out` открыты на `80,443-65535` — Zapret видит почти весь исходящий трафик, включая нестандартные игровые порты. Именно поэтому такой пресет «дотягивается» до игры, адресов которой вы не знаете.
|
||
- **Российское — мимо дурения.** Самый верхний профиль «Исключения (RU сайты)» держит [[ipset|ipset-списки]] российских сайтов и DNS на стратегии `pass` («ничего не делать»). По правилу [[profile#Порядок профилей важен: чем выше — тем главнее|«выше = главнее»]] он срабатывает первым — поэтому «на all-tcp ломается всё» — преувеличение: отваливаться могут в основном зарубежные сервисы, а RU-ресурсы пресет не трогает вовсе.
|
||
- **Один TCP-профиль на всё остальное.** «Все сайты (айпи)» берёт весь TCP **за вычетом** тех же списков (`--ipset-exclude`) — это и есть тот профиль, где вы перебираете стратегии: GUI при выборе в «Готовых стратегиях» подменяет строки `--lua-desync` именно этого блока. В этом пресете стоит связка `send` + [[syndata]] (с блобом `stun_pat`) + [[hostfakesplit|hostfakesplit_multi]] (маскировка под чужие хосты `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|TCP-профиля]], одна для 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. Создай узкий профиль игры с этими адресами и **той самой стратегией** — шаги 2–3 основного метода.
|
||
|
||
Так лобовой перебор и метод 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: игровой трафик реального времени|Шаге 4]]).
|
||
- Пересними адреса: у игр адреса и CDN меняются, список из TCPView мог устареть или быть неполным (собери его заново, погоняв игру подольше).
|
||
- Убедись, что профиль игры стоит **выше** широких ipset-профилей в пресете — иначе трафик перехватывает профиль над ним ([[profile#Порядок профилей важен: чем выше — тем главнее|порядок профилей]], [[profile-independence|один сайт — один профиль]]).
|
||
- Возможно, игра вообще не блокируется по DPI (упал сам сервис, GeoIP-бан, проблема провайдера) — тогда никакая стратегия не поможет; с чего начать диагностику — [[symptom-not-cause|«Почему „не работает“ — это симптом»]].
|
||
|
||
## 📚 См. также
|
||
|
||
- [[Создание своей категории]] — TCPView и Wireshark подробно: как собирать домены, IP и UDP-порты ресурса
|
||
- [[find-domain-owner|Как узнать, какому CDN принадлежит домен]] — тот же принцип «сначала адреса, потом стратегии», но для сайтов: браузерное расширение вместо TCPView
|
||
- [[add-profile|Как добавить свой профиль]] — пошаговое создание профиля в GUI (бэкап пресета, редактор списков, включение)
|
||
- [[verify-strategy|Как проверить, заработала ли стратегия]] — почему без полного перезапуска игры перебор бессмыслен
|
||
- [[profile|Что такое профиль]] — фильтры, порядок «выше = главнее» и механика широких профилей «all tcp udp»
|
||
- [[preset|Что такое пресет]] — почему захардкоженная стратегия «на всё» чинит одни сайты и ломает другие
|
||
- [[payload|Типы --payload]] — почему игровой UDP-трафик получает тип `unknown` и когда ставить `--payload=all`
|
||
- [[ipset]] · [[hostlist]] — файлы списков IP и доменов, которые наполняет профиль
|
||
- [[exclusions|Исключения]] — как устроены exclude-списки широких профилей и профили `pass`
|
||
- [[circular]] — автоматический перебор стратегий (другая механика: Lua-оркестратор сам меняет стратегию при неудачах)
|
||
- [[log-analyzer|Анализ лога winws2]] — сбор адресов и портов игры через debug-лог, без Wireshark и TCPView (особенно для UDP)
|
||
- [[Blockcheck|BlockCheck]] — автоподбор стратегии для сайтов (для игр работает хуже: проверяет через curl один домен)
|
||
- [[symptom-not-cause|Почему «не работает» — это симптом]] — частые ложные выводы при настройке
|
||
|
||
---
|
||
|
||
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
|
||
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/Zapret2/find-game-strategy.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).
|