Бужарово: podkop-роутер Severni Les (Cudy TR3000) — заработал на DoH

- Новый роутер обхода для стройрынка: Финляндия awg0, podkop 0.7.19, lists meta/youtube/telegram.
- Корень «обход не работал» (telegram/youtube 000 при живом туннеле): роутер стоит
  WAN'ом за домашним catch-all :53-хайджеком → восходящий резолв sing-box перехватывался,
  возвращался домашний FakeIP → sing-box звонил на FakeIP → timeout. Фикс: dns_type=doh
  (резолвер по 443 минует :53-хайджек). Версия sing-box / dns_server были ни при чём.
- Также: download_lists_via_proxy=1/main (rule-set'ы через туннель.
- podkop-reference §5: добавлена грабля «podkop за чужим DNS-хайджеком → DoH»;
  §9 inventory: добавлен Severni Les, HomeLab обновлён на awg2.
- Новый файл projects/buzharovo/podkop-router.md + линк из README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
MSG
)
This commit is contained in:
dttb
2026-06-23 19:38:01 +03:00
parent f6bae7cbac
commit c9b1d73bde
3 changed files with 55 additions and 1 deletions

View File

@@ -132,6 +132,7 @@ uci commit podkop && /etc/init.d/podkop restart
| **`download_lists_via_proxy='1'` с ПУСТОЙ секцией ломает sing-box** | `sing-box FATAL: start service: initialize rule-set: download detour not found: -out` → detour-тег вышел `-out` (пустая секция + суффикс) | На **0.7.19** включать МОЖНО и НУЖНО, если GitHub блокирован РКН: `uci set podkop.settings.download_lists_via_proxy=1; uci set podkop.settings.download_lists_via_proxy_section=main` → detour `main-out` (туннель). Тогда remote rule-set'ы (`*.srs` с `release-assets.githubusercontent.com`) качаются ЧЕРЕЗ туннель. Без этого при пустом `/tmp/sing-box/rulesets` (после `rm cache.db`/обновления) sing-box падает `initialize rule-set: Get ...` т.к. `route.final=direct-out`=WAN. **Грабля 0.7.14 = НЕ задана секция.** HomeLab dttb 2026-06-23. |
| **`podkop list_update` падает: raw.githubusercontent.com блокирован РКН** | в логах `Attempt N/3 to download .../*.lst failed`, напрямую с WAN `curl raw.git` = HTTP 000. Списки тихо устаревают (обход «потихоньку перестаёт ловить» новые домены/подсети) | Добавить **сам GitHub в обход**: `uci set podkop.main.user_domain_list_type='dynamic'; uci add_list podkop.main.user_domains='githubusercontent.com'; uci commit podkop; /etc/init.d/podkop restart`. Тогда роутерный `list_update` резолвит raw.git в FakeIP → туннель → HTTP 200. via_proxy оставить `0`. |
| 🔴 **`rp_filter` строгий на awg-интерфейсе → handshake есть, транзита НЕТ** | `awg show` = свежий handshake + растёт `received`; но `ping -I awgN 1.1.1.1` = **100% потерь**, end-to-end 000, sing-box не качает списки. Transport-ответ из туннеля приходит на awgN, при `rp_filter=1` (strict) ядро не видит обратного маршрута к internet-src через awgN → **дроп до доставки**. Особенно на мульти-туннельных роутерах, где один awg работает (стоит `=2`), другой нет (унаследовал `default=1`) | `sysctl -w net.ipv4.conf.<iface>.rp_filter=2` (loose) → проверь `ping -I <iface>`. Персистентно: строка `net.ipv4.conf.<iface>.rp_filter=2` в `/etc/sysctl.conf` + hotplug `/etc/hotplug.d/iface/99-awg-rpfilter` (loose на все `awg*` при ifup). **Диагностика:** сравни `sysctl net.ipv4.conf.{рабочий,сломанный}.rp_filter` — разница `2` vs `1` = это он. HomeLab dttb 2026-06-23 (awg2 vs awg0). |
| 🔴 **podkop-роутер ЗА чужим DNS-хайджеком → sing-box звонит на FakeIP** | Туннель жив (`ping -I awg` ОК), FakeIP присваивается, но end-to-end 000. В логах: `open connection to <домен> using outbound/direct[main-out]: dial tcp 198.18.0.x: i/o timeout` — sing-box знает домен, но дозванивается до **самого FakeIP** вместо реального IP. podkop self-check: ❌ «Прокси-трафик не маршрутизируется через FakeIP». Причина: при `dns_type=udp` восходящий резолв sing-box'а (реальный IP по `udp:53`) перехватывается **вышестоящим роутером с DNS-хайджеком** (`udp dport 53 dnat → его DNS`) → возвращается ЕГО FakeIP → петля. Бывает, когда podkop-роутер стоит WAN'ом за другим роутером, который сам хайджачит :53 (типично в препрод-лабе за домашним шлюзом). | **`uci set podkop.settings.dns_type=doh`** (резолвер по `https/443` минует `:53`-хайджек) + `dns_server` оставить IP (`8.8.8.8` → DoH-by-IP, bootstrap не нужен) → restart. На боевом объекте со своим провайдером работал бы и `udp`, но DoH = устойчивость к любому вышестоящему DNS-перехвату. **НЕ путать с «missing fakeip record»** (транзиент после `rm cache.db`, сам проходит). Бужарово/Severni Les 2026-06-23 за домашним catch-all хайджеком. |
---
@@ -186,7 +187,8 @@ nslookup ozon.ru 127.0.0.42
| **Sergey/Одинцово** | Cudy TR3000 `100.70.110.164` root/`1qaz!QAZ` | vpn / awg0 | Сингапур `202.71.12.186` | `russia_inside`,`telegram`,`meta` | ✅ корректно (inside); VLESS-резерв `vlees` |
| **Переделки** | см. [[../projects/peredelki/README]] / [[../projects/peredelki/credentials]] | — | — | проверить | fwmark-патч -150→-140 (NetBird coexistence) |
| **Benelux** | Cudy TR3000 `100.70.207.97`, ssh mac-ed25519 (compromise 2026-05-20) | vpn / awg0 | Сингапур `202.71.12.186` | `russia_inside`,`telegram`,`meta` (+`githubusercontent.com` user_domain) | ✅ 2026-06-17: обход ОК (TG 302 / WA 200), `russia_outside` нет; list_update чинён (raw.git заведён в обход — RKN блокировал WAN-загрузку); `download_lists_via_proxy=1` сломал sing-box, откатан |
| **HomeLab dttb** | [[../projects/dttb/openwrt-router]] | — | — | — | цепочка с AGH: `dnsmasq→AGH:5353→127.0.0.42`; DNS-hijack стоит |
| **HomeLab dttb** | [[../projects/dttb/openwrt-router]] (Cudy TR3000 `10.0.0.1`) | vpn / **awg2** | **Финляндия** `151.241.234.241:41624` | `meta`,`russia_inside`,`telegram`,`google_ai` | ✅ 2026-06-23 на awg2; резерв awg0 `202.71.12.186`. Цепочка `dnsmasq→AGH:5353→127.0.0.42`; DNS-hijack стоит. Грабля: per-iface `rp_filter=2` обязателен (см. §5) |
| **Severni Les / Бужарово** | [[../projects/buzharovo/podkop-router]] (Cudy TR3000, jump `10.0.0.250``192.168.1.1`) | vpn / awg0 | **Финляндия** `151.241.234.241:41624` | `meta`,`youtube`,`telegram` | ✅ 2026-06-23; **`dns_type=doh`** (стоит за домашним :53-хайджеком — иначе sing-box звонит на FakeIP, см. §5); `download_lists_via_proxy=1/main`; sing-box 1.12.4 |
| Krasnogorsk / Znamenskoye | см. project README | — | — | проверить | проверить |
> Быстрый аудит любого роутера на «грабли inside/outside»: