---
date: 2026-06-28
tags:
  - zapret
  - zapret2
  - profile
  - preset
  - troubleshooting
aliases:
  - Один сайт — один профиль
  - Одно соединение — один профиль
  - Профили не влияют друг на друга
  - Влияют ли профили друг на друга
  - Влияют ли стратегии друг на друга
  - Складываются ли стратегии
  - Включил профиль — сломался другой сайт
  - Включил исключения — перестал работать YouTube
description: "Влияют ли профили Zapret 2 друг на друга: стратегии не смешиваются, но профили конкурируют за соединение. Почему исключение может «сломать» YouTube."
---

> [!mirror] Резервное зеркало
> Актуальная версия этой страницы — на основной вики: [wiki2.zapret.moe/Zapret2/profile-independence](https://wiki2.zapret.moe/Zapret2/profile-independence)

# 🧬 Влияют ли профили Zapret 2 друг на друга: одно соединение — один профиль

> [!info] О чём заметка
> Ответ на частый вопрос «как профили и стратегии влияют друг на друга» и на жалобу «включил один профиль — сломался другой сайт». Что такое профиль и пресет — в [[profile]] и [[preset]]; как движок перебирает профили и почему исключения работают именно так — в [[exclusions#Как движок выбирает профиль: три факта, без которых исключения не понять|заметке об исключениях]].

> [!tip] TL;DR
> - Каждое соединение обрабатывает **один профиль** — первый сверху, чьи фильтры совпали. Стратегии разных профилей на одном соединении не смешиваются и не складываются.
> - Профили **конкурируют за соединения**: если фильтры двух профилей пересекаются, соединение забирает верхний, а нижний для него не запускается.
> - Отсюда «включил профиль — сломался другой сайт»: новый профиль стоит выше и перехватывает чужие соединения. Чинится порядком профилей и сужением фильтра, а не сменой стратегии.
> - Сайт из нескольких доменов может обслуживаться несколькими профилями сразу: каждое его соединение выбирает профиль отдельно.

## Стратегии не смешиваются

[[profile|Профиль]] в Zapret 2 состоит из двух частей: фильтров, которые решают, какой трафик ему достаётся (порты, протокол, списки доменов и IP-адресов), и стратегий, которые решают, что с этим трафиком делать. Когда появляется новое соединение, движок (`winws2` на Windows, `nfqws2` на Linux) перебирает профили пресета сверху вниз и отдаёт соединение первому, у которого совпали все фильтры. Остальные профили это соединение не обрабатывают вовсе.

Из этого следуют три вещи, о которых часто спрашивают:

- **Два профиля на один сайт не «усиливают» обход.** Сработает только верхний; стратегия нижнего для этих соединений не выполнится.
- **Стратегия одного профиля не меняет стратегию другого.** Профиль Discord никак не влияет на то, что применится к соединениям YouTube, и наоборот.
- **Комбинировать приёмы можно только внутри одного профиля.** Несколько `--lua-desync` подряд (например, фейк, а за ним разрез) — это одна стратегия одного профиля, и все её части применяются к одному и тому же соединению. Как они выполняются по очереди — в [[profile#Стратегия: что делать с пакетами|заметке о профиле]] и в [[desync]].

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

## Где профили всё же пересекаются: конкуренция за соединение

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

Со стороны пользователя это выглядит как «профиль A сломал сайт B», хотя стратегии друг друга не касались. Изменилось только то, какой профиль забирает соединения сайта B. Поэтому такие поломки чинят не перебором стратегий, а порядком профилей и фильтрами: как правило, узкий профиль конкретного сайта должен стоять выше широкого, см. [[profile#Порядок профилей важен|«Порядок профилей важен»]].

### Оговорка: профиль может смениться посреди соединения

«Одно соединение — один профиль» верно для каждого момента времени, но выбранный профиль иногда меняется по ходу соединения. В самом начале движок ещё не знает ни протокола, ни имени сайта: они появляются только в первом сообщении с данными (для HTTPS — в TLS ClientHello). Профиль, у которого в фильтре есть [[Zapret/hostlist|hostlist]], до этого момента в выборе не участвует. Поэтому первые пакеты (установка соединения) достаются другому профилю, а когда имя сайта становится известно, движок ищет профиль заново, с самого верха списка, и соединение может перейти к другому профилю. Таких пересмотров бывает не больше двух за соединение (по официальной документации zapret2).

На практике это важно для стратегий, которые работают с самого первого пакета, вроде [[syndata]]: они выполнятся в том профиле, который достался соединению до пересмотра, а не в профиле с хостлистом. Подробно — в [[exclusions#Как движок выбирает профиль: три факта, без которых исключения не понять|разборе выбора профиля]] и в [[схема обработки трафика]].

### Сайт — это не одно соединение

Профиль выбирается для каждого соединения отдельно, а браузер открывает к одному сайту десятки соединений: к основному домену, к API, к серверам с картинками и видео. Каждое из них может попасть в свой профиль. Это нормально и даже полезно: поддомену, которому нужна другая стратегия, можно завести отдельный профиль, не трогая остальной сайт. Как найти, к каким доменам ходит сайт и какие из них не проходят, — в [[find-site-domains]].

## Пример: включили исключения — перестал работать YouTube

Частый случай из вопросов пользователей. В пресетах есть профили-исключения «Исключения айпи (RU сайты)» и «Исключения домены (RU сайты)» (так они называются с августа 2026). Их стратегия — `pass`: соединение забирается и отправляется без всякого обхода. Такие профили ставят выше широких профилей с обходом, чтобы российские сайты не проходили через обход, который им вредит. После включения исключений YouTube перестаёт открываться, а после выключения снова работает.

Стратегия YouTube при этом не сломана: она просто не запускается, потому что часть соединений YouTube забирает стоящий выше `pass`-профиль и отправляет их без обхода, прямо под DPI. Какие соединения он забирает, зависит от его фильтра:

- **Исключение по IP-адресам (ipset).** Адрес сервера известен с первого пакета, поэтому такой профиль ловит соединение сразу, ещё до того, как станет известно имя сайта. Если в список «российских» адресов попали подсети, где физически обслуживается видео YouTube (например, кэш-серверы Google, которые стоят внутри сетей российских провайдеров), эти соединения уйдут в `pass`.
- **Исключение по доменам (hostlist).** Оно срабатывает только по имени сайта и захватывает все поддомены записи. Если в список попал слишком общий домен, под исключение могут уйти и адреса, нужные YouTube.

Какой из вариантов сработал в конкретной установке, видно в логе: [[log-analyzer|«Анализ лога»]] показывает, какой профиль обработал каждое соединение. Если соединения YouTube приписаны профилю «Исключения…», причина найдена.

> [!warning] Исключение отключает обход, а не защищает сайт
> `pass` отправляет пойманный трафик как есть. Для незаблокированных сайтов это правильно, но заблокированный ресурс, попавший под исключение, поедет к DPI без обхода и перестанет открываться. Держите в исключениях только то, что действительно должно идти напрямую, и не делайте их фильтр шире нужного. Подробнее — в [[exclusions]].

## Как найти, какой профиль перехватывает сайт

1. Включите debug-лог и откройте сломавшийся сайт. В [[log-analyzer|«Анализе лога»]] посмотрите колонку «Профиль» у его соединений: так вы увидите, какой профиль их на самом деле обработал.
2. Если это не тот профиль, который вы настраивали для сайта, откройте «Настройка пресета → Порядок в пресете» и найдите перехватчик выше по списку.
3. Посмотрите фильтры перехватчика: порты, [[Zapret/hostlist|hostlist]], [[Zapret/ipset|ipset]]. Слишком широкий диапазон портов, большой ipset или общий домен в хостлисте — типичные причины.
4. Поднимите узкий профиль сайта выше перехватчика или сузьте фильтр перехватчика. Если перехватчик — исключение, уберите из его списка лишнее.
5. Проверьте результат новым соединением (см. [[verify-strategy]]) и снова посмотрите в лог, какой профиль сработал.

Если лог не под рукой, есть грубая проверка: временно отключите подозреваемый профиль. Если сайт ожил, дело в перехвате, а не в стратегии.

## 📚 См. также

- [[exclusions|Исключения в Zapret 2]] — как движок выбирает профиль, профиль `pass` против exclude-списков и их подводные камни
- [[profile|Что такое профиль]] — из чего состоит профиль и почему порядок профилей важен
- [[filter|Фильтры профиля]] — порты, протокол, hostlist и ipset, по которым профиль получает соединение
- [[схема обработки трафика]] — путь пакета через движок, включая пересмотр профиля
- [[find-site-domains|Как найти домены сайта через F12]] — какие домены сайта не проходят и в какие профили их вписывать
- [[log-analyzer|Анализ лога]] — как увидеть, какой профиль обработал соединение
- [[add-profile|Как добавить свой профиль]] — практика создания профиля под сайт
- [[symptom-not-cause|Почему «не работает» — это симптом]] — когда сайту нужен `pass`, а когда обход
- [[zapret_not_working|Что делать, если Запрет не работает]] — общий чек-лист диагностики

---

> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование доступно в Forgejo: [исходник этой заметки](https://git2.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/Zapret2/profile-independence.md) · [скачать весь репозиторий одним zip-архивом](https://git2.zapret.moe/zapretdiscordyoutube/todo/archive/main.zip).
