Бужарово podkop: НАСТОЯЩИЙ корень жалоб — залип forward/tproxy sing-box после ребута (фикс=restart podkop+cache); netns-тест доказал обход у клиентов; урок 'роутер curl != клиент работает' в playbook

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
dttb
2026-06-29 12:30:58 +03:00
parent 16f8727ac8
commit deaa484dde
2 changed files with 43 additions and 1 deletions

View File

@@ -141,6 +141,22 @@ nft 'add rule inet fw4 forward iifname "br-lan" ip daddr @doh_servers tcp dport
- **`podkop check_fakeip` показывает российский IP** — тестовый домен `ip.podkop.fyi` не в community-list, идёт direct через WAN. Это проверка что *fakeip-сервис* работает, а не *обход* работает.
- **`ash: ^[0-9]+...: unknown operand`** в выводе `podkop check_proxy`баг regex'а в `/usr/bin/podkop`, не влияет.
## 8b. ⚠️ Роутер ходит, а клиенты нет — проверяй с позиции КЛИЕНТА
Грабля, на которой легко обмануться (Бужарово 2026-06-29): с роутера `curl https://web.telegram.org`=200 И tproxy-счётчики растут — НО у LAN-клиентов обход не работает. Причина: **output-путь (трафик самого роутера) и forward/tproxy-путь (трафик клиентов) — РАЗНЫЕ.** После ребута forward/tproxy sing-box может залипнуть (гонка: sing-box стартует раньше готовности туннеля), при этом output-путь жив и маскирует проблему. Рост `iifname … 198.18/15` / `tproxy` счётчиков = пакеты лишь ПОМЕЧЕНЫ (часто ретрансмиты падающих коннектов), не «успех».
**Проверять обход ТОЛЬКО с позиции клиента.** Если реального телефона под рукой нет — подними на роутере netns-«клиента» (трафик зайдёт на br-lan как настоящий):
```sh
opkg install ip-full kmod-veth # busybox ip без netns/veth; без kmod-veth → "Unknown device type"
ip netns add p; ip link add vh type veth peer name vp
ip link set vp netns p; ip link set vh master br-lan; ip link set vh up
ip netns exec p sh -c 'ip link set lo up; ip link set vp up; ip addr add 192.168.1.241/24 dev vp; ip route add default via 192.168.1.1'
TG=$(ip netns exec p nslookup web.telegram.org 192.168.1.1 | awk "/^Address/{a=\$NF} END{print a}")
ip netns exec p curl -s -o/dev/null -w "%{http_code}\n" --resolve web.telegram.org:443:$TG https://web.telegram.org # 200 = обход реально работает
ip netns del p; ip link del vh; opkg remove kmod-veth ip-full libbpf1 # уборка
```
**Фикс залипшего форварда:** `/etc/init.d/podkop stop; killall sing-box; rm -f /tmp/sing-box/cache.db; /etc/init.d/podkop start; /etc/init.d/dnsmasq restart`. Если повторяется на каждом ребуте — boot-safeguard (cron `@reboot sleep 60; /etc/init.d/podkop restart` или hotplug на awg0 up).
## 9. Когда уже всё проверено и не помогло
- Поменять `dns_type` с `udp` на `doh` (если провайдер режет UDP/53 — редко, но бывает): `option dns_type 'doh'; option dns_server 'https://dns.google/dns-query'`.