From fb79d49376e2a1628cbdcd2dc51109f40e739105 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Tue, 19 May 2026 14:15:53 +0600 Subject: [PATCH] =?UTF-8?q?[2026-05-19]=20WireGuard:=20polling=2030=D1=81,?= =?UTF-8?q?=20PostUp/PostDown=20DNS=20resolver,=20=D1=84=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/how-to/wireguard-vpn.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/family/how-to/wireguard-vpn.md b/family/how-to/wireguard-vpn.md index 96297001..375b6298 100644 --- a/family/how-to/wireguard-vpn.md +++ b/family/how-to/wireguard-vpn.md @@ -41,9 +41,11 @@ Eagle (10.99.0.2) ←→ wg0 VPS (10.99.0.1) ←→ wg1 VPS (10.99.1.1) ←→ K ## Auto-connect на Eagle -`/usr/local/bin/wg-auto.sh` — следит за SSID через `WatchPaths` на `/Library/Preferences/SystemConfiguration/`: -- SSID == `ASUS5` → `wg-quick down` (дома, Kraken в локалке, туннель не нужен) -- SSID != `ASUS5` → `wg-quick up` (вне дома, TM через VPN) +`/usr/local/bin/wg-auto.sh` — polling каждые 30 сек (launchd `StartInterval`, **НЕ** WatchPaths): +- Дома (роутер MAC `f0:79:59:77:9b:70`) → `wg-quick down` +- Вне дома → `wg-quick up` + +WatchPaths вызывал race condition: `wg-quick down` менял DNS через networksetup → писал в `/Library/Preferences/SystemConfiguration/` → launchd тригерил скрипт снова → туннель рвался, IP слетал. --- @@ -58,6 +60,14 @@ Destination обновлён: --- +## DNS + +wg0.conf **без** `DNS =`. PostUp/PostDown управляют scoped resolver: +- `PostUp = mkdir -p /etc/resolver && echo "nameserver 10.99.0.1" > /etc/resolver/kraken && killall -HUP mDNSResponder` +- `PostDown = rm -f /etc/resolver/kraken && killall -HUP mDNSResponder` + +Только домен `kraken` резолвится через VPS dnsmasq (10.99.0.1). Глобальный DNS не трогается — Wi-Fi IP не слетает. + ## Ключи | Узел | Публичный ключ |