--- date: 2026-06-23 type: project tags: [buzharovo, openwrt, podkop, amneziawg, fakeip, doh] aliases: [Severni Les router, Бужарово podkop роутер] --- # Бужарово — 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 (Verbatim 31 ГБ, ext4 label `extroot` → `/overlay`, ~27 ГБ свободно). - 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`; версия на обход НЕ влияла, см. ниже). - **AmneziaWG-пакеты** (`kmod-amneziawg 6.6.104.1.0.20250924`, `amneziawg-tools 1.0.20250903`, `luci-proto-amneziawg 2.0.4`) перенесены **с домашнего 10.0.0.1** (байт-в-байт та же платформа) — `opkg files`→tar→распаковка+`depmod`; kmod-зависимости (`kmod-udptunnel4/6`, crypto) из штатного фида. AWG 1.5 поддержан (S3/S4 + H-диапазоны). См. [[reference_infra]] / память «Переиспользуй инфру Олега». - ⚠️ **Грабля LuCI «Unsupported protocol type» у awg0** (туннель при этом работает — это только вебка): при ручном копировании `luci-proto-amneziawg` его **ресурсная зависимость `/www/luci-static/resources/uqr.js`** (QR-lib) НЕ попадает в `opkg files` пакета → `amneziawg.js` делает `require uqr` → класс протокола не регистрируется. Фикс: скопировать `uqr.js` с домашнего + `rm -f /tmp/luci-*; /etc/init.d/rpcd restart` + hard-refresh браузера. (Бэкенд тоже нужен: `ubus list | grep amnezia` → `luci.amneziawg`.) `dom.js` отдельным файлом отсутствует — это норма (в базовом бандле). ## Сеть и доступ (стадия препрод, 2026-06-23) Сейчас стоит в домашней лабе: воткнут во **второй LAN-порт Proxmox**. - LAN роутера: **192.168.1.1/24** (br-lan). - WAN роутера: `eth0` DHCP из домашней сети — IP **10.0.0.215**, шлюз **10.0.0.1** (домашний роутер). Весь интернет идёт через дом. - **Доступ (основной):** по 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`. ## Туннель - AmneziaWG **awg0** → Finland HOSTKEY `151.241.234.241:41624` (тот же хаб, что у дома и НИИКН; AWG 1.5: S3/S4 + H-диапазоны), клиент `10.8.1.3/32`. - На Amnezia-панели (LXC 143) пир называется **«Severni Les»**. Список клиентов хаба: `Admin [macOS]`=10.8.1.1, `podkop homelab`=10.8.1.2 (домашний), `Severni Les`=10.8.1.3. - `rp_filter` глобально `0` → транзит через туннель работает без правок (в отличие от домашнего, где нужен per-iface `=2` — см. [[../dttb/openwrt-router]]). ## podkop-конфиг (рабочий) | Параметр | Значение | |---|---| | `interface` | `awg0` (Финляндия) | | `community_lists` | `meta youtube telegram` | | `disable_quic` | `1` | | `dns_type` | **`doh`** ← ключевой фикс | | `dns_server` | **`1.1.1.1/dns-query`** (DoH по IP, БЕЗ префикса `https://`) | | `download_lists_via_proxy` | **`1`** / section `main` | > ⚠️ **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. 2. **Главное: обход не работал (telegram/youtube 000), хотя туннель жив.** sing-box дозванивался до самого FakeIP (`dial tcp 198.18.0.x: i/o timeout`) вместо реального IP. **Корень — препрод-среда:** роутер стоит за домашним роутером, а у того **catch-all DNS-хайджек** (`udp dport 53 dnat → 10.0.0.1:53`). Восходящий резолв sing-box'а (за реальным IP по `udp:53`) перехватывался домашним хайджеком → возвращался домашний FakeIP → петля. **Фикс: `dns_type=doh`** — резолвер по `https/443` минует `:53`-хайджек. На боевом объекте (свой провайдер) работал бы и на `udp`, но DoH делает роутер устойчивым к любому вышестоящему DNS-перехвату. Грабля в справочнике: [[../../snippets/podkop-reference]] §5. - Тупиковые версии (отброшены проверкой): sing-box 1.12.22→1.12.4 и `dns_server` 77.88.8.8→8.8.8.8 — **на обход не влияли**, причина была в DNS-хайджеке. ## sing-box 1.13.x — НЕ ставить (пока podkop 0.7.19) podkop 0.7.19 генерит sing-box-конфиг под ветку **1.12** (старый формат DNS-секции). В 1.13 формат DNS менялся → риск, что sing-box не распарсит конфиг и не стартует. Держим 1.12.x (как дома). Латест — только после проверки совместимости с podkop, откатно. ## Веб-терминал в LuCI (ttyd) `luci-app-ttyd` + `ttyd` 1.7.3 уже стоят, служба enabled, слушает `0.0.0.0:7681`, **writable** (этот билд RW по умолчанию; `-R` сделал бы RO — его нет). LuCI-вьюшка (System → Terminal) вставляет `