SSD Nodes Learn 🎉 VPS ab $4.99/Monat
Anleitungen Matt ConnorVon Matt Connor

NetBird-VPN-Server auf einem VPS selbst hosten

Richten Sie NetBird auf einem VPS ein: mit DNS und TLS, angeheftetem Quickstart-Skript, Setup-Keys fuer unbeaufsichtigte Peers und Vergleich mit Headscale.

Was Ihnen das Self-Hosting des NetBird-VPN-Servers bietet

Wenn Sie den NetBird-VPN-Server selbst hosten, liegt die Steuerungsebene auf einem VPS, den Sie selbst besitzen. Sie enthält die Liste der Peers, entscheidet, welche Maschine welche andere erreichen darf, und hilft zwei Peers dabei, sich hinter NAT (Network Address Translation) zu finden. Die Tunnel verwenden weiterhin WireGuard und werden direkt zwischen Ihren Maschinen verschlüsselt. Geändert wird, dass kein externes Unternehmen Ihre Geräteübersicht oder Ihren Anmeldevorgang verwaltet.

NetBird verbindet zwei Konzepte, die Sie möglicherweise bereits kennen. NetBird ist ein Mesh-Overlay. Die Peers verbinden sich also direkt miteinander, statt den gesamten Datenverkehr über ein Gateway zu senden. Gleichzeitig lässt sich NetBird vollständig selbst hosten. Damit steht es Headscale, dem selbst gehosteten Tailscale-Steuerungsserver, gegenüber. Wenn Sie bisher nur einen Tunnel mit einem einzelnen Gateway betrieben haben, lesen Sie zuerst den Unterschied zwischen einfachem WireGuard und einem Mesh-Overlay. Dieses Verständnis ist erforderlich, um den Rest dieser Seite einzuordnen.

Wenn Sie tatsächlich nur einen Server benötigen, über den der gesamte Datenverkehr ins Internet geleitet wird, ist ein Mesh aufwendiger als nötig. Ein einfaches WireGuard-VPN auf einem einzelnen VPS oder ein Tailscale-Exit-Node erfüllt diese Aufgabe mit deutlich weniger laufender Infrastruktur.

Welche Komponenten tatsächlich ausgeführt werden

Das Layout wurde kürzlich geändert, und die meisten älteren Anleitungen beschreiben noch das frühere Layout. Im August 2026 schreibt das Quickstart-Skript in Version v0.76.2 standardmäßig eine Compose-Datei mit drei Services.

  • netbird-server stellt die Management-API, den Signal-Service, das Relay mit integriertem STUN-Listener und einen integrierten Identity Provider bereit. In älteren Versionen waren diese Komponenten auf separate Container verteilt. Der Identity Provider war außerdem eine separate Zitadel-Installation, die Sie zuerst erstellen mussten.
  • dashboard ist die Webkonsole für die Administration.
  • traefik übernimmt die TLS-Terminierung (Transport Layer Security) und fordert beim ersten Start ein Zertifikat von Let's Encrypt an.

Zwei weitere Services sind vorhanden und bleiben deaktiviert, sofern Sie eine entsprechende Eingabe an der Abfrage nicht bestätigen. Der NetBird Proxy-Service veröffentlicht interne Services unter öffentlichen Hostnamen. CrowdSec filtert missbräuchlichen Netzwerkverkehr. Keiner der beiden Services ist erforderlich, um ein funktionierendes Mesh aufzubauen. Auf einem kleinen System benötigen außerdem beide zusätzlichen Arbeitsspeicher.

Wenn Sie von wg-easy in einem einzelnen Docker-Container kommen, steigt damit die Anzahl der Komponenten deutlich. Dafür erhalten Sie Zugriffsrichtlinien und Benutzerkonten sowie Peers, die sich direkt miteinander verbinden, statt über ein einziges Gateway zu kommunizieren.

Was Sie vor dem Start benötigen

Ein öffentlicher Domainname ist zwingend erforderlich. Das Dashboard, die API und das Relay verwenden HTTPS über Port 443. Traefik bezieht sein Zertifikat über eine HTTP-Challenge von Let's Encrypt. Dafür muss ein Name aus dem öffentlichen Internet auf diese VPS-Instanz aufgelöst werden. Eine reine IP-Adresse funktioniert in diesem Ablauf nicht.

