---
date: 2026-04-30
type: decision
tags: [dttb, openwrt, adguard, podkop, dns, youtube-adblock]
hosts: [10.0.0.1]
---

# OpenWrt HomeLab (10.0.0.1): AdGuard Home в DNS-цепочке, фильтры YouTube

## Контекст

На роутере 10.0.0.1 (OpenWrt 24.10.3, Mediatek Filogic) установлен `adguardhome 0.107.57-r1`, но трафик клиентов LAN его **обходил**. dnsmasq форвардил `127.0.0.42` (sing-box подкопа), AGH слушал `127.0.0.1:5353` без клиентов. user_rules в yaml были повреждены (куски Python-листа с залипшими кавычками). Цель — реальная блокировка рекламы для всей сети, в т.ч. максимум возможного для YouTube.

## Решение — гибридная схема

```
LAN client → dnsmasq:53 → AGH:5353 → sing-box:127.0.0.42 → upstream
```

AGH ставится между dnsmasq и sing-box: блокирует ad-домены до sing-box, а sing-box продолжает делать fakeip и роутить подкоп-домены. Это отличается от двух канонических схем `podkop.net/docs/adguard/` (Схема 1: AGH на 127.0.0.10:53 как upstream подкопа; Схема 2: AGH перед подкопом для клиентов), но проще и сохраняет всю существующую логику подкопа.

## Изменения

### `/etc/adguardhome.yaml`
- `dns.upstream_dns` → `127.0.0.42` (sing-box, единственный)
- Добавлены фильтры:
  - `HaGeZi Pro mini` — https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.mini.txt
  - `BlocklistProject YouTube` — https://blocklistproject.github.io/Lists/youtube.txt
  - `GoodbyeAds YouTube AdBlock` — https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Hosts/GoodbyeAds-YouTube-AdBlock.txt
- `user_rules` очищены от мусора, оставлены работающие правила: `googlesyndication.com`, `doubleclick.net`, `youtube.com/{api/stats/watchtime,ptracking,pagead,ads,get_midroll}*`, `googlevideo.com/get_video_info*`, `pagead2.googlesyndication.com`, `static.doubleclick.net`, `stats.g.doubleclick.net`, `googleads.g.doubleclick.net`, `ads.yandex.ru`, `mc.yandex.ru`, `metrika.yandex.ru`, `yandex.ru/ads`, `*.yandex.ru/ads`, `dzen.ru/ads`, `ads.vk.com`, `vk.com/ads`, `top-fwz1.mail.ru`, `adfox.ru`

### UCI
```
uci set podkop.settings.dont_touch_dhcp='1'        # подкоп больше не переписывает dhcp
uci -q delete dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server='127.0.0.1#5353'
uci commit podkop && uci commit dhcp
/etc/init.d/adguardhome restart
/etc/init.d/dnsmasq restart
```

### Бэкапы (на роутере)
- `/etc/adguardhome.yaml.bak.20260430_001129`
- `/etc/config/dhcp.bak.20260430_001129`

## Верификация

| Запрос на `10.0.0.1` | Ответ | Проверяет |
|---|---|---|
| `doubleclick.net` | `0.0.0.0` | AGH режет ad-домен |
| `pagead2.googlesyndication.com` | `0.0.0.0` | YouTube ad-эндпоинт |
| `wikipedia.org` | `185.15.59.224` | обычный сайт работает |
| `youtube.com` | `198.18.1.77` | fakeip подкопа цел |

## Граничные случаи / что НЕ блокируется

DNS-блокировка убирает рекламную **телеметрию, баннеры, midroll-API** YouTube. **In-stream-ролики** в самих видео сидят на `*.googlevideo.com` (CDN видео) — DNS их разделить не может. Полная блокировка — только клиентом: uBlock Origin (Firefox/Chrome), SponsorBlock, ReVanced/NewPipe (Android), FreeTube (desktop).

## Откат

```bash
ssh root@10.0.0.1 "cp /etc/adguardhome.yaml.bak.20260430_001129 /etc/adguardhome.yaml \
 && cp /etc/config/dhcp.bak.20260430_001129 /etc/config/dhcp \
 && uci set podkop.settings.dont_touch_dhcp=0 && uci commit podkop \
 && /etc/init.d/adguardhome restart && /etc/init.d/dnsmasq restart"
```

## Запомнить (грабли)

- `127.0.0.42` и `127.0.0.53` — зарезервированы подкопом и системой, не использовать как listen для других сервисов (`podkop.net/docs/adguard/`).
- При `dont_touch_dhcp=0` подкоп при каждом start переписывает `dhcp.@dnsmasq[0].server` на `127.0.0.42`, кладя предыдущее в `podkop_server`. Любая ручная замена upstream без `dont_touch_dhcp=1` не переживёт перезапуск.
- AGH-веб: http://10.0.0.1:3000 (admin / хеш в yaml).
- SSH `root@10.0.0.1` с `1qaz!QAZ` **работает** — старая запись в `projects/dttb/openwrt-router.md` про "SSH не работает" устарела.

## Ссылки

- [[../projects/dttb/openwrt-router]] — карточка роутера
- [[../claude-memory/podkop]] — справка по подкопу (схемы AGH, fakeip 198.18.0.0/15)
- https://podkop.net/docs/adguard/
- https://podkop.net/docs/dont-touch-my-dhcp/
