Коротко — причина, почему простое прописывание AdGuard DNS не помогло: большая часть рекламы YouTube идёт по тем же доменам/хостам и по HTTPS, что и само видео (googlevideo, youtubei.googleapis.com и т.п.). DNS‑блокировка даёт эффект только на рекламные домены, которые отличаются от доменов контента; в случае YouTube это часто не так. Поэтому полностью убрать рекламу на YouTube на уровне DNS/простого прокси без вмешательства в TLS обычно невозможно.
Что реально можно сделать (варианты по убыванию практичности):
1) Клиентский блокировщик (рекомендуется)
- uBlock Origin в браузере, AdGuard/Blokada на Android (локальный VPN), Content Blocker на iOS, Revanced/YouTube Premium и т.п.
- Это самый надёжный и безопасный способ для всех устройств, где вы можете установить ПО.
2) AdGuard Home / Pi‑hole на сервере + 3X‑UI (частично помогает)
- Установить AdGuard Home на сервер, подключить популярные списки блокировки (EasyList, AdGuard lists и т.д.).
- В панели 3X‑UI (или в конфиге Xray/V2Ray, который она управляет) направить DNS запросы клиентов на AdGuard Home (127.0.0.1:53 или IP сервера:53). Это блокирует многие рекламные/трекер домены, но YouTube‑рекламу это полностью не уберёт.
Шаги:
1. Установите AdGuard Home на сервер (официальный инсталлятор с сайта AdGuard).
2. Добавьте блоклисты в AdGuard Home.
3. В 3X‑UI задайте DNS сервера — IP вашего AdGuard Home (или в WireGuard/other client config укажите DNS сервера сервера).
Если нужно править конфиг Xray вручную, то в config.json можно добавить секцию dns, например:
{"dns": {"servers": ["127.0.0.1"]}}
4. Перезапустите сервисы/клиентские конфиги.
- Минус: YouTube-прероллы часто остаются.
3) TLS‑перехват + прозрачный прокси (действительно блокирует, но неудобно и рискованно)
- Squid с ssl_bump или mitmproxy / tinyproxy с MITM — перехватывать HTTPS и фильтровать URL. Требует установки CA на всё клиентские устройства (недоступно/небезопасно для многих устройств, ломает HSTS/банк‑приложения и т.п.). Не рекомендую в большинстве случаев.
4) SNI/Host‑blocking на прокси (частично)
- Некоторые прокси могут блокировать по SNI (TLS ServerName). Это помогает блокировать домены типа doubleclick.net, но не гарантированно убирает встроенные рекламные запросы YouTube, которые используют те же SNI, что и контент.
Практическая рекомендация для 3X‑UI‑пользователя
- Если вам важно блокировать рекламу в браузерах/телефонах — установите AdGuard (или uBlock) на клиентах.
- Если хотите централизованно попробовать на уровне сервера:
1. Установите AdGuard Home на сервер.
2. Подключите хорошие списки блокировки.
3. В 3X‑UI укажите DNS сервера (IP AdGuard) для клиентов или дополните Xray конфиг секцией dns -> ["127.0.0.1"].
4. Для WireGuard/клиентов убедитесь, что в конфиге клиента указан DNS сервера VPN (адрес сервера).
5. Тестируйте — ожидайте, что часть рекламы останется.
- Если хотите идти дальше и готовы устанавливать CA на устройствах — настраивайте прозрачный ssl_bump proxy (Squid) и делайте MITM; это позволит фильтровать URL и блокировать YouTube‑рекламу более агрессивно, но это сложный и рискованный путь.
Почему AdGuard DNS не помогал в вашем случае
- Вы использовали публичный AdGuard DNS: он блокирует домены из списков, но YouTube‑реклама чаще идёт через те же домены, что и видео, поэтому DNS‑решение бессильно.
Если хотите — скажите:
- какие протоколы/клиенты вы используете через 3X‑UI (WireGuard, Xray/VLESS, Shadowsocks и т.д.);
- какие устройства нужно защищать (Android, iOS, Smart TV, ПК);
— и я напишу конкретные шаги для вашей конфигурации (установка AdGuard Home + интеграция с 3X‑UI, или инструкции по настройке клиентских блокировщиков).