Without that change, the daemon puts its control socket in /var/run, which requires root. This is pretty much the only thing that it needs root for. So changing that path allows us to drop privileges and add some sandboxing flags. Since they're planning on adding support for this stuff upstream, I'll probably remove it pretty soon.
If you want to use netbird-ui with netbird-bin, you can add something like --daemon-addr /var/run/netbird/netbird.sock to the daemon's flags (either through a systemd override, or in /etc/default). I won't do it since some of the users may be already doing that.
Pinned Comments
shuurilabs commented on 2026-02-25 13:33 (UTC) (edited on 2026-02-26 15:07 (UTC) by shuurilabs)
Hi @tarball, I'm from the NetBird team.
This socket path mismatch has been fixed upstream. The CLI, UI, and SSH client now auto-discover the daemon socket when the default /var/run/netbird.sock doesn't exist - they scan /var/run/netbird/*.sock and use it if exactly one is found. So netbird@main.service will work out of the box without needing --daemon-addr or NB_DAEMON_ADDR.
The fix is in https://github.com/netbirdio/netbird/commit/ef82905526a5944e9aac96e04b8b7ee67d27c9b9. It's included as of v0.66.