Was ist Tailscale?
Tailscale ist ein modernes VPN-Tool, das auf dem WireGuard-Protokoll basiert und das Ziel verfolgt, sichere Netzwerke so einfach wie möglich aufzubauen. Im Kern setzt Tailscale auf ein Zero-Trust-Modell: Statt einem klassischen Hub-and-Spoke-VPN, bei dem alle Verbindungen durch einen zentralen Server laufen, verbinden sich die Geräte direkt miteinander – peer-to-peer, Ende-zu-Ende verschlüsselt mit WireGuard.
Das Besondere an Tailscale ist die verwaltete Control Plane. Diese ist der Teil des Systems, der die gesamte Koordination übernimmt: Welche Geräte dürfen miteinander kommunizieren? Wie werden WireGuard-Schlüssel verteilt und rotiert? Wie werden NAT-Traversal und DERP-Relay-Server verwaltet? All das übernimmt Tailscale als SaaS-Dienst – gehostet in der Cloud des gleichnamigen Unternehmens mit Sitz in den USA.
Für den Endnutzer bedeutet das: curl -fsSL https://tailscale.com/install.sh | sh, einmal mit dem eigenen Account anmelden, fertig. Innerhalb von Minuten hat man ein funktionierendes Mesh-Netzwerk über alle eigenen Geräte hinweg – inklusive Smartphones, Server und Desktop-Rechner. Ich habe Tailscale selbst mehrere Jahre lang in meinem Setup genutzt und war immer wieder beeindruckt, wie reibungslos das in der Praxis funktioniert.
Was ist Headscale?
Headscale ist die Open-Source-Alternative zur proprietären Tailscale-Control-Plane. Das Projekt, ursprünglich von Juan Font gestartet und heute aktiv von der Community weiterentwickelt, implementiert die Tailscale-Control-Server-API vollständig – und zwar so, dass man den regulären Tailscale-Client (den offiziellen tailscale-Daemon) weiterhin nutzen kann, ihn aber gegen einen selbst gehosteten Server verbindet statt gegen die Tailscale-Cloud.
Das bedeutet: Man behält die volle Kontrolle über die Control Plane. Alle Metadaten – welche Geräte im Netzwerk aktiv sind, welche IPs sie haben, wann sie zuletzt online waren – liegen auf dem eigenen Server, nicht bei Tailscale Inc. in den USA.
Headscale ist in Go geschrieben, läuft als einzelner Prozess und benötigt nur eine SQLite- oder PostgreSQL-Datenbank. In meinem Homelab-Setup läuft Headscale als Docker-Container auf meinem dedizierten Server, zusammen mit einem Caddy-Reverse-Proxy, der die HTTPS-Terminierung und automatische Let's-Encrypt-Zertifikate übernimmt. Der Ressourcenbedarf ist minimal – Headscale selbst braucht kaum mehr als 50 MB RAM im Betrieb.
Die wichtigsten Unterschiede im Überblick
Bevor wir in die Details gehen, eine schnelle Übersicht der zentralen Unterschiede zwischen Tailscale und Headscale:
- Control Plane: Tailscale nutzt eine proprietäre, von Tailscale Inc. betriebene Control Plane in der Cloud. Headscale ist eine selbst gehostete, quelloffene Implementierung dieser Control Plane.
- Datenschutz: Bei Tailscale liegen Metadaten über dein Netzwerk bei einem US-amerikanischen Unternehmen. Bei Headscale bleiben alle Daten ausschließlich auf deinem eigenen Server.
- Kosten: Tailscale bietet ein kostenloses Tier (3 Nutzer, 100 Geräte) und kostenpflichtige Pläne ab 6 USD pro Monat. Headscale selbst ist kostenlos, setzt aber einen eigenen öffentlich erreichbaren Server voraus.
- Features: Tailscale bietet MagicDNS, Funnel, Exit Nodes, ein globales DERP-Relay-Netzwerk und ein ausgereiftes Web-Dashboard. Headscale unterstützt einen Teil dieser Features, aber nicht alle.
- Wartungsaufwand: Tailscale ist ein vollständig verwalteter Dienst ohne eigenen Wartungsaufwand. Headscale muss selbst installiert, aktualisiert und gesichert werden.
Tailscale: Die Stärken des verwalteten Dienstes
Wer Tailscale nutzt, profitiert von einer Reihe ausgereifter Features, die die selbst gehostete Alternative so nicht oder nicht in dieser Form bietet.
MagicDNS ist eines der praktischsten Features. Statt IP-Adressen im Kopf zu behalten, tippt man einfach ssh mein-server.tail1234.ts.net und Tailscale kümmert sich automatisch um die Namensauflösung – über alle Geräte im Tailnet hinweg, ohne dass man einen eigenen DNS-Server betreiben müsste. In Kombination mit den stabilen Tailscale-IPs (immer aus dem 100.64.0.0/10-Bereich) macht das das Arbeiten im privaten Netzwerk sehr angenehm.
Tailscale Funnel ermöglicht es, Dienste auf den eigenen Geräten öffentlich im Internet erreichbar zu machen – ohne Port-Forwarding, ohne eigene öffentliche IP-Adresse, ohne eigene Zertifikate. Das ist ideal für schnelle Demos, Webhooks in der Entwicklung oder temporär öffentliche Dienste. Headscale kann dieses Feature nicht replizieren, da es tief in die Tailscale-eigene Infrastruktur integriert ist.
Exit Nodes erlauben es, den gesamten Internettraffic eines Geräts über einen anderen Knoten im Netzwerk zu routen – quasi ein VPN innerhalb des VPN. Das ist nützlich, wenn man von unterwegs so surfen möchte, als wäre man im Heimnetz. Tailscale macht das mit einem einzigen Befehl möglich und bietet außerdem die Möglichkeit, Mullvad-Exit-Nodes direkt aus dem Dashboard zu buchen.
DERP-Relay-Server (Designated Encrypted Relay for Packets) kommen zum Einsatz, wenn eine direkte peer-to-peer-Verbindung zwischen zwei Geräten nicht möglich ist – etwa weil beide hinter strikten NATs oder restriktiven Firewalls sitzen. Tailscale betreibt ein globales Netzwerk aus DERP-Servern (unter anderem in Frankfurt, Amsterdam und weiteren Standorten), die das verschlüsselte Relay übernehmen. Bei Headscale kann man eigene DERP-Server konfigurieren oder die öffentlichen Tailscale-DERP-Server nutzen.
Das Web-Dashboard von Tailscale rundet das Paket ab. Man sieht auf einen Blick alle verbundenen Geräte, kann ACLs mit HuJSON bearbeiten, OAuth-Clients anlegen, SSH-Schlüssel verwalten und vieles mehr – alles ohne Kommandozeile. Für weniger erfahrene Nutzer ist das ein erheblicher Komfortgewinn.
Headscale: Die Vorteile der selbst gehosteten Alternative
Warum sollte man also den höheren initialen Aufwand von Headscale in Kauf nehmen? Es gibt überzeugende Gründe – besonders wenn man als Self-Hoster Wert auf Kontrolle und Datenschutz legt.
Vollständige Datensouveränität ist der wichtigste Vorteil. Bei Tailscale weiß man, dass das Unternehmen technisch Zugang zu Metadaten über das eigene Netzwerk hat: Welche Geräte sind verbunden? Welche IPs haben sie? Wann waren sie zuletzt online? Laut den Nutzungsbedingungen werden diese Daten nicht für Werbung genutzt – aber sie liegen trotzdem außerhalb des eigenen Einflussbereichs. Bei Headscale bleiben alle diese Daten ausschließlich auf dem eigenen Server. Das ist besonders relevant, wenn man das VPN im geschäftlichen Umfeld nutzt und DSGVO-Konformität nachweisen muss.
Kein Vendor Lock-in ist ein weiterer wichtiger Aspekt. Tailscale ist ein VC-finanziertes Startup – gut finanziert und mit einem guten Produkt, aber letztlich von externen Faktoren abhängig. Preismodelle können sich ändern, Features können hinter Paywalls wandern, oder das Unternehmen könnte übernommen werden. Mit Headscale ist man strukturell unabhängig: Das Protokoll basiert auf WireGuard (offen, auditiert), der Headscale-Code liegt auf GitHub unter einer BSD-Lizenz.
Keine künstlichen Limits bei Nutzern und Geräten. Das kostenlose Tier von Tailscale erlaubt 3 Nutzer und 100 Geräte. Sobald man mehr Personen einbinden möchte – Familie, Freunde, ein kleines Team – fallen Kosten an. Headscale kennt keine solchen Limits, solange der eigene Server die Last tragen kann. In der Praxis ist das bei typischen Homelab-Szenarien nie ein Problem.
Integration in bestehende Infrastruktur fällt mit Headscale ebenfalls leichter. Da es als normaler Prozess läuft, kann man es in Kubernetes deployen, mit dem eigenen Monitoring via Prometheus und Grafana integrieren (Headscale exportiert Metriken nativ), in CI/CD-Pipelines einbinden oder mit eigenem Secret-Management wie Vault verknüpfen.
Die Einschränkungen von Headscale
Headscale ist kein vollständiger Drop-in-Ersatz für Tailscale – das sollte man klar benennen. Es gibt wichtige Einschränkungen, die man vor der Entscheidung kennen sollte.
Kein offizielles Web-UI. Die gesamte Verwaltung erfolgt über die Kommandozeile. Nutzer anlegen, Geräte registrieren, Pre-Auth-Keys generieren – alles läuft über headscale-CLI-Befehle, direkt auf dem Server oder via docker exec. Für erfahrene Self-Hoster ist das kein Hindernis. Es gibt Community-Projekte wie headscale-ui, die eine browserbasierte Oberfläche nachrüsten, aber diese sind nicht offiziell unterstützt und müssen selbst betrieben werden.
Kein Tailscale Funnel. Da Funnel eine spezifische Tailscale-Infrastrukturkomponente ist, die eigene Proxies und Zertifikate voraussetzt, kann Headscale dieses Feature nicht replizieren. Wer Dienste öffentlich exponieren möchte, greift stattdessen zu Cloudflare Tunnels, einer eigenen öffentlichen IP mit Reverse Proxy oder ähnlichem.
Mobile Apps mit Mehraufwand. Die offiziellen Tailscale-Apps für iOS und Android verbinden sich standardmäßig gegen die Tailscale-Control-Plane. Um sie mit Headscale zu nutzen, muss man in den App-Einstellungen den Custom Control Server manuell eintragen. Auf iOS ist das über Einstellungen → Account → Log Out → Log in with custom coordination server möglich. Es funktioniert, aber es ist nicht so nahtlos wie der offizielle Flow.
Kein Tailscale SSH. Das Feature, SSH-Verbindungen direkt über Tailscale zu authentifizieren und zu zertifizieren, ist Tailscale-spezifisch und in Headscale nicht verfügbar. Man nutzt stattdessen reguläres SSH über das Headscale-Netz, was technisch einwandfrei funktioniert, aber die zusätzliche Sicherheitsschicht von Tailscale SSH nicht mitbringt.
Aktive Wartung erforderlich. Updates müssen manuell eingespielt werden. Wenn Tailscale das Client-Protokoll erweitert, muss Headscale nachziehen – manchmal mit etwas Verzögerung. In meiner Erfahrung war das bisher kein großes Problem, aber man muss Headscale aktiv beobachten und regelmäßig aktualisieren.
Setup-Vergleich: Tailscale vs. Headscale in der Praxis
Um den Unterschied in der Einrichtungskomplexität zu verdeutlichen, hier ein direkter Vergleich beider Wege.
Tailscale einrichten dauert buchstäblich zwei Minuten:
# Installation auf einem Linux-Server
curl -fsSL https://tailscale.com/install.sh | sh
# Mit dem eigenen Account verbinden
sudo tailscale up --authkey=tskey-auth-xxxxxxxx
Der Server erscheint sofort im Tailscale-Dashboard. Kein weiterer Konfigurationsaufwand.
Headscale selbst hosten ist etwas aufwendiger, aber gut dokumentiert. Hier ist mein docker-compose.yml für Headscale:
version: "3.9"
services:
headscale:
image: headscale/headscale:latest
container_name: headscale
restart: unless-stopped
volumes:
- ./config:/etc/headscale
- ./data:/var/lib/headscale
ports:
- "8080:8080"
- "9090:9090"
command: serve
headscale-ui:
image: ghcr.io/gurucomputing/headscale-ui:latest
container_name: headscale-ui
restart: unless-stopped
ports:
- "8081:80"
Dazu braucht man eine Konfigurationsdatei config/config.yaml. Das sinnvolle Minimum:
server_url: https://headscale.example.com
listen_addr: 0.0.0.0:8080
metrics_listen_addr: 0.0.0.0:9090
log:
level: info
database:
type: sqlite
sqlite:
path: /var/lib/headscale/db.sqlite
dns:
magic_dns: true
base_domain: hs.example.com
Anschließend legt man einen Nutzer an und generiert einen Pre-Auth-Key für die Geräte-Registrierung:
# Einen neuen User anlegen
docker exec headscale headscale users create niels
# Einen wiederverwendbaren Pre-Auth-Key generieren
docker exec headscale headscale preauthkeys create \
--user niels \
--reusable \
--expiration 24h
# Auf dem Client-Gerät verbinden
sudo tailscale up \
--login-server https://headscale.example.com \
--authkey=<key>
Das ist mehr Aufwand als bei Tailscale, aber für jeden, der schon einmal einen Dienst mit Docker und einem Reverse Proxy betrieben hat, ist das gut handhabbar. Einmal eingerichtet, läuft Headscale in meiner Erfahrung sehr stabil und mit minimalem Wartungsaufwand.
Wann Tailscale, wann Headscale?
Tailscale ist die richtige Wahl, wenn:
- man schnell und ohne Aufwand ein sicheres Netzwerk aufbauen möchte – ohne eigene Serverinfrastruktur.
- das Team aus weniger technikaffinen Nutzern besteht, die kein CLI bedienen möchten oder sollen.
- man Tailscale Funnel für öffentliche Endpunkte ohne eigene Infrastruktur benötigt.
- Datenschutz kein kritisches Thema ist – rein private Nutzung, keine personenbezogenen Geschäftsdaten.
- man mit der Gerätezahl und Nutzeranzahl im Rahmen des kostenlosen Tiers bleibt.
- man Tailscale SSH oder die native Mullvad-Exit-Node-Integration nutzen möchte.
Headscale empfehle ich, wenn:
- man ein Homelab betreibt und maximale Kontrolle über die eigene Infrastruktur haben möchte.
- DSGVO-Compliance wichtig ist – etwa wenn Mitarbeiter-Geräte oder interne Geschäftsdaten über das VPN laufen.
- man keinen monatlichen Abo-Betrag zahlen möchte und die technischen Mittel hat, Headscale selbst zu betreiben.
- man Vendor Lock-in grundsätzlich vermeiden will und auf Open-Source-Lösungen setzt.
- das Netzwerk viele Nutzer oder Geräte umfassen soll, ohne in kostenpflichtige Pläne zu fallen.
- man Erfahrung mit Docker, Linux-Administration und Reverse Proxies hat.
Mein Fazit: Headscale für den überzeugten Self-Hoster
Der Tailscale-Headscale-Vergleich lässt sich auf eine einfache Formel bringen: Tailscale ist das bessere Produkt für den Nutzer, der Komfort über Kontrolle stellt. Headscale ist die bessere Wahl für den überzeugten Self-Hoster, der seine Infrastruktur selbst in der Hand haben möchte.
Ich betreibe Headscale seit über einem Jahr produktiv in meinem Homelab. Meine VMs, mein NAS, meine Raspberry Pis und mein Laptop sind alle darüber verbunden. In dieser Zeit hatte ich keine nennenswerten Ausfälle. Die vollständige Kontrolle über alle Metadaten und die Unabhängigkeit vom Tailscale-Dienst sind für mich entscheidend – zumal ich das Netzwerk auch für einige private Projekte mit Freunden nutze, bei denen Datenschutz eine Rolle spielt.
Was ich beiden Lösungen zugute halte: Sie machen das, was früher komplizierte OpenVPN-Konfigurationen oder teure Enterprise-Lösungen erforderten, zugänglich für jeden mit etwas Linux-Grundkenntnissen. WireGuard-basierte Mesh-VPNs sind eine der praktischsten technischen Entwicklungen der letzten Jahre für Self-Hoster.
Mein persönlicher Tipp für den Einstieg: Fang mit Tailscale an, um das Konzept zu verstehen und zu erleben, wie elegant diese Technologie funktioniert. Wenn du dann feststellst, dass du mehr Kontrolle möchtest oder die Datenschutzaspekte für dich relevant werden, ist der Wechsel zu Headscale ein gut machbarer Schritt – die Clients bleiben dieselben, nur der Control Server ändert sich.
Weiterführende Artikel
- WireGuard vs. OpenVPN – VPN-Protokoll-Vergleich für Self-Hoster – Performance und Sicherheit
- Cloudflare Tunnel vs. WireGuard – Remote Access ohne offene Ports – die Alternativen im Vergleich