Erstellen Sie einen A-Record, netbird.example.com, der auf die öffentliche IPv4-Adresse der VPS-Instanz zeigt. Warten Sie die DNS-Übernahme ab, bevor Sie etwas ausführen.

dig +short netbird.example.com

Die Ausgabe muss die Adresse Ihres Servers enthalten. Wenn Sie das Installationsprogramm vor der DNS-Übernahme ausführen, schlägt die Zertifikatsanforderung beim ersten Start fehl. Wiederholte fehlgeschlagene Validierungen können außerdem die Rate Limits von Let's Encrypt auslösen. Dann müssen Sie eine Stunde warten, bevor Sie es erneut versuchen können.

Drei Ports müssen aus dem Internet erreichbar sein: TCP 80 für die Zertifikats-Challenge und die Weiterleitung zu HTTPS, TCP 443 für Dashboard, API, Signal- und Relay-Verkehr sowie UDP 3478 für STUN.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3478/udp
sudo ufw reload
sudo ufw status

Öffnen Sie diese Ports auch in der Netzwerk-Firewall Ihres Providers. In den meisten VPS-Panels ist das eine separate Einstellung. Deshalb verweigert eine Instanz weiterhin Verbindungen, obwohl die eigene ufw status korrekt aussieht.

STUN (Session Traversal Utilities for NAT) ermöglicht es einem Peer, die öffentliche Adresse und den Port zu ermitteln, die sein NAT zugewiesen hat. Dadurch können zwei Peers einen direkten Tunnel versuchen. Wenn Sie UDP 3478 blockieren, verbinden sich die Peers weiterhin über das Relay auf TCP 443. Daher wirkt zunächst nichts fehlerhaft. Stattdessen erhalten Sie auf jedem Peer Connection type: Relayed, und der gesamte Datenverkehr läuft über Ihre VPS-Instanz, anstatt direkt zwischen den Peers zu fließen.

Auf der Softwareseite benötigen Sie Docker mit dem Compose-v2-Plugin sowie jq und curl. Das Skript prüft alle diese Voraussetzungen und wird beendet, wenn eine davon fehlt. Wenn Docker auf dieser Instanz noch nicht eingerichtet ist, richten Sie zuerst Docker Compose auf der VPS-Instanz ein ein.

Ports, wenn Sie den integrierten Reverse Proxy überspringen

Wenn Sie Traefik nicht verwenden, werden die einzelnen Dienste direkt veröffentlicht. Dadurch wird die Portliste länger:

  • TCP 80, HTTP-Weiterleitungen
  • TCP 443, HTTPS
  • TCP 33073, Management-gRPC
  • TCP 10000, Signal-gRPC
  • TCP 33080, Relay über WebSocket oder QUIC
  • UDP 3478, STUN

Wählen Sie diese Variante nur, wenn die Instanz TLS bereits für einen anderen Dienst terminiert. Andernfalls erfordert der integrierte Traefik weniger Regeln und verursacht weniger Fehler.

NetBird-Server mit dem Quickstart-Skript installieren

Der dokumentierte Einzeiler leitet das neueste Release direkt an eine Shell weiter:

curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

Fixieren Sie stattdessen die Version. latest ändert sich, sodass derselbe Befehl bei zwei Ausführungen im Abstand von zwei Wochen zwei unterschiedliche Installationen erzeugt. Außerdem wird nirgends auf dem Datenträger festgehalten, welche Version Ihre Konfiguration geschrieben hat. Laden Sie ein mit einem Tag versehenes Release herunter, lesen Sie es und führen Sie es anschließend aus.

mkdir -p ~/netbird
cd ~/netbird
curl -fsSL -o getting-started.sh \
  https://github.com/netbirdio/netbird/releases/download/v0.76.2/getting-started.sh
less getting-started.sh
bash getting-started.sh

Das Skript fragt zuerst nach der Domain:

Enter the domain you want to use for NetBird (e.g. netbird.my-domain.com):

Anschließend fragt es, wie TLS verarbeitet werden soll:

Which reverse proxy will you use?
  [0] Traefik (recommended - automatic TLS, included in Docker Compose)
  [1] Existing Traefik (labels for external Traefik instance)
  [2] Nginx (generates config template)
  [3] Nginx Proxy Manager (generates config + instructions)
  [4] External Caddy (generates Caddyfile snippet)
  [5] Other/Manual (displays setup documentation)
