Пир добавлялся с зашитым 127.0.0.1:13255, а обфускатор на части роутеров
слушает другой порт (51820) — после любого failover туннель был мёртв.
Порт теперь из wg-obfuscator.conf; пир через ndmc по шагам, allow-ips
0.0.0.0/0 и перезапуск интерфейса (ядро иначе не берёт allow-ips).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit f934c5b3b0344264586a65b97b2b80b315c2e0c1)
Light/dark theme and compact mobile layout, per-client speed limit, real
speed tests, panel domain (Let's Encrypt), client address + cascade relay,
RKN scanner guard, WARP, backup/restore, router web terminal, Android VPN
client with split tunnelling and Android admin app. Updating from 1.2.x
keeps keys, server.env and clients; tested 1.2.8 -> 1.4.0 on live VMs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- client/phobos-health.sh: router-side health monitor + auto-heal
- Cron every 60s, checks WG handshake age
- Auto-restart obfuscator (3min), WireGuard (5min)
- Port hopping (10min), server failover (15min)
- Auto-return to primary when recovered
- client/failover.conf.example: multi-server config template
- server/secondary-setup.sh: one-command secondary server deploy
- WG + multi-port obfuscator + mini-API on :8444
- Auto-registers with main server
- Panel: new "Серверы" page
- Add/remove secondary servers
- Health check, peer sync, fetch info
- API key management
- Secondary server install command
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>