todo/Zapret2/profile.md
loop-uh 0ad0bcc8dd
Some checks failed
Published content check / validate (push) Failing after 5s
seo+зеркало: [!mirror]-плашка со ссылкой на вики и description во frontmatter всех заметок
Каждая публикуемая заметка получила callout-шапку со ссылкой на свою страницу
wiki.zapret.moe (на самой вики она вырезается транформером RemoveMirrorCallout,
видна только на зеркале Obsidian Publish и в Forgejo) и SEO-поле description —
1–2 предложения для meta description обоих сайтов.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:05:57 +03:00

248 lines
34 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-16
tags:
- zapret
- zapret2
- gui
- preset
- profile
- troubleshooting
aliases:
- Профиль
- Профиль пресета
- Профиль Zapret 2
- Что такое профиль
- Профили пресета
- Мультипрофиль
- Запрет не работает
- Перепробовал все пресеты
- YouTube не работает 2026
- Какая стратегия самая рабочая
description: "Что такое профиль в Zapret 2: чем отличается от пресета, из каких фильтров и стратегий состоит, порядок профилей и почему «не работает» — симптом."
---
> [!mirror] Резервное зеркало
> Актуальная версия этой страницы — на основной вики: [wiki.zapret.moe/Zapret2/profile](https://wiki.zapret.moe/Zapret2/profile)
# 🧩 Что такое профиль в [[Zapret2|Zapret 2]]
> [!info] О чём заметка
> Объясняет с нуля, что такое **профиль** в Zapret 2, почему [[preset|пресет]] — это лишь «коробка», а вся реальная работа по обходу идёт через профили, и из каких полей профиль состоит. Подробные справочники по каждому полю — в соседних заметках: [[filter]], [[out-range]], [[payload]], [[desync]], [[blob]]. Как перейти к ручной настройке профилей — [[guide|гайд на настройку]] и [[Как пользоваться Zapret]].
> [!note] Что эта заметка НЕ объясняет (и почему)
> Заметка намеренно держится одной темы — **что такое профиль и что с ним можно делать**. Логику отдельных флагов она в деталях **не раскрывает**: что именно делает [[desync|`--lua-desync`]], как устроены [[payload|`--payload`]], [[out-range|`--out-range`]], [[filter|фильтры]] или [[blob|блобы]] — у каждого своя атомарная заметка (часть уже создана, часть появится позже). Здесь они упоминаются лишь в той мере, в какой нужно понять профиль; за полным разбором идите по ссылкам рядом по тексту и в разделе «См. также». Это следование принципу атомарности: одна заметка — один вопрос.
## Введение: что вообще происходит, когда работает [[Zapret2|Zapret 2]]
Чтобы понять, что такое профиль, сначала нужна общая картина. Будет понятно даже без сетевого опыта.
1. Когда вы открываете сайт, ваш компьютер шлёт в интернет **пакеты** — маленькие порции данных. Среди первых пакетов есть тот, где открытым текстом видно, **на какой сайт** вы идёте (в TLS это поле называется **SNI** — Server Name Indication, имя сервера внутри запроса).
2. У провайдера стоит **DPI (ТСПУ)** (Deep Packet Inspection — система глубокого анализа трафика). Она читает этот пакет, видит запрещённое имя (например `youtube.com`) и **рвёт соединение**: либо роняет пакет, либо подменяет ответ.
3. Программа **[[Zapret2|Zapret 2]]** (её ядро — `winws2.exe`) перехватывает ваши исходящие пакеты **до того, как они уйдут провайдеру**, и слегка их «портит» по специальной методике — так, чтобы DPI **не смог прочитать** запрещённое имя, **а настоящий сервер — смог**. Эти методики называют **стратегиями обхода** или «дурением» (desync).
> [!example] На пальцах
> DPI (ТСПУ) — это вахтёр, который читает адрес на каждом конверте и не пропускает письма на «чёрные» адреса. Zapret 2 — хитрый отправитель: он рвёт письмо на части, шлёт их вперемешку или подкладывает пустышку-обманку. Вахтёр не может собрать адрес и пропускает, а почта на том конце складывает части правильно и доставляет. Разные сайты блокируют по-разному, поэтому и **приёмы нужны разные** — отсюда и появляются профили.
Вся эта настройка — «какой трафик ловить и как именно его портить» — записана в текстовом файле. Этот файл и есть **пресет**, а отдельные правила внутри него — **профили**.
## TL;DR
- **[[preset|Пресет]]** — это весь файл стратегии целиком (например `Default v1 (game filter)`): готовый набор правил сразу на все ресурсы. Это **основа**, «коробка с настройками».
- **Профиль** — один блок внутри пресета, отделённый строкой `--new`. Он отвечает за **одну категорию трафика**: YouTube-интерфейс, Discord voice, Telegram, Cloudflare и т.д.
- Формула профиля: «**для какого трафика** (фильтр) применить **какой обход** (desync)».
- **Реальная работа идёт именно через профили.** Пресет лишь хранит их по порядку; портит трафик и определяет успех — каждый профиль по отдельности. Поэтому тонкая настройка = настройка профилей (это и называют **«прямым запуском»**).
- **Порядок профилей важен**: движок идёт по ним сверху вниз. В GUI порядок меняет кнопка «Порядок в пресете».
- В GUI каждая строка вкладки «Профили пресета» — это один профиль; справа показано имя его стратегии (`Split Position`, `hostfakesplit_multi`, `pass (ничего не делает)` и т.д.).
## Пресет и профиль — в чём разница
> [!example] Аналогия с аптечкой
> **Пресет** — это аптечка целиком: готовый набор «лекарств» на все случаи. **Профиль** — одно лекарство от одной болезни: «для трафика YouTube — вот такое дурение, для Discord — другое». В одной аптечке-пресете лежит несколько десятков таких лекарств-профилей.
Формально:
| Понятие | Что это | Пример |
|---|---|---|
| **Пресет** ([[preset]]) | Один `.txt`-файл = общая шапка + набор профилей | `Default v1 (game filter)` |
| **Профиль** | Один блок внутри пресета, отделённый `--new` | `youtube.com (интерфейс)`, `Telegram`, `Cloudflare UDP` |
Пресет в файле выглядит как длинная «простыня», где блоки-профили идут друг за другом и разделяются строкой `--new`:
```
( шапка пресета: --lua-init, --blob, --wf-tcp-out … )
--name=Исключения (RU сайты) ← профиль 1
--filter-tcp=80,443-65535
--ipset=lists/ipset-ru.txt
--lua-desync=pass
--new ← разделитель
--name=youtube.com (интерфейс) ← профиль 2
--filter-tcp=80,443
--hostlist=lists/youtube.txt
--lua-desync=hostfakesplit:...
--new ← разделитель
--name=Telegram ← профиль 3
...
```
## Почему пресет — это только основа, а настраивать надо профили
Это ключевая мысль. Пресет сам по себе ничего не «решает» — он лишь **контейнер**, который хранит профили по порядку и общую шапку. Всю фактическую работу делает движок, **прогоняя трафик через профили по одному**: для каждого перехваченного пакета он ищет первый профиль, чьи фильтры подходят, и применяет **его** стратегию. Успех или провал обхода конкретного сайта зависит от **настроек его профиля**, а не от пресета «в целом».
> [!warning] Почему «просто скачать пресет» часто не хватает
> В готовом пресете стратегии **жёстко прописаны** под каждый фильтр и хостлист. Из-за этого типична ситуация: на пресете №1 открывается YouTube, но не грузится Discord; на пресете №2 — наоборот. Причина в том, что у вашего провайдера DPI настроен по-своему, и «средняя» стратегия из чужого пресета попадает не во все профили. Решение — не перебирать пресеты бесконечно, а **подобрать стратегию для каждой проблемной категории/профиля отдельно**. (Подробнее — callout «Почему пресеты плохи?» в [[preset]].)
Именно этот режим тонкой настройки в Zapret 2 называют **«прямым запуском»** (*по крайней мере он так назывался раньше - сейчас мы пытается от этого названия избавиться. ведь это не какой-то особый режим Запрета и по факту название вводит в заблуждение*): вы берёте наиболее удачный из готовых пресетов как отправную точку, а затем правите стратегии у отдельных профилей под свои нужды — и можете создавать собственные категории. Как включить его`Настройки → Прямой запуск` (см. [[Как пользоваться Zapret]] и [[guide]]).
> [!tip] Вывод
> Пресет = с чего начать. Профиль = что реально настраивать, когда «почти всё работает, кроме одного-двух сайтов». Учиться менять стратегию у одного профиля полезнее, чем вслепую перебирать десятки готовых пресетов.
### Что делать на практике: копать внутрь, к стратегиям
Раз готовый пресет не помог целиком — нужно **копать глубже**. Пресет — это лишь верхушка айсберга: под ним скрыто множество профилей, а каждый профиль, в свою очередь, состоит из нескольких частей — фильтров (порты, протокол), хостлистов, ипсетов, диапазона пакетов и самой стратегии обхода.
> [!example] Айсберг
> Над водой — название пресета (`Default v1`), которое все видят и которое перебирают. Под водой — десятки профилей, а внутри каждого ещё несколько «слоёв»: что ловить (фильтр), у каких доменов (хостлист/ипсет), в каких пакетах (`--out-range`/`--payload`) и **как портить** (`--lua-desync`). Перебор пресетов — это попытки сменить только верхушку, не трогая то, что под водой.
Хорошая новость: **почти всё под водой уже настроено за вас**. Фильтры, хостлисты и ипсеты для популярных ресурсов (YouTube, Discord, Telegram, Cloudflare и т.д.) разработчики и сообщество уже собрали и поддерживают — лезть в них новичку обычно **не нужно**. Меняется от провайдера к провайдеру по сути одно: **какой метод десинхронизации (стратегия дурения) обманет именно ваш DPI**.
> [!tip] Главный практический приём
> В большинстве случаев достаточно **перебирать не пресеты, а стратегии (`--lua-desync`) внутри проблемного профиля**. Открываете «Прямой запуск», находите профиль нужного сайта и по очереди пробуете разные методы десинхронизации ([[desync|fake, split, disorder, hostfakesplit]] и др.), пока ресурс не заработает. Фильтры/хостлисты/ипсеты при этом, как правило, оставляете как есть.
## Анатомия одного профиля
Каждый профиль — это несколько строк-флагов до следующего `--new`. Флаги делятся на две роли: **фильтры** («какой трафик ловить») и **desync** («как его портить»). Разберём реальный блок из пресета `Default v1 (game filter)`:
```
--name=youtube.com (интерфейс)
--filter-tcp=80,443
--hostlist=lists/youtube.txt
--out-range=-d8
--payload=tls_client_hello
--lua-desync=hostfakesplit:host=ozon.ru:tcp_ts=-1000:tcp_md5:repeats=4
```
Читается так: «профиль `youtube.com (интерфейс)` ловит TCP-трафик на портах 80 и 443, только к доменам из `youtube.txt`, только в первых 8 пакетах с данными, только тип TLS ClientHello — и применяет к нему стратегию `hostfakesplit`».
| Поле | Простыми словами | В примере | Подробнее |
|---|---|---|---|
| `--name` | Имя профиля — только метка в GUI, на трафик не влияет | `youtube.com (интерфейс)` | — |
| `--filter-tcp` / `--filter-udp` | На какие порты и транспорт реагировать. Если задан только TCP — UDP в этом профиле игнорируется (и наоборот) | TCP `80,443` | [[filter]] |
| `--filter-l7` | Сузить по протоколу приложения: `http`, `tls`, `quic`, `wireguard`, `discord`, `stun`, `mtproto`… | — (не задан) | [[filter]] |
| `--hostlist` / `--ipset` / `--ipset-exclude` | По каким доменам (по SNI/Host) или диапазонам IP срабатывать — либо какие исключить | домены из `lists/youtube.txt` | [[hostlist]] · [[ipset]] |
| `--out-range` | На каких по счёту исходящих пакетах работать. `d` — пакеты с данными, `n` — все пакеты; `-d8` = с начала по 8-й пакет с данными | `-d8` | [[out-range]] |
| `--payload` | На какой **тип** содержимого реагировать: `tls_client_hello`, `http_req`, `quic_initial`, `all`… По умолчанию `known` | `tls_client_hello` | [[payload]] |
| `--lua-desync` | Сама **стратегия обхода** (дурение). Можно несколько строк подряд — выполняются по очереди | `hostfakesplit:...` | [[desync]] |
> [!note] Фильтры складываются по «И» (AND)
> Все фильтры профиля действуют одновременно: трафик должен подойти под **порт** И **протокол** И **хостлист/ipset** И **диапазон пакетов** И **тип payload**. Не подошёл хоть один — профиль пропускается, движок проверяет следующий. Поэтому слишком узкие фильтры — частая причина «стратегия вроде есть, а не срабатывает».
### Профиль-исключение: `--lua-desync=pass`
`pass` означает «ничего не делать» — пропустить трафик без вмешательства. Так оформляют **исключения**. Например, первые профили стоковых пресетов — «Исключения айпи (RU сайты)» и «Исключения домены (RU сайты)» (до обновления пресетов в августе 2026 — один общий `Исключения (RU сайты)` по IP) с `--lua-desync=pass` — намеренно не трогают российские сайты, чтобы случайным «дурением» не сломать им соединение. Поскольку они стоят **первыми**, российский трафик отрабатывается ими и до «портящих» профилей ниже уже не доходит. Полный разбор исключений — почему глобальной «строчки Исключения» в Zapret 2 нет, чем `pass`-профиль отличается от exclude-списков и какие с ними подводные камни — в [[exclusions|отдельной заметке об исключениях]].
### Несколько `--lua-desync` в одном профиле
Стратегии можно складывать стопкой — движок применит их по очереди к подходящему пакету:
```
--lua-desync=send:repeats=2
--lua-desync=syndata:blob=stun_pat
--lua-desync=tls_multisplit_sni:seqovl=652:seqovl_pattern=tls_google
```
Такие «комбо» видны во многих профилях примера (Cloudflare, WhatsApp, GitHub, Fandom). Что делает каждая стратегия — в [[desync]].
## Порядок профилей важен
Движок идёт по профилям **сверху вниз** и для каждого пакета берёт первый подходящий. Из этого два практических следствия:
- **[[exclusions|Исключения]]** (`pass` для своих/российских сайтов) ставят **в начало**, иначе нижний «портящий» профиль перехватит их раньше.
- Если два профиля ловят пересекающийся трафик (например, оба по порту 443 без узкого хостлиста), сработает тот, что **выше**. В GUI порядок меняет кнопка **«Порядок в пресете»**.
## Шапка пресета (общая часть — не относится к профилю)
Над всеми профилями идёт общая секция, действующая на весь пресет сразу:
```
# Preset: Default v1 (game filter) ← метаданные для GUI: имя
# BuiltinVersion: 2.19 ← версия встроенного пресета
# IconColor: #a8c5ff ← цвет иконки
--lua-init=@lua/... ; подключение Lua-библиотек со стратегиями (без них дурение не работает)
--ctrack-disable=0 ; отслеживание соединений (conntrack) включено
--ipcache-lifetime=8400 ; время жизни кэша IP, сек
--wf-tcp-out=80,443,... ; какой TCP-трафик вообще перехватывать (глобальный фильтр WinDivert)
--wf-udp-out=443-65535
--blob=tls_google:@bin/... ; именованные «заготовки» пакетов (fake ClientHello, QUIC, STUN…)
```
- `--lua-init` загружает библиотеки со стратегиями ([[fake]], [[multisplit]], [[multidisorder]] и др.) — без них профильные `--lua-desync` не на чем строить.
- `--blob` объявляет именованные бинарные заготовки (`fake_tls`, `quic_google`, `stun_pat`…), на которые ссылаются десинки профилей через `blob=имя` (подробнее — [[blob]]).
- `--wf-tcp-out` / `--wf-udp-out` — глобальные фильтры [[wf|WinDivert]]: какой трафик вообще попадёт в движок. Это «крупное сито» **до** профилей; не путать с фильтрами внутри профиля.
## Где найти профили в GUI и как их читать
Профили живут в левом меню Zapret 2: раздел **«Настройки Запрета» → «Профили пресета»**. Откроется экран «Настройка пресета: …» со списком всех профилей активного пресета:
![[profili-preseta-gui.png]]
На вкладке **«Профили пресета»** профили сгруппированы по категориям (`YouTube 4`, `Discord 6`, `Мессенджеры 4`, `Соцсети 5` — число = сколько профилей в группе). Сверху — чипсы-фильтры: `Все / TCP / UDP / Discord / Voice / Games`, рядом — поиск профиля по имени.
В каждой строке:
- **слева** — иконка ресурса и имя профиля (`--name`), тип (`TCP`/`UDP`/`Voice`) и порты;
- бейдж **`Hostlist`** или **`IPset`** — по чему профиль отбирает трафик (`--hostlist` или `--ipset`);
- **справа** — имя применяемой стратегии: `Split Position`, `alt v9`, `fake_2_n2`, `hostfakesplit_multi`, `MultiDisorder Complex`, `TLS MultiSplit SNI seqovl 652`, `pass (ничего не делает)`;
- статус **`Не добавлен`** (серая точка) — профиль есть в списке, но в активный пресет не включён.
> [!tip] Кнопки на этой вкладке
> **«Что это такое?»** — встроенная подсказка от разработчиков прямо в GUI. **«Порядок в пресете»** — управляет очерёдностью профилей (а она влияет на то, какой профиль сработает первым для пересекающегося трафика). **`+`** — добавить новый профиль.
## Профиль, категория, хостлист — кто есть кто
Новичку легко спутать три близких понятия:
- **Хостлист** ([[hostlist]]) и **ipset** ([[ipset]]) — это просто **файлы со списками**: доменов и IP-адресов.
- **Категория** (см. [[Создание своей категории]]) — пользовательский набор адресов конкретного ресурса (игры, сайта), который вы собираете и кладёте в такой файл.
- **Профиль** — **связывает всё воедино**: берёт список (категорию) + фильтр портов + стратегию обхода и говорит движку, что именно делать с этим трафиком.
## Разбор частых вопросов: почему «не работает» — это симптом, а не причина
После каждого обновления возвращаются одни и те же запросы: **«у меня не работает Запрет»**, **«Запрет перестал работать после обновления»**, **«перепробовал все пресеты — YouTube не заработал»**, **«YouTube не работает 2026»**, **«Discord не работает, Запрет не помогает»**, **«какая стратегия самая рабочая?»**. Почти все они сформулированы неверно — описывают **симптом**, а не причину. Понимание устройства профилей объясняет, почему.
> [!important] Главное: программа не может «перестать работать»
> Zapret 2 — это **манипулятор трафика**: ядро `winws2.exe` лишь правит ваши исходящие пакеты по записанным в профилях правилам. У такого инструмента нет состояния «сломаться» само по себе — он либо запущен и применяет профили, либо нет. Если сайт перестал открываться, изменилась **не программа**, а **обстановка вокруг неё**: чаще всего провайдер обновил DPI (ТСПУ), и прежняя стратегия конкретного профиля стала «видимой». То есть «не работает Запрет» почти всегда значит «устарела стратегия одного-двух профилей под мой DPI», а не «сломалось приложение».
> [!question] «Перепробовал все пресеты, YouTube/Discord не заработал»
> Перебор готовых пресетов целиком — это перебор больших наборов **захардкоженных** стратегий вслепую. Если ни один не подошёл полностью, это не значит, что «ничего не работает»: скорее всего, для **вашего** DPI нужна стратегия, которой нет ни в одном готовом профиле. Правильный следующий шаг — не пятидесятый пресет, а **«Прямой запуск»** и подбор стратегии (`--lua-desync`) у конкретного проблемного профиля. Почему перебор пресетов — тупиковый путь, подробно разобрано выше в разделе «Почему пресет — это только основа».
> [!question] «YouTube не работает 2026 / Discord не открывается — это Запрет сломался?»
> Нет. Блокировки и системы ТСПУ постоянно меняются, и то, что работало вчера, провайдер мог «научиться» видеть сегодня. Сам набор техник дурения в программе стабилен от версии к версии. Поэтому реакция «переустановить / ждать фикс программы» обычно не нужна — нужна **донастройка профиля** под новую обстановку (или, если блокировка ужесточилась до уровня IP/троттлинга, уже другой инструмент — VPN/прокси).
> [!question] «Какая стратегия самая рабочая?»
> Универсальной нет. Результат зависит от вашего провайдера, региона, версии ТСПУ, локальных конфликтов (антивирус, другой VPN, DNS). Одна и та же стратегия даёт разный результат даже у соседей по городу. Поэтому «самая рабочая стратегия» — это не чужой рецепт, а та, что вы подобрали под **свой** профиль. Полный разбор причин «региональной лотереи» — в [[zapret_not_working|Что делать, если Запрет не работает]].
> [!question] «У меня не грузится один сайт, а остальное работает»
> Это самый показательный случай: программа очевидно работает (остальное-то открывается), «сломан» лишь один **профиль**. Включите «Прямой запуск», найдите профиль этого сайта (или категорию, в которую он попадает), поменяйте у него стратегию (`--lua-desync`) или добавьте домен в его хостлист. Менять весь пресет не нужно.
> [!question] «Можно ли просто скачать чужой пресет, и всё заработает?»
> Иногда да, но не гарантированно — DPI у разных провайдеров отличается. Чужой пресет (например с ZapretHub) — хорошая **отправная точка**, но дальше обычно нужна донастройка отдельных профилей под вашу сеть.
> [!tip] Куда идти дальше
> Практический чек-лист действий, когда «не работает» (проверить версию, конфликты с антивирусом/VPN/DNS, тип блокировки, BlockCheck) — в [[zapret_not_working|Что делать, если Запрет не работает]]. Что именно крутить внутри пресета — выше в этой заметке (разделы «Анатомия профиля» и «Прямой запуск»).
> [!note] Ключевые слова по теме
> запрет не работает · zapret не работает 2026 · ютуб не работает 2026 · youtube не открывается запрет · discord не работает запрет · перепробовал все пресеты · какая стратегия самая рабочая для zapret · запрет перестал работать после обновления · zapret youtube discord не помогает · как настроить профиль zapret 2 · прямой запуск zapret.
## 📚 См. также
- [[preset]] — что такое пресет, его структура и почему «готовый пресет» не всегда панацея
- [[exclusions|Исключения]] — профиль `pass` и exclude-списки: почему «строчки Исключения» нет и как исключать сайты правильно
- [[filter]] — все типы фильтров профиля (`--filter-tcp/udp/l7/l3`, `--ipset`, `--hostlist`)
- [[out-range]] — счётчики пакетов (`n`/`d`/`s`/`b`) для `--out-range`
- [[payload]] — типы содержимого пакетов для `--payload`
- [[desync]] — стратегии обхода (`--lua-desync`): fake, split, disorder и др.
- [[blob]] — именованные заготовки пакетов
- [[wf]] — глобальные фильтры WinDivert (шапка пресета)
- [[zapret_not_working|Что делать, если Запрет не работает]] — практический чек-лист, когда «не работает» (провайдер, антивирус, DNS, тип блокировки)
- [[guide]] · [[Как пользоваться Zapret]] — как включить «Прямой запуск» и настраивать профили
- [[Создание своей категории]] — как собрать адреса ресурса для своего профиля
- [[changelog-21.0.0-dev-june-2026|Changelog 21.0.0]] — пользовательские профили в `settings.json`, редактор списков