Enter choice [0-5] (default: 0):

Wählen Sie [0]. Die Optionen 2 bis 5 schreiben einen Konfigurationsausschnitt und überlassen die weitere Einbindung Ihnen. Das ist auf einem System mit bereits vorhandenem Proxy korrekt, auf einem neuen System jedoch nicht. Option 0 fragt anschließend nach einer E-Mail-Adresse für Let's Encrypt. Diese wird für Ablaufbenachrichtigungen verwendet.

Lehnen Sie den NetBird Proxy-Dienst bei der ersten Installation ab. Er benötigt zwei weitere DNS-Einträge, proxy.netbird.example.com und den Wildcard-Eintrag *.proxy.netbird.example.com, und bietet für ein einfaches Mesh keinen Nutzen. Lehnen Sie auch CrowdSec ab. Beide Komponenten können später hinzugefügt werden.

Das Skript schreibt in das aktuelle Verzeichnis: docker-compose.yml, config.yaml mit den Rechten 600, dashboard.env sowie traefik-dynamic.yaml, wenn Sie den mitgelieferten Traefik ausgewählt haben. Behandeln Sie dieses Verzeichnis als dauerhaft benötigten Zustand, da config.yaml den Schlüssel enthält, mit dem die Daten im Speicher verschlüsselt werden. Ein Verlust lässt sich nicht durch eine Neuinstallation beheben.

docker compose ps
docker compose logs -f netbird-server

Jeder Dienst sollte running lesen, und der Server-Log sollte sich stabilisieren, statt in einer Neustartschleife zu laufen. Überwachen Sie das Zertifikat separat:

docker compose logs traefik | grep -i acme

ACME (Automatic Certificate Management Environment) ist das Protokoll, das Traefik zum Abrufen des Zertifikats verwendet. Fehler an dieser Stelle werden fast immer durch DNS oder einen geschlossenen Port 80 verursacht.

Erstes Administratorkonto erstellen

Öffnen Sie https://netbird.example.com. Bei einer frischen Installation wird eine Einrichtungsseite statt eines Anmeldeformulars angezeigt. Geben Sie eine E-Mail-Adresse, einen Namen und ein Passwort ein und klicken Sie anschließend auf Create Account. Dieses Konto ist dann das erste Administratorkonto. Danach werden Sie zum Anmeldeformular weitergeleitet.

Das Konto wird in NetBirds eigenem Benutzerspeicher gespeichert. Dieser wird von einem in den Container netbird-server eingebetteten Identity Provider bereitgestellt. Externe Komponenten sind nicht erforderlich. Das ist die größte Änderung gegenüber der selbst gehosteten NetBird-Version von vor einem Jahr. Damals musste zunächst Zitadel oder Keycloak eingerichtet werden. Anschließend mussten vier OIDC-Werte (OpenID Connect) in setup.env eingetragen werden, bevor überhaupt etwas gestartet werden konnte.

Wenn statt der Einrichtungsseite eine Zertifikatswarnung im Browser angezeigt wird, wurde das Zertifikat nicht ausgestellt. Beheben Sie dieses Problem, bevor Sie fortfahren. Das Dashboard kommuniziert über denselben Hostnamen mit der API und kann sich hinter einem fehlerhaften Zertifikat auf schwer nachvollziehbare Weise verhalten.

Ersten Peer verbinden

Installieren Sie den Client auf einem beliebigen Linux-Rechner. Dazu kann auch der VPS selbst gehören, wenn er Teil des Mesh werden soll:

curl -fsSL https://pkgs.netbird.io/install.sh | sh

Unter Debian und Ubuntu konfiguriert dieses Skript das Paket-Repository von NetBird und installiert anschließend den Client über apt. Damit wird das Paket in jedem Fall vom Paketmanager verwaltet. Wenn Sie ein Skript nicht per Pipe an eine Shell übergeben möchten, speichern Sie es zuerst mit curl -fsSL -o install.sh https://pkgs.netbird.io/install.sh und lesen Sie es vor der Ausführung von sh install.sh. Prüfen Sie anschließend in beiden Fällen, was installiert wurde:

apt-cache policy netbird

