5.2 KiB
5.2 KiB
date, type, tags, status
| date | type | tags | status | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-06-26 | decision |
|
stage1-done |
Бенелюкс — инструмент восстановления обхода (мониторинг + автолечение)
Задача
Олег: «инструмент восстановления обхода блокировок, мониторинг + автоисправление, должно работать на 100%, наверное на внешних ресурсах от Бенелюкса».
Калибровка «100%»
Буквальные 100% одним туннелём недостижимы (ISP/нода/NetBird могут лечь — удалённо не починить). Реальная цель: обход никогда не остаётся сломанным незаметно, чинится сам за 1–3 мин, иначе алерт раньше клиента. Достигается тремя слоями.
Решения Олега (AskUserQuestion)
- Наблюдатель — дома, LXC (клон antoshka-watch-self, алерт через бота).
- Автофикс — до ребута включительно, с гистерезисом.
- Резерв выхода — второй AWG-сервер (не VLESS) → Finland-хаб.
Архитектура (3 слоя)
- Резерв выхода: awg0 Singapore (primary) + awg1 Finland (secondary). Этап 2.
- Лёгкое самолечение на роутере: podkop
enable_badwan_interface_monitoring=1(следит за wan, перезагружает sing-box) — уже было. - Внешний сторож (главный):
benelux-podkop-watchdog.shна LXC 137, cron*/5, проверки УДАЛЁННО по SSH через NetBird.
Ключевой принцип — анти-flapping
Грабли OpenWrt_4/Оливье: собственный watchdog.sh агрессивно рестартовал sing-box и сам создавал обрывы. Поэтому: лечим только после 2 подряд провалов, cooldown 5 мин между шагами, лимит 2 ребута/сутки.
Что проверяет сторож (изнутри роутера)
- sing-box жив + Clash API (
192.168.1.1:9090) отвечает - handshake текущего выхода < 200с +
ping -I awgN 1.1.1.1(транзит, ловит rp_filter-ловушку) - FakeIP: youtube →
198.18.x(заворачивается) - анти-утечка: ozon.ru НЕ
198.18.x(страж рецидиваrussia_outside) — только алерт, не автофикс - достижимость: SSH нет → различает «роутер пингуется, SSH моргнул» vs «Бенелюкс лёг»
Лестница лечения (с гистерезисом)
podkop restart- флип
podkop.main.interfaceawg0→awg1 (если awg1 поднят и здоров), иначеifdown/ifup+ restart reboot(лимит 2/сутки)- сдаёмся → алерт «нужно руками»
Каждое срабатывание + восстановление (✅) → Telegram Олегу (1292155421) через токен бота из
/root/.openclaw/openclaw.json(тот же тракт, что antoshka-watch-self).
Деплой Этапа 1 (2026-06-26) — СДЕЛАНО
- Ключ LXC137
root@openclawдобавлен в/etc/dropbear/authorized_keysБенелюкса. /root/benelux-podkop-watchdog.shна LXC 137, cron*/5. Исходник в vaultsnippets/benelux/benelux-podkop-watchdog.sh.- Боевой тест пройден:
podkop stop→ прогон1 DEGRADED 1/2 (без действий) → прогон2 2/2 → Шаг1 restart → sing-box поднят, FakeIP вернулся → прогон3 OK + ✅-отбой + сброс счётчика. ⚠️/✅ алерты дошли. - Грабли при написании: busybox
pgrep -xне работает (→pgrep);read < нет_файлатечёт ошибкой (→ guard[ -f ]).
Этап 2 (TODO) — резервный выход Finland + failover
- Через Amnezia Web Panel (LXC 143
10.0.0.143:5000, admin/AmnPanel!2026-fi) нарезать пир Бенелюкса на Finland-хаб151.241.234.241:41624(AmneziaWG 2.0, subnet10.8.1.0/24). - Поднять
awg1на роутере (UCI-референс — HomeLab awg2, ../projects/dttb/openwrt-router); awg1 в firewall WAN-зону; per-ifacerp_filter=2. - Failover уже заложен в watchdog (Шаг1 флипает на awg1) — активируется автоматически, как только
network.awg1появится. - Закрывает TODO из 2026-06-23-amnezia-web-panel-lxc143 «failover (AWG сам не переключается)».
Опционально (Этап 3)
- Второй независимый сторож на Finland VPS (на случай падения дома) — взаимный догляд ближе к «100%».