mmfb/lionart-1c: SSH + фикс efsaveragent + накопленный backlog vault-а
Сегодня (mmfb / LionART 1C): - projects/mmfb/lionart-1c.md — новый файл: VM 100 на pve LionART (WIN-70M2VEJIKEF, 10.253.1.240, Win Server 2022, 1С+SQL+Effector Saver), SSH-доступ claude/Kl@udeD1ag!2026 заведён, RDP под Администратор + 2FA. - projects/mmfb/proxmox-inventory.md — hostname WIN-70M2VEJIKEF в VM 100. - decisions/2026-05-28-mmfb-effector-saver-locked-admin.md — диагноз цикла 7038 (SCM-пароль разъехался с .\Администратор) + lockout учётки, и пошаговое решение (disable службы → ADSI unlock → LogonUser-проверка → sc.exe config password= → start auto). Накопившийся backlog (без отдельной правки в эту сессию): - decisions/: buzharovo (recon, migration-plan, 1c-licensing), sergey (instagram iPhone fakeip), amneziavpn macOS v1/v2 incompat, benelux compromise 2026-05-20, glavtorg autologon off, omni domain+update. - projects/: benilux README, buzharovo README+server1c, dttb (nextcloud-talk-bot, npm-proxy-hosts, proxmox-inventory, vpn-clients), glavtorg, sergey README, projects/_index. - claude-memory/: benelux, omniroute. - snippets/mac-dictation/groq-dictate.sh. - notes/claude/: ~80 авто-сохранённых транскриптов сессий за май. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
152
snippets/podkop-fakeip-diagnostics.md
Normal file
152
snippets/podkop-fakeip-diagnostics.md
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
date: 2026-05-12
|
||||
type: snippet
|
||||
tags: [openwrt, podkop, fakeip, amneziawg, sing-box, diagnostics, playbook]
|
||||
---
|
||||
|
||||
# Диагностика подкоп-роутера (podkop + sing-box + AmneziaWG + FakeIP)
|
||||
|
||||
Универсальный playbook когда клиент жалуется «обход не работает» на типовом домашнем сетапе Олега. Идти **строго по порядку** — каждый шаг отсекает класс причин.
|
||||
|
||||
> SSH-доступ ко всем роутерам Олега: `ssh root@<netbird-ip>` пароль `1qaz!QAZ`.
|
||||
> На Сергее проверено 2026-05-12 — см. [[../decisions/2026-05-12-sergey-instagram-iphone-fakeip]].
|
||||
|
||||
## 0. Базовое — что вообще стоит
|
||||
|
||||
```sh
|
||||
cat /etc/openwrt_release
|
||||
opkg list-installed | grep -iE "podkop|sing-box|amneziawg|adguard|netbird|dnsmasq"
|
||||
ps w | grep -iE "sing-box|podkop|adguard" | grep -v grep
|
||||
```
|
||||
|
||||
## 1. AmneziaWG туннель живой?
|
||||
|
||||
```sh
|
||||
ip -br a | grep -iE "awg|wg"
|
||||
awg show awg0 # latest handshake должен быть <2 мин
|
||||
ip route | grep awg0 # должен быть default или markroute
|
||||
```
|
||||
|
||||
- **Handshake > 5 мин** → endpoint недоступен или порт зарезан DPI. Проверить с другого хоста `curl <endpoint>:<port>` (если TCP-VLESS) или ребутнуть peer.
|
||||
- **Нет интерфейса awg0** → kmod-amneziawg не загружен или конфиг побит: `dmesg | grep -i amnezia`, `uci show network | grep awg`.
|
||||
|
||||
## 2. Sing-box процесс живой?
|
||||
|
||||
```sh
|
||||
ps w | grep -v grep | grep sing-box
|
||||
ls -la /etc/sing-box/cache.db # дата = когда последний раз был апдейт fakeip
|
||||
podkop check_logs 2>&1 | tail -40
|
||||
```
|
||||
|
||||
- Если sing-box crash-loop'ит — обычно **залочен `/etc/sing-box/cache.db`** (две копии sing-box после ребута). Фикс: `killall sing-box; sleep 2; /etc/init.d/podkop restart`.
|
||||
- См. также [[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_openclaw_crash_loop|памятку про sing-box crash-loop]].
|
||||
|
||||
## 3. nft маркировка и tproxy
|
||||
|
||||
```sh
|
||||
podkop check_nft | grep -E "tproxy|@podkop_subnets|198\.18"
|
||||
nft list table inet podkop 2>&1 | head -80
|
||||
```
|
||||
|
||||
Смотреть счётчики (`counter packets <N>`):
|
||||
- Если **0 пакетов** в `proxy` chain через `tproxy ip to 127.0.0.1:1602` — клиенты не идут через FakeIP вообще (см. шаг 5).
|
||||
- Если **есть пакеты** — заворот работает, проблема ниже.
|
||||
|
||||
## 4. AmneziaWG реально маршрутизирует?
|
||||
|
||||
```sh
|
||||
# Базовый WAN exit
|
||||
curl -4 -s --max-time 5 https://ifconfig.me; echo
|
||||
# Через туннель
|
||||
curl -4 -s --max-time 5 --interface awg0 https://ifconfig.me; echo
|
||||
```
|
||||
|
||||
Должны вернуться **разные IP**. Если оба = WAN — `ip rule` / fwmark сломан, либо `main-out` в sing-box без `bind_interface: awg0`.
|
||||
|
||||
```sh
|
||||
ip rule | grep -E "podkop|fwmark"
|
||||
jq '.outbounds[] | select(.tag=="main-out")' /etc/sing-box/config.json
|
||||
```
|
||||
|
||||
## 5. FakeIP реально подменяет?
|
||||
|
||||
```sh
|
||||
# Через локальный dnsmasq
|
||||
for d in www.instagram.com chatgpt.com discord.com www.youtube.com; do
|
||||
printf "%-25s -> " "$d"
|
||||
nslookup $d 192.168.1.1 2>/dev/null | awk '/^Name:/{getline; print $2}'
|
||||
done
|
||||
```
|
||||
|
||||
- Ответы `198.18.x.x` → FakeIP работает ✅
|
||||
- Реальные IP типа `157.240.x.x` → домен **не в community-list**, либо `domain_resolver_enabled=1` (тогда sing-box резолвит сам, fakeip обходится).
|
||||
|
||||
Что подключено сейчас:
|
||||
|
||||
```sh
|
||||
uci get podkop.main.community_lists # сейчас: russia_inside, telegram, meta
|
||||
podkop list_update # обновить вручную
|
||||
```
|
||||
|
||||
Доступные community-листы podkop: `russia_inside`, `russia_outside`, `telegram`, `meta`, `discord`, `cloudflare`, `oai` (OpenAI/ChatGPT), `twitter`, `hdrezka` и др.
|
||||
|
||||
Добавить — `uci add_list podkop.main.community_lists='discord'; uci commit podkop; /etc/init.d/podkop restart`.
|
||||
|
||||
## 6. DNS-цепочка целая?
|
||||
|
||||
```sh
|
||||
# Кто слушает 53?
|
||||
ss -ulnp 2>&1 | grep ":53"
|
||||
# Через что dnsmasq форвардит
|
||||
uci show dhcp.@dnsmasq[0] | grep -E "server|noresolv"
|
||||
# Прямой 8.8.8.8 / 1.1.1.1 не режется провайдером?
|
||||
nslookup chatgpt.com 8.8.8.8
|
||||
nslookup chatgpt.com 1.1.1.1
|
||||
```
|
||||
|
||||
Корректная цепочка для типового стэка: `LAN → dnsmasq:53 → 127.0.0.42 (sing-box DNS) → upstream` (с `noresolv=1`).
|
||||
Цепочка с AGH (как у Олега в HomeLab): `LAN → dnsmasq:53 → AGH:5353 → 127.0.0.42 (sing-box) → upstream`.
|
||||
|
||||
## 7. Клиент сам обходит роутерный DNS? (iPhone-проблема)
|
||||
|
||||
Это **самая частая причина**, когда роутер исправен. См. полный фикс [[../decisions/2026-05-12-sergey-instagram-iphone-fakeip]].
|
||||
|
||||
Признаки:
|
||||
- В `/tmp/dhcp.leases` MAC с рандомизированным первым октетом `02`, `06`, `0a`, `0e` (приватный Wi-Fi на iOS/Android)
|
||||
- Curl с **роутера** работает, у клиента — нет
|
||||
|
||||
Что сказать клиенту (iPhone):
|
||||
1. iCloud Private Relay → ВЫКЛ
|
||||
2. Wi-Fi → DNS → Автоматически
|
||||
3. Safari → Скрывать IP → ВЫКЛ
|
||||
4. Chrome → DNS over HTTPS → ВЫКЛ
|
||||
|
||||
Если клиент-сайд не подействовал — сделать на роутере:
|
||||
|
||||
```sh
|
||||
# DNAT всего LAN-DNS:53 → роутер
|
||||
nft 'add rule inet fw4 dstnat iifname "br-lan" meta l4proto { tcp, udp } th dport 53 dnat ip to 192.168.1.1:53'
|
||||
|
||||
# Reject DoH/DoT к публичным резолверам
|
||||
nft 'add set inet fw4 doh_servers { type ipv4_addr; flags interval; elements = { 1.1.1.1, 1.0.0.1, 8.8.8.8, 8.8.4.4, 9.9.9.9, 149.112.112.112 } }'
|
||||
nft 'add rule inet fw4 forward iifname "br-lan" ip daddr @doh_servers tcp dport { 443, 853 } reject with tcp reset'
|
||||
```
|
||||
|
||||
## 8. Что является НОРМОЙ (не баг)
|
||||
|
||||
- **Meta NetSeer probes** в логе sing-box: `ERROR ... {GUID}-netseer-ipaddr-assoc.xy.fbcdn.net: empty result` — anti-CDN-detection Meta, штатное поведение, игнорировать.
|
||||
- **`podkop check_fakeip` показывает российский IP** — тестовый домен `ip.podkop.fyi` не в community-list, идёт direct через WAN. Это проверка что *fakeip-сервис* работает, а не *обход* работает.
|
||||
- **`ash: ^[0-9]+...: unknown operand`** в выводе `podkop check_proxy` — баг regex'а в `/usr/bin/podkop`, не влияет.
|
||||
|
||||
## 9. Когда уже всё проверено и не помогло
|
||||
|
||||
- Поменять `dns_type` с `udp` на `doh` (если провайдер режет UDP/53 — редко, но бывает): `option dns_type 'doh'; option dns_server 'https://dns.google/dns-query'`.
|
||||
- Перейти с `connection_type=vpn` (AWG) на `connection_type=proxy` (VLESS) — секция `vlees` уже настроена как резерв.
|
||||
- Проверить MTU: `ping -M do -s 1380 8.8.8.8` через awg0 — если фрагментация, MTU 1420 на awg0 уменьшить до 1380.
|
||||
|
||||
## Ссылки
|
||||
|
||||
- [[../projects/sergey/README]] — пример полностью разобранного объекта
|
||||
- [[../decisions/2026-05-12-sergey-instagram-iphone-fakeip]] — кейс iPhone + Private Relay
|
||||
- [[../decisions/2026-04-30-openwrt-homelab-agh-podkop-chain]] — стэк AGH+podkop у Олега дома (как добавить AGH к роутеру клиента)
|
||||
- [[../projects/dttb/openwrt-router]] — домашний OpenWrt, DNS hijack уже стоит
|
||||
Reference in New Issue
Block a user