netbird ist der Befehlszeilen-Client und der Daemon. netbird-ui ist die Desktop-Tray-Anwendung. Auf einem Headless-Server wird sie nicht benötigt.

Verweisen Sie den Client nun auf Ihren Server:

sudo netbird up --management-url https://netbird.example.com

Lassen Sie --management-url weg, registriert sich der Client beim gehosteten Dienst von NetBird, da dies der einkompilierte Standard ist. Der Befehl wird trotzdem erfolgreich ausgeführt, der Rechner erhält trotzdem eine Adresse, und Ihr selbst gehostetes Dashboard bleibt leer. Das passiert fast jedem einmal.

Der Befehl gibt eine URL aus. Öffnen Sie diese URL in einem Browser, um die Anmeldung abzuschließen. Führen Sie danach Folgendes aus:

netbird status
ip addr show wt0

Lesen Sie vier Zeilen aus netbird status: Management: Connected, Signal: Connected, eine Relays:-Zeile mit jedem verfügbaren Relay und eine NetBird IP: im Overlay-Bereich. wt0 ist das WireGuard-Interface, das NetBird erstellt. Es sollte dieselbe Adresse führen.

Eine zweite Maschine unbeaufsichtigt mit einem Setup-Key verbinden

Die Browser-Anmeldung funktioniert nicht bei einer Maschine ohne Browser und ohne anwesende Person. Ein Setup-Key ist ein Pre-Authentication-Token, mit dem eine Maschine ohne den interaktiven Schritt registriert wird. Erstellen Sie ihn im Dashboard unter Setup Keys.

Es gibt zwei Arten. Ein einmaliger Key authentifiziert genau eine Maschine und ist danach verbraucht. Ein wiederverwendbarer Key registriert mehrere Maschinen, optional mit einer Begrenzung der Anzahl. Beide haben ein Ablaufdatum. Beide können den neuen Peer automatisch einer Gruppe zuweisen. Dadurch gelten die Zugriffsregeln dieser Gruppe sofort, sobald die Maschine erscheint.

sudo netbird up --setup-key <SETUP-KEY> \
  --management-url https://netbird.example.com \
  --hostname build-runner-01

--hostname legt den im Dashboard angezeigten Namen fest. Ohne diesen Parameter übernimmt der Peer den Namen, den die Maschine selbst verwendet. Eine Flotte von Einträgen mit dem Namen ubuntu ist nicht hilfreich.

Für Container und kurzlebige Build-Agenten markieren Sie den Key beim Erstellen als ephemeral. Peers, die mit einem ephemeral Key registriert wurden, werden automatisch entfernt, sobald sie länger als 10 Minuten offline waren. Dadurch bleiben veraltete Einträge aus der Peer-Liste entfernt.

Beachten Sie vor der Planung mit Setup-Keys eine Einschränkung: Wenn ein Key abläuft oder gelöscht wird, verhindert dies neue Registrierungen. Maschinen, die bereits mit diesem Key registriert wurden, werden dadurch nicht getrennt. Um den Zugriff einer Maschine zu entfernen, müssen Sie den betreffenden Peer entfernen.

Benötigen Sie weiterhin einen separaten Identity Provider?

Für eine kleine Installation ist das nicht erforderlich. Der integrierte Benutzerspeicher verwaltet Konten, die über das Dashboard erstellt wurden. Für wenige Benutzer reicht das aus.

Sie benötigen einen externen Identity Provider, wenn Sie bereits einen betreiben und keine zweite Benutzerliste pflegen möchten. NetBird akzeptiert jeden Provider, der OIDC unterstützt. Registrieren Sie in Ihrem Provider einen vertraulichen OIDC-Client. Fügen Sie ihn anschließend mit vier Werten im NetBird-Dashboard hinzu: Name, Client-ID, Client-Secret und Issuer. NetBird stellt Ihnen eine Redirect-URL bereit, die Sie wieder im Provider eintragen. Für Google, Microsoft Entra ID, Okta, Zitadel, Keycloak, Authentik und Pocket ID gibt es benannte Integrationen. Alle anderen Provider werden als generisches OIDC eingerichtet. Wenn Sie bereits Authentik als selbst gehostetes Single-Sign-on betreiben, können Sie damit eine gemeinsame Kontenliste anstelle von zwei Listen verwenden.

