4.9 KiB
WireGuard VPN — Eagle ↔ Kraken
Создано: 2026-05-14
Статус: ✅ работает
Топология
Eagle (10.99.0.2) ←→ wg0 VPS (10.99.0.1) ←→ wg1 VPS (10.99.1.1) ←→ Kraken (10.99.1.2)
:51820 :51821
Два интерфейса на VPS чтобы избежать hairpin forwarding. FORWARD идёт wg0→wg1, SNAT меняет src Eagle на 10.99.1.1.
Адреса
| Узел | VPN IP |
|---|---|
| VPS | 10.99.0.1 (wg0) / 10.99.1.1 (wg1) |
| Eagle | 10.99.0.2 |
| Kraken | 10.99.1.2 |
kraken резолвится через dnsmasq на VPS (DNS = 10.99.0.1 в конфиге Eagle).
Персистентность
| Компонент | Узел | Как выживает ребут |
|---|---|---|
| wg-quick@wg0 + wg-quick@wg1 | VPS | systemd enabled |
| PostUp FORWARD + SNAT | VPS | в /etc/wireguard/wg0.conf |
| nftables (10.99.0.0/16 forward) | VPS | /etc/nftables.conf, systemd enabled |
dnsmasq (kraken → 10.99.1.2) |
VPS | /etc/dnsmasq.d/vpn-hosts.conf, systemd enabled |
| wg-quick@wg0 | Kraken | systemd enabled |
| wg-auto LaunchDaemon | Eagle | /Library/LaunchDaemons/top.eagle.wg-auto.plist |
Auto-connect на Eagle
/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 слетал.
Time Machine
Destination: smb://timemachine@kraken/TimeMachine
Бандл: mbp-black.sparsebundle
Контейнер: mbentley/timemachine:smb на Кракене, работает постоянно (restart: unless-stopped).
Пароль: timemachine (samba user в контейнере)
Диагностика сбоя аутентификации
Симптом: Time Machine показывает «The network backup disk could not be accessed because there was a problem with the network username or password». Ping kraken работает, SMB-шар смонтировать через mount_smbfs — тоже.
Причины:
- Пароль samba-пользователя слетел — контейнер timemachine жив, но
smbpasswdне задан. Проверка:ssh kraken 'docker exec timemachine pdbedit -L'— если не показывает NT hash после password last set, пароль надо переустановить. - Keychain на Eagle хранит устаревший пароль — macOS кэширует старый пароль и не обновляет его автоматически.
Восстановление (2026-06-02):
- Переустановить пароль samba-пользователя в контейнере:
ssh kraken 'docker exec -i timemachine sh -c "echo -e \"timemachine\\ntimemachine\" | smbpasswd -a -s timemachine"' - Удалить все старые записи
timemachine@krakenиз Keychain (login + system) - Cmd+K в Finder →
smb://kraken/TimeMachine→ Connect As → Registered User →timemachine/timemachine - Перевыбрать destination:
sudo tmutil setdestination -p smb://timemachine@kraken/TimeMachine
Проверка доступа из консоли:
mkdir -p /tmp/tm-test
mount_smbfs //timemachine:'timemachine'@kraken/TimeMachine /tmp/tm-test
ls /tmp/tm-test # должен показать mbp-black.sparsebundle
umount /tmp/tm-test
DNS
wg0.conf без DNS =. PostUp/PostDown управляют scoped resolver:
PostUp = mkdir -p /etc/resolver && echo "nameserver 10.99.0.1" > /etc/resolver/kraken && killall -HUP mDNSResponderPostDown = rm -f /etc/resolver/kraken && killall -HUP mDNSResponder
Только домен kraken резолвится через VPS dnsmasq (10.99.0.1). Глобальный DNS не трогается — Wi-Fi IP не слетает.
Ключи
| Узел | Публичный ключ |
|---|---|
| VPS wg0 | 6W6hSw0JFLm0BbyeNp1g7wF7dKKTZmGvPRdir68mz0w= |
| VPS wg1 | ssRV2497NQ3Lfzvx/FLO0jDlcCXdK/RReJQ36i0yuR8= |
| Eagle | dDgIjBUNguodOHWoz7iFsImvKhteodHcFWM8mMe4UiE= |
| Kraken | 8kIdCKMIoMsW09/aQX6+pU0SS/rN4PysJL59w17eGRg= |
Диагностика
# Eagle
sudo wg show
ping kraken
# VPS
ssh root@91.207.28.205 "wg show all"
# Kraken
ssh kraken "sudo wg show"
# Логи auto-connect Eagle
cat /var/log/wg-auto.log
Связанные заметки
- kraken-network — SSH к Кракену, пути медиаволюмов
- personal-os-architecture — Eagle hardware, домашняя инфра