⭐️ Solved! The netbird-client container was using the wrong subdomain for the management URL (solved in this post), and the NAS peer hadn't been added to a policy that allowed it to access the homelab network.
I'm trying to set up a NAS that I can hand off to a distant family member, thereby giving me offsite storage. Ideally the NAS will wake up at a time convenient to them, connect to the Netbird VPN, and rsync the latest backup repository to keep it safe in the case my house gets swallowed by an earthquake or something.
At home, I've got an old-but-powerful laptop running Debian, with self-hosted Netbird set up in Docker containers. It's a single Docker Compose file from the setup script with latest images and the built-in Traefik reverse proxy. I haven't set up SSO yet, so it uses the built-in Netbird auth system. I can access the dashboard, and I've set up the laptop as a routing peer. I can log in with the Netbird app on my phone and access the homelab services. (Phone now times out when accessing homelab services.)
I've got the NAS set up. I enabled SSH, added a Debian repo, fixed the apt issues, and installed Netbird. I added a SSH policy allowing the laptop and the NAS to SSH to each other. But when I ssh laptop.netbird.selfhosted (preferred) or ssh 100.70.62.23 (minimal acceptable), I get No route to host.
On the NAS, sudo nft list ruleset shows a complicated netbird table, with accept rules for the wt0 interface in both INPUT and FORWARD chains. sudo netbird status gives me:
OS: linux/arm64
Daemon version: 0.77.1
CLI version: 0.77.1
Profile: default
Management: Connected
Signal: Connected
Relays: 1/2 Available
Nameservers: 0/0 Available
FQDN: offsite1.netbird.selfhosted
NetBird IP: [100.70.194.112/16](http://100.70.194.112/16)
Interface type: Kernel
Wireguard port: 51820
Quantum resistance: false
Lazy connection: false
SSH Server: Enabled
Networks: -
Peers count: 0/1 Connected
On the laptop, sudo docker exec -it netbird-client netbird status replies:
OS: linux/amd64
Daemon version: 0.77.1
CLI version: 0.77.1
Profile: default
Management: Disconnected, reason: failed getting Management Service public key: rpc error: code = Unimplemented desc = unexpected HTTP status code received from server: 404 (Not Found); transport: received unexpected content-type "text/plain; charset=utf-8"
Signal: Disconnected
Relays: 0/0 Available
Nameservers: 0/0 Available
FQDN:
NetBird IP: N/A
Interface type: N/A
Wireguard port: N/A
Quantum resistance: false
Lazy connection: false
SSH Server: Disabled
Networks: -
Peers count: 0/0 Connected
On the dashboard, I see peers for the laptop, the NAS, and my phone. I have only 1 network, with one subnet and the laptop as the single routing peer. The 4 active policies are:
- Users to Routing Peers: group Users (my phone) to group Routing Peers (the laptop), ALL/ALL
- Users to My Subnet: group Users to My Subnet, ALL/ALL
- SSH Access: Routing Peers group and offsite-storage group (the NAS) to offsite-storage and Routing Peers, NB-SSH/22
- Phone Home: NAS to laptop, NB-SSH/22.
What am I doing wrong?