Ein Mesh-VPN gehört zu den Werkzeugen, die still alles einfacher machen: Laptop, Heimserver, Handy und VPS sehen sich über private Adressen, egal wo sie gerade sind. Der Haken bei gehosteten Mesh-VPNs ist der Koordinationsserver – ein Unternehmen führt die Karte aller Geräte, die dir gehören. Headscale ist ein Open-Source-Ersatz für genau diesen Steuerserver. Lass ihn auf einem kleinen VPS laufen, nutz weiter die normalen Client-Apps, und die Karte gehört dir.
Wie es zusammenspielt
- Headscale (auf deinem VPS) vergibt Adressen, verteilt öffentliche Schlüssel und setzt deine ACLs durch.
- Clients sind die normalen Tailscale-Apps, auf deinen Server gerichtet.
- Traffic läuft von Gerät zu Gerät über WireGuard. Der Steuerserver transportiert ihn nie.
Genau deshalb reicht ein winziger Tarif: Der VPS beantwortet nur kleine Koordinationsanfragen.
Was du brauchst
- Nano-IP ($8/Monat) – 2 vCPU und 1 GB RAM sind weit mehr, als Headscale nutzt.
- Eine eigene IPv4 und eine Domain, z. B.
hs.example.com. Geräte sprechen den Steuerserver per HTTPS an, also muss der VPS eingehend 443 annehmen – NAT-Tarife können das nicht (Details).
Installation (Debian 12 / Ubuntu 24.04)
Hol dir das aktuelle .deb von der Headscale-Release-Seite auf GitHub – ersetze die Version durch die neueste:
HS_VER=0.26.1
wget -O headscale.deb \
"https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy
Bearbeite /etc/headscale/config.yaml – die zwei entscheidenden Zeilen:
server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080
Setz Caddy für HTTPS davor:
cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy
Nutzer und Gerät hinzufügen
headscale users create alice
headscale users list # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h
Ältere Releases erwarten bei --user den Nutzernamen statt der ID; headscale preauthkeys create --help verrät dir, was deine Version will.
Auf einem Linux-Gerät:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
Auf Handys und Desktops kannst du in den Einstellungen der Tailscale-App einen eigenen Steuerserver eintragen. Führ auf dem VPS headscale nodes list aus – dein Gerät sollte dort auftauchen.
Relays und NAT-Traversal
Die meisten Geräte verbinden sich direkt. Wenn zwei es nicht schaffen (strenge Mobilfunknetze, doppeltes NAT), läuft der Traffic über ein DERP-Relay. Ab Werk nutzt Headscale die öffentlichen Relays von Tailscale – sie sehen nur verschlüsselte Pakete. Wenn du nichts Externes im Pfad haben willst, aktiviere das eingebaute Relay in config.yaml (derp.server.enabled: true) und öffne UDP 3478. Der weitergeleitete Traffic zählt dann gegen die Bandbreite deines VPS.
Ehrliche Grenzen
Es gibt kein offizielles Web-Dashboard: Nutzer, Schlüssel und Routen sind CLI-Befehle (nach dem zweiten Mal kein Problem mehr). Neuere Funktionen des gehosteten Dienstes kommen in Headscale später an, wenn überhaupt. Und der Steuerserver liegt jetzt in deiner Verantwortung – fällt er aus, laufen bestehende Verbindungen weiter, aber neue Geräte können nicht beitreten und Schlüssel sich nicht erneuern. Sichere ihn: Der gesamte Zustand liegt in /var/lib/headscale.
Für ein Homelab, eine Familie oder ein kleines Team, das seine Gerätekarte von fremden Servern fernhalten will, ist das eine der besten Verwendungen für einen VPS für $8.
Verwandte Themen
- Eigenes WireGuard-VPN hosten – reines WireGuard, wenn du nur einen Tunnel brauchst
- VPS für ein VPN
- VPS für den Fernzugriff auf Home Assistant
Kommentare
Noch keine Kommentare. Sei der Erste.