En mesh-VPN är ett sådant verktyg som i tysthet gör allt enklare: din laptop, hemserver, telefon och dina VPS:er ser varandra på privata adresser, var de än befinner sig. Haken med hostade mesh-VPN:er är koordineringsservern: ett företag håller kartan över varenda enhet du äger. Headscale är en öppen ersättare för den styrservern. Kör den på en liten VPS, fortsätt använda de vanliga klientapparna, och kartan är din.
Hur det hänger ihop
- Headscale (på din VPS) delar ut adresser, sprider publika nycklar och upprätthåller dina ACL:er.
- Klienterna är de vanliga Tailscale-apparna, riktade mot din server.
- Trafiken går från enhet till enhet över WireGuard. Styrservern bär den aldrig.
Den sista punkten är anledningen till att en pytteliten plan räcker: VPS:en svarar bara på små koordineringsförfrågningar.
Det här behöver du
- Nano-IP ($8/mån): 2 vCPU och 1 GB RAM är långt mer än Headscale använder.
- En dedikerad IPv4 och en domän, till exempel
hs.example.com. Enheterna pratar med styrservern över HTTPS, så VPS:en måste ta emot inkommande 443; NAT-planer gör inte det (detaljer).
Installation (Debian 12 / Ubuntu 24.04)
Hämta aktuell .deb från Headscales versionssida på GitHub och byt ut versionen mot den senaste:
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
Redigera /etc/headscale/config.yaml; de två rader som spelar roll:
server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080
Ställ Caddy framför för HTTPS:
cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy
Lägg till en användare och en enhet
headscale users create alice
headscale users list # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h
Äldre versioner vill ha användarnamnet i stället för ID i --user; headscale preauthkeys create --help talar om vad din version förväntar sig.
På en Linux-enhet:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
På telefoner och datorer låter Tailscale-appen dig ange en egen styrserver i inställningarna. Kör headscale nodes list på VPS:en så bör din enhet synas där.
Reläer och NAT-traversering
De flesta enheter ansluter direkt. När två inte klarar det (strikta mobilnät, dubbel NAT) går trafiken via en DERP-relä. Från start använder Headscale Tailscales publika reläer, som bara ser krypterade paket. Vill du inte ha något externt i vägen, slå på den inbyggda reläen i config.yaml (derp.server.enabled: true) och öppna UDP 3478. Den vidarebefordrade trafiken räknas då mot din VPS:s bandbredd.
Ärliga begränsningar
Det finns ingen officiell webbpanel: användare, nycklar och rutter är CLI-kommandon (lätt när du gjort det två gånger). Nyare funktioner i den hostade tjänsten dyker upp i Headscale senare, om alls. Och styrservern är nu ditt ansvar: om den ligger nere fortsätter befintliga anslutningar att fungera, men nya enheter kan inte ansluta och nycklar kan inte förnyas. Säkerhetskopiera den: hela tillståndet ligger i /var/lib/headscale.
För ett hemlabb, en familj eller ett litet team som vill få bort kartan över sina enheter från tredjepartsservrar är det en av de bästa användningarna av en VPS för $8.
Relaterat
- Hosta en egen WireGuard-VPN: ren WireGuard, om du bara behöver en tunnel
- VPS för VPN
- VPS för fjärråtkomst till Home Assistant
Kommentarer
Inga kommentarer än. Bli först.