Бужарово роутер: переименован Severny-Les, подключён к NetBird
- hostname Severni_Les → Severny-Les (корректная латиница). - NetBird: 100.70.113.251 (severny-les-113-251.netbird.cloud), Claude-Diag, --disable-dns; firewall-зона nbird (wt0: input ACCEPT, forward REJECT) — без неё SSH на NetBird-IP = refused. Прямой доступ ssh root@100.70.113.251. - Также зафиксирован фикс DoH: dns_server=1.1.1.1/dns-query (без https://, иначе баг парсера диагностики podkop) — из прошлой правки. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,10 +5,13 @@ tags: [buzharovo, openwrt, podkop, amneziawg, fakeip, doh]
|
||||
aliases: [Severni Les router, Бужарово podkop роутер]
|
||||
---
|
||||
|
||||
# Бужарово — podkop-роутер «Severni Les» (Cudy TR3000)
|
||||
# Бужарово — podkop-роутер «Severny-Les» (Cudy TR3000)
|
||||
|
||||
Отдельный роутер обхода РКН для стройрынка Бужарово (Северный лес). **Не путать** со шлюзом 1С-сервера [[buzharovo-router|Cudy WR6500H 185.13.47.2]] — это новый Cudy TR3000 под podkop.
|
||||
|
||||
- **hostname:** `Severny-Les` (было `Severni_Les` — поправлено на корректную латиницу 2026-06-23).
|
||||
- **NetBird:** `100.70.113.251` / `severny-les-113-251.netbird.cloud` (группа Claude-Diag, ключ `64DF527E-…`, `--disable-dns`). Прямой доступ: **`ssh root@100.70.113.251`** (root/`1qaz!QAZ`).
|
||||
|
||||
## Железо / ОС
|
||||
- **Cudy TR3000 v1**, OpenWrt 24.10.3 r28872, aarch64; extroot на USB.
|
||||
- podkop **v0.7.19**, sing-box **1.12.4** (бинарь скопирован с домашнего 10.0.0.1; opkg-метадата числит 1.12.22 — бэкап `/usr/bin/sing-box.bak-1.12.22`; версия на обход НЕ влияла, см. ниже).
|
||||
@@ -17,7 +20,9 @@ aliases: [Severni Les router, Бужарово podkop роутер]
|
||||
Сейчас стоит в домашней лабе: воткнут во **второй LAN-порт Proxmox**.
|
||||
- LAN роутера: **192.168.1.1/24** (br-lan).
|
||||
- WAN роутера: `eth0` DHCP из домашней сети — IP **10.0.0.215**, шлюз **10.0.0.1** (домашний роутер). Весь интернет идёт через дом.
|
||||
- **Доступ:** jump через Proxmox — `ssh root@10.0.0.250` → `ssh -o UserKnownHostsFile=/dev/null root@192.168.1.1` (root / `1qaz!QAZ`). Host-key 192.168.1.1 на Proxmox конфликтует (там раньше было другое устройство) → нужен `UserKnownHostsFile=/dev/null`.
|
||||
- **Доступ (основной):** по NetBird — `ssh root@100.70.113.251`.
|
||||
- **Доступ (фолбэк, по LAN):** jump через Proxmox — `ssh root@10.0.0.250` → `ssh -o UserKnownHostsFile=/dev/null root@192.168.1.1` (root / `1qaz!QAZ`). Host-key 192.168.1.1 на Proxmox конфликтует → нужен `UserKnownHostsFile=/dev/null`.
|
||||
- **Firewall для NetBird:** добавлена зона `nbird` (device `wt0`, `input=ACCEPT` для управления, `forward=REJECT` — NetBird-пиры НЕ ходят в LAN стройрынка, masq off). Без неё SSH на NetBird-IP = «Connection refused» (wt0 был вне зон). ⚠️ Доступ к роутеру по NetBird гейтит ACL группы Claude-Diag — на проде сузить, если в группе лишние пиры.
|
||||
- На стройрынке будет свой провайдер — сохранить LAN `192.168.1.0/24`.
|
||||
|
||||
## Туннель
|
||||
@@ -32,10 +37,14 @@ aliases: [Severni Les router, Бужарово podkop роутер]
|
||||
| `community_lists` | `meta youtube telegram` |
|
||||
| `disable_quic` | `1` |
|
||||
| `dns_type` | **`doh`** ← ключевой фикс |
|
||||
| `dns_server` | **`https://1.1.1.1/dns-query`** (DoH по IP) |
|
||||
| `dns_server` | **`1.1.1.1/dns-query`** (DoH по IP, БЕЗ префикса `https://`) |
|
||||
| `download_lists_via_proxy` | **`1`** / section `main` |
|
||||
|
||||
> ⚠️ **DoH по IP, не по хостнейму.** Если задать `dns_server=8.8.8.8`, podkop подставляет каноничный DoH-URL `https://dns.google/dns-query` (**хостнейм**) — а его надо резолвить через bootstrap по `:53`, который за домашним хайджеком → диагностика podkop «Основной DNS» краснеет и резолв хрупкий. Решение: полный URL с IP — `https://1.1.1.1/dns-query` → `url_get_host`=1.1.1.1 (IPv4) → bootstrap не нужен, sing-box стучит прямо на `1.1.1.1:443`. Диагностика зелёная, robust.
|
||||
> ⚠️ **DoH по IP, и значение — `1.1.1.1/dns-query` (без `https://`).** Два подвоха:
|
||||
> 1. **Не bare IP.** Если задать `dns_server=8.8.8.8`, podkop подставляет каноничный DoH-URL `https://dns.google/dns-query` (**хостнейм**) — его надо резолвить через bootstrap по `:53` (за домашним хайджеком) → хрупко.
|
||||
> 2. **Не полный URL `https://1.1.1.1/dns-query`.** Конфиг sing-box он соберёт верно (IP-DoH), НО **проверка «Основной DNS» в диагностике podkop баговая**: делит `dns_server` по `/` и для `https://…` выполняет `dig @https:` → ложный красный крест.
|
||||
> Правильное значение **`1.1.1.1/dns-query`**: `url_get_host`=`1.1.1.1` (IPv4) → bootstrap не нужен (sing-box стучит прямо на `1.1.1.1:443`), И диагностика парсит верно (`dig @1.1.1.1 +https=/dns-query`) → зелёная.
|
||||
> Косметика: «Счётчики правил mangle» краснеют в препроде (нет LAN-клиентов → forward-метки на нуле); в проде с клиентами зеленеют.
|
||||
|
||||
## Грабли, которые лечили (2026-06-23)
|
||||
1. **`download_lists_via_proxy=0` → sing-box не качал rule-set'ы** (GitHub блокирован РКН по WAN, `/tmp/sing-box/rulesets` пуст). Фикс: `download_lists_via_proxy=1` + `download_lists_via_proxy_section=main` (detour→`main-out`=туннель). Бэкап `/etc/config/podkop.bak-srs-fix-20260623`. Подробно: [[../../snippets/podkop-reference]] §5.
|
||||
|
||||
@@ -132,7 +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`** + **`dns_server='https://1.1.1.1/dns-query'`** (DoH по IP) → restart. Резолвер по `https/443` минует `:53`-хайджек. ⚠️ **DoH задавать ПОЛНЫМ URL с IP**, не bare `8.8.8.8` — bare IP podkop мапит в каноничный хостнейм (`https://dns.google/dns-query`), а хостнейм требует bootstrap-резолва по `:53` (тоже хайджек) → диагностика «Основной DNS» краснеет. С `https://1.1.1.1/dns-query` `url_get_host`=IP → bootstrap не нужен. На боевом объекте со своим провайдером работал бы и `udp`, но DoH = устойчивость к любому вышестоящему DNS-перехвату. **НЕ путать с «missing fakeip record»** (транзиент после `rm cache.db`, сам проходит). Бужарово/Severni Les 2026-06-23 за домашним catch-all хайджеком. |
|
||||
| 🔴 **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`** + **`dns_server='1.1.1.1/dns-query'`** (DoH по IP, БЕЗ `https://`) → restart. Резолвер по `https/443` минует `:53`-хайджек. ⚠️ **Значение точно `1.1.1.1/dns-query`**: (а) НЕ bare `8.8.8.8` — podkop мапит bare IP в каноничный хостнейм (`https://dns.google/dns-query`), а хостнейм требует bootstrap по `:53` (тоже хайджек); (б) НЕ полный `https://1.1.1.1/dns-query` — конфиг соберётся ОК, но проверка «Основной DNS» в диагностике podkop баговая (делит по `/`, делает `dig @https:`) → ложный красный. С `1.1.1.1/dns-query`: `url_get_host`=IP → без bootstrap, И диагностика зелёная. На боевом объекте со своим провайдером работал бы и `udp`, но DoH = устойчивость к вышестоящему DNS-перехвату. **НЕ путать с «missing fakeip record»** (транзиент после `rm cache.db`). Бужарово/Severni Les 2026-06-23 за домашним catch-all хайджеком. |
|
||||
|
||||
---
|
||||
|
||||
@@ -188,7 +188,7 @@ nslookup ozon.ru 127.0.0.42
|
||||
| **Переделки** | см. [[../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]] (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` + `dns_server=https://1.1.1.1/dns-query`** (DoH по IP; стоит за домашним :53-хайджеком — иначе sing-box звонит на FakeIP, см. §5); `download_lists_via_proxy=1/main`; sing-box 1.12.4 |
|
||||
| **Severny-Les / Бужарово** | [[../projects/buzharovo/podkop-router]] (Cudy TR3000, NetBird `100.70.113.251`; фолбэк 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` + `dns_server=1.1.1.1/dns-query`** (DoH по IP, без `https://`; стоит за домашним :53-хайджеком — иначе sing-box звонит на FakeIP, см. §5); `download_lists_via_proxy=1/main`; sing-box 1.12.4 |
|
||||
| Krasnogorsk / Znamenskoye | см. project README | — | — | проверить | проверить |
|
||||
|
||||
> Быстрый аудит любого роутера на «грабли inside/outside»:
|
||||
|
||||
Reference in New Issue
Block a user