Files
knowledge-base/projects/dttb/openwrt-router.md
dttb 3d71b56ae3 Домашний роутер: awg2 (Финляндия) рабочий — корень был rp_filter, не протокол
- Корень «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>
2026-06-23 18:50:55 +03:00

5.7 KiB
Raw Blame History

date, type, tags
date type tags
2026-03-04 project
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.42198.18.x = ушёл в туннель
  • Подробности и откат: см. ../../decisions/2026-04-30-openwrt-homelab-agh-podkop-chain

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, иначе правила теряются