Die lokale Anmeldung bleibt verfügbar, nachdem Sie einen Provider hinzugefügt haben. Jeder konfigurierte Provider wird auf der Anmeldeseite angezeigt. Behalten Sie ein lokales Administratorkonto mit einem starken Passwort. Bei einer fehlerhaften OIDC-Konfiguration haben Sie so weiterhin Zugriff.

NetBird oder Headscale: Welche Control Plane sollten Sie betreiben?

Beide beseitigen dieselbe Abhängigkeit: den gehosteten Control Server, den Ihre Clients andernfalls kontaktieren würden. Die Projekte sind jedoch unterschiedlich aufgebaut.

Headscale implementiert den Tailscale Control Server neu, und Sie verwenden weiterhin die offiziellen Tailscale-Clients. Es gibt keine offizielle Webkonsole. Sie verwalten Benutzer und Pre-Authentication Keys mit dem Befehl headscale anhand einer Konfigurationsdatei. Community-Weboberflächen sind verfügbar, gehören aber nicht zum Projekt. Das eignet sich für Benutzer, die ihren Zustand in Dateien verwalten und Änderungen in der Versionsverwaltung ablegen möchten.

NetBird liefert das vollständige Produkt: einen eigenen Client, ein eigenes Dashboard, einen integrierten Identity Provider und Zugriffsr ichtlinien, die Sie im Browser bearbeiten. Dadurch laufen auf Ihrem VPS mehr Komponenten. Dafür können Sie die Verwaltung deutlich einfacher an einen Kollegen übergeben, der niemals ein Terminal öffnen wird.

Betreiben Sie Headscale, wenn Sie bereits Tailscale-Clients verwenden oder eine möglichst kleine Control Plane benötigen. Betreiben Sie NetBird, wenn mehrere Personen Peers verwalten müssen und Sie eine Konsole sowie SSO benötigen, ohne diese Komponenten selbst zusammenzustellen.

Wie klein darf ein VPS für diesen Betrieb sein?

Das dokumentierte Minimum sind 1 CPU und 2 GB Arbeitsspeicher. Die eigenen Hinweise von NetBird setzen die aktuelle Untergrenze inzwischen bei etwa 1 GB RAM an, da die Benutzerverwaltung lokal erfolgt. Beim älteren Aufbau waren 2 GB bis 4 GB erforderlich, weil eine vollständige Zitadel-Bereitstellung Teil des Stacks war. Buchen Sie 2 GB. Der zusätzliche Spielraum ermöglicht es, bei einem Upgrade neue Images abzurufen, während die alten noch auf der Festplatte liegen.

Drei Komponenten können Sie auf einem kleinen System problemlos weglassen. Lehnen Sie den NetBird Proxy-Dienst ab. Er veröffentlicht interne Dienste unter öffentlichen Hostnamen und hat nichts mit der Verbindung von Peers zu tun. Lehnen Sie auch CrowdSec ab. Auf einem exponierten System können Sie es später ergänzen, aber nicht unbedingt am ersten Tag. Verwenden Sie weiterhin den standardmäßigen SQLite-Speicher im Volume netbird_data. Wechseln Sie erst zu PostgreSQL, wenn Sie die Bereitstellung auf mehrere Systeme aufteilen oder tatsächlich eine höhere Parallelität benötigen. Die Migration ist laut Dokumentation später möglich.

Das Relay ist die einzige Komponente, auf die Sie nicht verzichten können. Zwei Peers, deren NAT für jedes Ziel einen anderen Port zuweist, können niemals einen direkten Tunnel aufbauen. Das Relay ist dann der einzige Pfad, über den sie überhaupt funktionieren. Durch das Deaktivieren sparen Sie nur sehr wenig Speicher, verhindern aber Verbindungen auf eine schwer nachvollziehbare Weise.

Wenn ein System nicht mehr ausreicht, sollten Sie zuerst die Relays auslagern. Ein eigenständiges Relay wird mit NB_LISTEN_ADDRESS, NB_EXPOSED_ADDRESS, NB_AUTH_SECRET und NB_ENABLE_STUN betrieben. Das gemeinsame Geheimnis muss auf dem Relay und dem Hauptserver identisch sein. Andernfalls können sich Clients dort nicht authentifizieren.

