Netbird - Error: failed to connect to daemon error

Netbird na CachyOS

Netbird je open-source VPN klient a daemon implementujúci protokol WireGuard. Umožňuje jednoduché vytváranie privátnych sieťových tunelov medzi zariadeniami. Tento dokument popisuje krok za krokom funkčný postup inštalácie a konfigurácie na distribúcii CachyOS tak, aby po reštarte vždy fungoval príkaz netbird up.


Problém

Po nainštalovaní a povolení systemd-služby sa po reboote pri spustení príkazu:

netbird up

objaví chyba:

dial unix /run/netbird.sock: connect: no such file or directory
Error: failed to connect to daemon: context deadline exceeded

Daemon beží na sockete /run/netbird/main.sock, klient však predvolene hľadá /run/netbird.sock.


Príčina

Šablónová služba netbird@main.service (a ďalšie inštancie) vytvára socket pomenovaný podľa inštancie:

/run/netbird/<instance>.sock

Klient netbird up však bez ďalších parametrov očakáva socket:

/run/netbird.sock


Riešenie

Nižšie uvedený postup zabezpečí, že daemon vždy počúva na sockete, ktorý klient hľadá, bez potreby symlinkov či manuálnych parametrov.

1. (Voliteľné) Inštalácia alebo preinštalovanie služby

Ak ešte nemáte Netbird alebo chcete začať „čisto“:

sudo pacman -Syu netbird
sudo netbird service install
sudo systemctl enable --now netbird@main

2. Vytvorenie drop-in override pre systemd

Tento krok prepíše pôvodné ExecStart tak, aby daemon počúval priamo na /run/netbird.sock.

  1. Vytvorte adresár pre override:

    sudo mkdir -p /etc/systemd/system/netbird@main.service.d
    
    
  2. Otvorte súbor v editore a vložte obsah:

    sudo nano /etc/systemd/system/netbird@main.service.d/override.conf
    
    

    Do editora skopírujte:

    [Service]
    # Zrušenie pôvodného štartu
    ExecStart=
    # Nový štart s upravenou cestou socketu
    ExecStart=/usr/bin/netbird service run \
        --log-file /var/log/netbird/client-%i.log \
        --daemon-addr unix:///run/netbird.sock
    
    

    Uložte (Ctrl+O, Enter) a zatvorte (Ctrl+X).

  3. Načítajte zmeny a reštartujte službu:

    sudo systemctl daemon-reload
    sudo systemctl restart netbird@main
    
    

3. Overenie

  1. Skontrolujte, že existuje správny socket:

    ss -xl | grep netbird.sock
    # výstup napr.:
    # u_str LISTEN 0 4096 /run/netbird.sock
    
    
  2. Spustite klienta:

    netbird up
    
    

    Ak je všetko v poriadku, príkaz sa úspešne pripojí na daemon bez chýb.


Poznámky

  • Pre inú inštanciu (napr. @home alebo @work) nahraďte v ceste aj názov služby:
    /etc/systemd/system/netbird@home.service.d/override.conf a netbird@home.

  • Môžete použiť aj iný editor (vim, micro, …) podľa vašich preferencií.


Externé odkazy