15 KiB
date, type, tags, aliases
| date | type | tags | aliases | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-06-23 | project |
|
|
Бужарово — podkop-роутер «Severny-Les» (Cudy TR3000)
Отдельный роутер обхода РКН для стройрынка Бужарово (Северный лес). Не путать со шлюзом 1С-сервера buzharovo-router — это новый 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 / память «Переиспользуй инфру Олега».
Сеть и доступ (стадия препрод, 2026-06-23)
Сейчас стоит в домашней лабе: воткнут во второй LAN-порт Proxmox.
- LAN роутера: 192.168.1.1/24 (br-lan).
- WAN роутера:
eth0DHCP из домашней сети — 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(devicewt0,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://). Два подвоха:
- Не bare IP. Если задать
dns_server=8.8.8.8, podkop подставляет каноничный DoH-URLhttps://dns.google/dns-query(хостнейм) — его надо резолвить через bootstrap по:53(за домашним хайджеком) → хрупко.- Не полный 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)
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.- Главное: обход не работал (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_server77.88.8.8→8.8.8.8 — на обход не влияли, причина была в DNS-хайджеке.
- Тупиковые версии (отброшены проверкой): sing-box 1.12.22→1.12.4 и
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) вставляет <iframe src="http://<хост-как-открыта-LuCI>:7681">.
- Грабля «окно терминала не активно/пустое»: LuCI открывали на
192.168.1.1, а этот адрес коллизит с НИИКН/Переделки в NetBird (тот же192.168.1.0/24) → iframe на192.168.1.1:7681уходил не туда. Фикс:uci set ttyd.@ttyd[0].url_override='http://100.70.113.251:7681'(стабильный NetBird-IP). Теперь терминал грузится с него независимо от того, как открыта LuCI (браузер должен быть в NetBird). - Рекомендация: открывать сам роутер по NetBird —
http://100.70.113.251(а не192.168.1.1), тогда и LuCI, и терминал однозначны. После правки — hard-refresh страницы LuCI (term.js кешируется). - Терминал спрашивает логин (
/bin/login→ root/1qaz!QAZ); :7681 гейтит firewall-зонаnbird+ ACL группы Claude-Diag.
Шлюз 1С — миграция настроек со старого WR6500H (2026-06-23)
TR3000 = шлюз Бужарово (Вариант B, см. ../../decisions/2026-06-22-buzharovo-podkop). Перенесено:
Статик-лизы DHCP (/etc/config/dhcp, у всех dns=1):
| Хост | IP | MAC |
|---|---|---|
| Server1C | 192.168.1.249 |
00:E0:4C:68:9E:34 |
| KASSA3 (касса 1) | 192.168.1.18 |
1C:1B:0D:32:10:A2 |
| KASSIRULICA2 (касса 2) | 192.168.1.99 |
74:D4:35:83:B8:B6 |
MAC'и сняты из ARP-кэша Server1C (WinRM через openclaw LXC137 по NetBird, физ. iface 192.168.1.249 — чтобы обойти коллизию подсети с НИИКН). Полный ARP объекта — в логе сессии.
Проброс портов (firewall.@redirect, пока «как на старом WR6500H»):
RDP-Server1C: WAN tcp/udp3389→192.168.1.249:3389(DNAT).- На WR6500H публично были также 443 (LuCI) и 53 (DNS) — это сервисы самого роутера, не host-проброс, не переносим.
- ⚠️ RDP в интернет — security-риск (флагалось в разведке). Рекомендация: позже увести в NetBird (Server1C уже
100.70.75.103). Пока по решению Олега — как на старом.
LAN (проверено 2026-06-23): br-lan = 192.168.1.1/24 (= WR6500H), gw/DNS клиентам .1 = TR3000. DHCP-пул обрезан до .100–.238 (был .100–.249) — статик-IP касс (.18/.99) и Server1C (.249) вне пула. dnsmasq→127.0.0.42 (FakeIP), noresolv=1, dont_touch_dhcp=0. Проверка клиента: nslookup web.telegram.org @192.168.1.1→198.18.x (туннель), gosuslugi.ru→реальный IP (напрямую). IPv6 на LAN отключён (dhcp.lan.ra=disabled, dhcpv6=disabled) — против утечки заблокированного мимо v4-FakeIP (как дома/Оливье).
Не пробрасывалось наружу: 1С-кластер (1540/1541/1560-1591) и MSSQL (1433) — только LAN. Wi-Fi держит WR6500H в режиме AP/bridge.
WR6500H (185.13.47.2): SSH off + браузерный sha256-хэш-логин → headless-дамп конфига невозможен; 1С-настройки восстановлены из ../../decisions/2026-05-07-buzharovo-recon.
Установка на объекте — чеклист (выезд 2026-06-24, утро)
TR3000 полностью преднастроен на столе. На объекте — физический своп со WR6500H + WAN провайдера.
Доступ во время работ:
- По NetBird (основной):
ssh root@100.70.113.251(root/1qaz!QAZ), LuCIhttp://100.70.113.251, веб-терминал в LuCI работает. - Локально (фолбэк): ноут в LAN-порт TR3000 →
http://192.168.1.1(но этот IP коллизит с НИИКН в NetBird — по NetBird-IP надёжнее).
Шаги:
- WAN/провайдер (Олег сам). Снять с WR6500H тип подключения (Network → WAN:
DHCP/PPPoE/Static) и WAN-MAC (Status). Поставить то же на TR3000 (Network → Interfaces → WAN):- DHCP с привязкой IP к MAC → WAN=DHCP + клонировать WAN-MAC WR6500H (WAN → Advanced → Override MAC). Иначе провайдер не выдаст
185.13.47.2. - PPPoE → логин/пароль провайдера.
- Static → IP
185.13.47.2+ маска/шлюз/DNS. - 2.5G-аплинк перецепить в 2.5G-порт TR3000.
- DHCP с привязкой IP к MAC → WAN=DHCP + клонировать WAN-MAC WR6500H (WAN → Advanced → Override MAC). Иначе провайдер не выдаст
- WR6500H → режим AP/bridge: DHCP off; патч-корд LAN-порт WR6500H → LAN-порт TR3000. Wi-Fi 7 раздаёт WR6500H. Так нет двойного NAT (единственный NAT — на TR3000).
- Проверки после подъёма WAN (
ssh root@100.70.113.251):awg show awg0— handshake свежий;curl -s -m8 -o/dev/null -w '%{http_code}' https://web.telegram.org→200.- Телефон в Wi-Fi: Telegram/YouTube открываются; gosuslugi/банк/ОФД — напрямую (НЕ через туннель).
- Server1C получил
192.168.1.249(статик-лиз); RDP185.13.47.2:3389отвечает (проброс уже на TR3000). - Кассы
.18/.99видят 1С на192.168.1.249.
- Флешку НЕ вынимать (на ней overlay → роутер откатится на 19 МБ внутренней памяти).
Откат: вернуть WAN в WR6500H + WR6500H обратно в router-режим. Конфиг TR3000 не трогается.
Уже готово на TR3000: extroot · podkop→awg0 (FI) meta/youtube/telegram · DoH · NetBird 100.70.113.251 · ttyd · статик-лизы (Server1C/KASSA3/KASSIRULICA2) · проброс RDP 3389→.249. Server1C — доступ/рецепты: server1c (rmngr-loop: Restart-Service '1C:Enterprise 8.3 Server Agent (x86-64)' -Force).
Связанное
- README — проект Бужарово
- ../dttb/openwrt-router — домашний роутер (тот же финский хаб awg2; там грабля rp_filter)
- ../../decisions/2026-06-23-amnezia-web-panel-lxc143 — Amnezia-панель и финский хаб