Fehlerbilder und ihre Bedeutung

Das Dashboard zeigt eine Zertifikatswarnung. Traefik hat kein Zertifikat abgerufen. Führen Sie docker compose logs traefik | grep -i acme aus. Dafür gibt es zwei Ursachen. Entweder verweist dig +short netbird.example.com noch nicht auf diesen VPS, oder TCP 80 ist auf dem Weg zwischen Let's Encrypt und dem Container an einer Stelle gesperrt, meistens in der Netzwerk-Firewall des Providers und nicht auf ufw. Beheben Sie die Ursache, bevor Sie wiederholt eine Schleife ausführen. Fehlgeschlagene Validierungen unterliegen einer Ratenbegrenzung. Andernfalls sind weitere Versuche eine Stunde lang nicht möglich.

Der Client meldet eine Verbindung, aber das Dashboard ist leer. Der Client hat sich beim gehosteten Dienst von NetBird registriert, weil --management-url fehlte. Führen Sie netbird status --detail aus und lesen Sie die Zeile Management:. Sie nennt den Server, mit dem der Client tatsächlich kommuniziert. Wenn Management: Connected to https://api.netbird.io:443 angezeigt wird, wurde der Cloud-Dienst verwendet. Führen Sie sudo netbird down und danach erneut sudo netbird up --management-url https://netbird.example.com aus.

Jeder Peer zeigt Connection type: Relayed. Es werden keine direkten Tunnel aufgebaut. Daher läuft der gesamte Datenverkehr über Ihren VPS und verursacht einen zusätzlichen Latenzsprung. Prüfen Sie UDP 3478 in der Firewall des VPS und in der Firewall des Providers. STUN ermöglicht es einem Peer, seine eigene öffentliche Adresse und seinen Port zu ermitteln. netbird status --detail gibt außerdem Direct: false sowie die ICE-Kandidatentypen (interactive connectivity establishment) für jeden Peer aus. Daraus ist ersichtlich, wie weit der Verbindungsaufbau fortgeschritten ist. In einigen Netzwerken ist relayed das einzige verfügbare Ergebnis. Das ist kein Fehler.

Ein Peer tritt bei und kann nichts erreichen. Die Mitgliedschaft im Mesh bedeutet nicht, dass zwei Peers miteinander kommunizieren dürfen. Das wird durch Zugriffsrichtlinien geregelt. Eine Gruppe ohne zugewiesene Richtlinie kann nichts erreichen. Prüfen Sie die Richtlinie im Dashboard, bevor Sie mit der Fehlersuche an Routen und Firewalls beginnen.

netbird status meldet ein Daemon-Problem. Der Dienst läuft nicht. Verwenden Sie sudo netbird service status und sudo netbird service start. Die Client-Logs befinden sich unter /var/log/netbird/client.log. Wenn Sie die Ursache nicht zuordnen können, sammelt netbird debug bundle --anonymize --system-info Logs, Statusinformationen, Routen, DNS-Einstellungen und den Firewall-Status in einem Archiv.

Backups und Upgrades

Zwei Dinge sind für die gesamte Installation entscheidend: das Verzeichnis mit docker-compose.yml und config.yaml sowie das Docker-Volume mit der Datenbank und den Verschlüsselungsschlüsseln. Sichern Sie beides gemeinsam. config.yaml enthält den Schlüssel, der die Daten im Speicher verschlüsselt. Eine Datenbankkopie ohne diesen Schlüssel lässt sich daher nicht in lesbare Daten zurückführen.

docker volume ls
docker compose down
sudo tar czf netbird-config.tgz -C ~ netbird
docker run --rm -v netbird_netbird_data:/data -v "$PWD":/backup \
  alpine tar czf /backup/netbird-data.tgz -C /data .
docker compose up -d

Compose versieht Volume-Namen mit dem Namen des Projektverzeichnisses. Das als netbird_data dokumentierte Volume heißt daher normalerweise netbird_netbird_data. Führen Sie zuerst docker volume ls aus und verwenden Sie den ausgegebenen Namen. Andernfalls schlägt docker run fehl, indem es stillschweigend ein leeres Volume erstellt und nichts archiviert. Bewahren Sie die Archive nicht auf dem VPS auf. Wenn Sie bereits ein Backup-Tool verwenden, übernimmt restic oder BorgBackup den Offsite-Teil.

