Netbird control plane down¶
The control plane runs on vps-net: management + signal + relay behind
TLS, reachable only over the wgr-vpsnet tunnel from pi-home. A dead control
plane means no new mesh negotiation; established WireGuard tunnels keep
passing traffic.
Triage order¶
- Classify the outage.
| symptom | meaning |
|---|---|
| single peer unreachable | that peer's own agent/tunnel |
| every peer can't re-register | control plane down |
| intermittent | relay path vs signalling issues |
-
Reach vps-net — only through pi-home (
ssh -J pi-home <user>@<vps-net-ip>, credentials live in the hermes container; jump host must be up). -
Inspect the stack as the restricted account, via the
docker:clidriver:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
docker:cli docker ps
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
docker:cli docker logs --tail 100 netbird-server
-
Recover: first
restartthe failing container alone, thenup -dthe whole project. If the store volume is dead, restore from the pre-change archive taken in the last upgrade (runbooks/restore.md). -
If the mesh is losing traffic but control plane is alive: check peers re-connect (
netbird statuson each node) and that the relay containers run.
While the mesh is down¶
- LAN services on pi-home stay available locally.
- User peers can't resolve
*.meshnames until the mesh is back; use ordinary public DNS forpublic-domainservices (tunnel still routes them if cloudflared is alive — cloudflared doesn't need the mesh). - vps-appsreachable only from LAN.
Practice¶
Walk this runbook end to end on a scheduled cadence so the access path is never discovered in an emergency.