- Корень «awg2 не ходил»: строгий rp_filter=1 на интерфейсе дропал transport из туннеля (handshake жив, транзит 0%). awg0 работал на rp_filter=2 (loose). При заведении финского awg2 строка rp_filter=2 не была добавлена (для awg0 была). - Фикс на роутере: net.ipv4.conf.awg2.rp_filter=2 в /etc/sysctl.conf + hotplug 99-awg-rpfilter (loose на все awg* при ifup). podkop → awg2. - podkop-reference §5: добавлена грабля rp_filter (handshake-есть-транзита-нет). - Снято неверное «awg2 сломан / OpenWrt не тянет AWG 1.5» — сервер/протокол исправны. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
5.7 KiB
Markdown
43 lines
5.7 KiB
Markdown
---
|
||
date: 2026-03-04
|
||
type: project
|
||
tags: [dttb, network]
|
||
---
|
||
|
||
# OpenWrt Router HomeLab (10.0.0.1:8080)
|
||
|
||
- LuCI Web UI: http://10.0.0.1:8080/cgi-bin/luci/
|
||
- ubus RPC: POST http://10.0.0.1:8080/ubus/ (root / 1qaz!QAZ)
|
||
- SSH: `ssh root@10.0.0.1` с паролем `1qaz!QAZ` — работает (проверено 2026-04-30)
|
||
- DNS Hijack: перехватывает порт 53 → 10.0.0.1 (все DNS запросы через роутер)
|
||
- Проброс: 80→NPM, 443→NPM, 25/465/587/993/995/4190→Mailcow(10.0.0.107)
|
||
- uci apply: нужен rollback=True + confirm, иначе правила теряются
|
||
- Модель: Cudy TR3000 v1; ОС: OpenWrt 24.10.3 r28872-daca7c049b, target mediatek/filogic (aarch64), extroot (~57 GB)
|
||
|
||
## Стек DNS / блокировки
|
||
|
||
Цепочка: `LAN → dnsmasq:53 → AGH:5353 → sing-box:127.0.0.42 → upstream`. AdGuard Home 0.107.57 фильтрует ad-домены, sing-box (подкоп) делает fakeip и роутинг подкоп-доменов.
|
||
|
||
- AGH веб: http://10.0.0.1:3000 (admin / хеш в `/etc/adguardhome.yaml`)
|
||
- Конфиг: `/etc/adguardhome.yaml` (upstream `127.0.0.42`, фильтры включают HaGeZi Pro mini + 2 YouTube-листа)
|
||
- Подкоп: `dont_touch_dhcp=1` — подкоп НЕ переписывает dnsmasq.server при start
|
||
- Резерв адресов подкопа: `127.0.0.42`, `127.0.0.53` — не занимать
|
||
- Подкоп **0.7.19** (обновлён 2026-06-08 с 0.7.14, install.sh; конфиг сохранён, бэкап `/etc/config/podkop.bak-pre0719`); списки `meta/russia_inside/telegram/google_ai`; `disable_quic=1`
|
||
- **Выход podkop: активен `interface=awg2` → Finland HOSTKEY `151.241.234.241:41624`** (AWG 1.5: S3/S4 + H-диапазоны, addr `10.8.1.2/32`). **Резерв = `awg0` `202.71.12.186:37209`** (AWG 1.0, addr `10.8.1.6/32`, тёплый, auto=1). Доп. резерв — vless `Vlees`. Оба awg в firewall-зоне `vpn` (не WAN). Бэкапы: `/etc/config/{network,podkop,firewall}.bak-pre-finland-20260623`, `podkop.bak-srs-fix-20260623`, `network.bak-awgi1-20260623`.
|
||
- Откат на резерв: `uci set podkop.main.interface=awg0; uci commit podkop; service podkop restart`.
|
||
- 🔴 **КОРЕНЬ «awg2 не ходил» (2026-06-23) = `rp_filter`.** Симптом: handshake встаёт, но 100% потерь транзита (`ping -I awg2 1.1.1.1`), end-to-end 000, sing-box не качал списки. AWG-параметры идентичны рабочему Severni Les (Бужаровский Cudy на ту же ноду). Разница: у awg2 был **строгий** `net.ipv4.conf.awg2.rp_filter=1` (наследие `default=1`) → transport-ответ из туннеля приходит на awg2, ядро не видит обратного маршрута через awg2 → дроп. awg0 работал, т.к. имел `=2` (loose) в `/etc/sysctl.conf`. **Я при заведении финского awg2 забыл добавить ему `rp_filter=2`** (для awg0 строка была). Фикс: строка `net.ipv4.conf.awg2.rp_filter=2` в `/etc/sysctl.conf` + hotplug `/etc/hotplug.d/iface/99-awg-rpfilter` (loose на все `awg*` при ifup — robust против пересоздания). **Это НЕ протокол и НЕ сервер** (mac-клиент и Severni Les на этой ноде работали). Проверка: `sysctl -n net.ipv4.conf.awg2.rp_filter` → должно быть `2`.
|
||
- ⚠️ `202.71.12.186` (awg0) геолоцируется в **Хельсинки/FI** (cdn-cgi/trace), не Сингапур — прежний ярлык «Singapore» здесь и в [[../../snippets/podkop-reference]] неверен.
|
||
- **Rule-set download detour (2026-06-23, фикс crash-loop):** rule-set'ы podkop — remote (`github.com/itdoginfo/.../*.srs`), а GitHub блокирован РКН по WAN → при пустом `/tmp/sing-box/rulesets` sing-box падал `FATAL initialize rule-set: Get release-assets.githubusercontent.com` (route.final=`direct-out`=WAN). Лечится `download_lists_via_proxy=1` + `download_lists_via_proxy_section=main` (detour→`main-out`=туннель). **На 0.7.19 это РАБОТАЕТ** (старая грабля «via_proxy ломает sing-box» из [[../../snippets/podkop-reference]] была из-за пустой секции → тег `-out`; с явной секцией тег `main-out` валиден).
|
||
- ⚠️ Грабля: `service podkop status` показывает **"not running" при живом sing-box** (косметика init-скрипта, не показатель). Sing-box тут склонен зависать (FakeIP `missing fakeip record` + DNS `deadline exceeded`, иногда ДВА процесса) → лечить `killall sing-box; service podkop restart`. Проверка обхода: `nslookup <домен> 127.0.0.42` → `198.18.x` = ушёл в туннель
|
||
- Подробности и откат: см. [[../../decisions/2026-04-30-openwrt-homelab-agh-podkop-chain]]
|
||
|
||
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
|
||
## OpenWrt Router HomeLab (10.0.0.1:8080)
|
||
- LuCI Web UI: http://10.0.0.1:8080/cgi-bin/luci/
|
||
- ubus RPC: POST http://10.0.0.1:8080/ubus/ (root / 1qaz!QAZ)
|
||
- SSH: НЕ работает с этим паролем (другой или key-only)
|
||
- DNS Hijack: перехватывает порт 53 → 10.0.0.1 (все DNS запросы через роутер)
|
||
- Проброс: 80→NPM, 443→NPM, 25/465/587/993/995/4190→Mailcow(10.0.0.107)
|
||
- uci apply: нужен rollback=True + confirm, иначе правила теряются
|
||
<!-- END AUTO-SYNC -->
|