Ein Upgrade des Servers besteht aus einem Pull und einer Neuerstellung:

docker compose pull
docker compose up -d
docker compose ps

Bevor Sie sich darauf verlassen, führen Sie docker compose config | grep image: aus. Jedes Tag mit dem Wert latest sollte auf eine Version festgelegt werden. Der Grund ist derselbe wie beim Festlegen der Version des Installationsskripts: Sie müssen wissen, was ausgeführt wird, und bei Problemen während eines Upgrades zu einer bekannten Version zurückkehren können. Clients werden über den jeweiligen Paketmanager aktualisiert, mit dem sie installiert wurden.

FAQ

Benötige ich einen eigenen Identity Provider für selbst gehostetes NetBird?

Nein. Aktuelle Releases enthalten einen integrierten Benutzerspeicher. Sie erstellen das erste Administratorkonto im Browser unter https://netbird.example.com und fügen anschließend weitere Benutzer im Dashboard hinzu. Ein externer OIDC-Provider ist optional und kann später mit vier Werten ergänzt werden: Name, Client-ID, Client-Secret und Issuer. Anleitungen, die vor NetBird zunächst die Bereitstellung von Zitadel oder Keycloak verlangen, beschreiben eine inzwischen nicht mehr erforderliche Konfiguration. Wenn Sie ihnen folgen, müssen Sie einen zusätzlichen Dienst betreiben.

Warum wird bei allen meinen Peers Connection type: Relayed angezeigt?

Es werden keine direkten Verbindungen hergestellt. Deshalb läuft der Netzwerkverkehr über das Relay auf Ihrem VPS. Die häufigste Ursache ist ein blockierter UDP-Port 3478. Dies ist der STUN-Port, den Peers verwenden, um ihre eigene öffentliche Adresse und ihren Port zu ermitteln. Öffnen Sie den Port in der Firewall des VPS und in der separaten Netzwerk-Firewall Ihres Providers. Führen Sie anschließend erneut netbird status --detail aus und lesen Sie die Zeile Direct:. In einem Netzwerk, dessen NAT für jedes Ziel einen anderen Port zuweist, ist ein Relay die einzige mögliche Lösung. Die Konfiguration ist dann nicht fehlerhaft.

Mein Client ist verbunden, aber im Dashboard werden keine Peers angezeigt. Was ist passiert?

Der Client hat sich beim gehosteten Dienst von NetBird statt bei Ihrem Server registriert. Das passiert, wenn --management-url nicht gesetzt ist. netbird status --detail gibt in der Zeile Management: den Server aus, mit dem der Client kommuniziert. Ein Wert wie https://api.netbird.io:443 bestätigt dies. Führen Sie sudo netbird down und anschließend sudo netbird up --management-url https://netbird.example.com aus. Danach wird der Peer in Ihrem Dashboard angezeigt.

Worin unterscheidet sich selbst gehostetes NetBird von Headscale?

Beide ersetzen einen gehosteten Control-Server durch einen Server, den Sie selbst betreiben. Headscale ist ausschließlich eine Control Plane. Sie verwalten sie mit dem Befehl headscale und einer Konfigurationsdatei. Es gibt keine offizielle Webkonsole, und Headscale steuert die offiziellen Tailscale-Clients. NetBird liefert im selben Stack einen eigenen Client, ein Administrations-Dashboard und die Integration eines Identity Providers. Headscale ist kleiner im Betrieb und speichert seinen Zustand in Dateien. NetBird lässt sich leichter an Personen übergeben, die kein Terminal verwenden.

Welche Größe muss ein VPS für einen selbst gehosteten NetBird-Server haben?

Das dokumentierte Minimum beträgt 1 CPU und 2 GB Arbeitsspeicher. 2 GB ist daher der Wert, den Sie einplanen sollten. Das praktische Minimum ist in aktuellen Releases auf etwa 1 GB gesunken, weil der Identity Provider nun integriert und nicht mehr als separate Bereitstellung erforderlich ist. Deaktivieren Sie während der Installation die optionalen Proxy- und CrowdSec-Dienste. Verwenden Sie weiterhin den standardmäßigen SQLite-Speicher, bis Sie PostgreSQL tatsächlich benötigen.