Se hai letto il nostro confronto Tailscale vs WireGuard self-host, sai già che Headscale è la terza via - quella che combina l'UX di Tailscale con la sovranità del self-host di WireGuard. La domanda non è più "è possibile?" ma "vale il tempo di configurazione?". Questa guida risponde concretamente, basandosi su un'installazione standard di Headscale su un VPS Contabo.
Piano: cos'è realmente Headscale, quando ha senso (e quando no), installazione passo-passo su Contabo con PostgreSQL e OIDC, configurazione ACL, le trappole di produzione di cui nessuno avverte, e costi a 36 mesi rispetto a Tailscale Premium. Alla fine, sarai in grado di decidere in 5 minuti se investire i 2-3 giorni che una configurazione pulita richiede.
Stai valutando Headscale contro il servizio gestito stesso? Il nostro confronto Tailscale vs Headscale elenca le funzioni mancanti, il costo su 3 anni e un verdetto in base alla dimensione del team.
Non hai ancora scelto il VPS? Il nostro confronto Miglior VPS per una VPN mette a confronto otto provider per l'auto-hosting di WireGuard sul prezzo che paghi davvero, comprese le due voci che cambiano la classifica: IPv4 a pagamento e limitazione della banda.
Non hai ancora scelto il VPS? Il nostro confronto Miglior VPS per una VPN mette a confronto otto provider per l'auto-hosting di WireGuard sul prezzo che paghi davvero, comprese le due voci che cambiano la classifica: IPv4 a pagamento e limitazione della banda.
Cos'è realmente Headscale
Headscale è una reimplementazione open-source dell'API del coordinatore di Tailscale, scritta in Go, mantenuta principalmente da Juan Font e una stretta comunità di contributori. Codice sorgente: github.com/juanfont/headscale. Licenza: BSD-3.
Non è un fork di Tailscale. È un server che parla lo stesso protocollo del coordinatore SaaS di Tailscale - il che significa che i client ufficiali di Tailscale (iOS, Android, macOS, Windows, Linux) possono essere indirizzati alla tua istanza di Headscale e si comporteranno normalmente. Non c'è nessun client patchato, nessun binario personalizzato oscuro.
Cosa gestisce Headscale:
- Scoperta dei peer e distribuzione delle chiavi - esattamente come il coordinatore SaaS.
- Coordinazione della traversata NAT - tramite relè DERP (puoi usare i relè DERP pubblici di Tailscale gratuitamente, o ospitare i tuoi).
- ACL dichiarative - accetta lo stesso formato JSON ACL di Tailscale. Stessa sintassi, stessi significati.
- MagicDNS - risoluzione di
node.tailnet.example.com(o qualsiasi dominio tu configuri). - Route di sottorete - per esporre una VPC o LAN dietro un nodo.
- Nodi di uscita - per instradare tutto il traffico internet attraverso un nodo scelto.
Cosa NON gestisce Headscale (i limiti onesti):
- Nessuna funzionalità Premium ufficiale: nessuna registrazione delle sessioni SSH di Tailscale, nessuna console SSO nativa (devi configurare OIDC da solo), nessuna GUI amministrativa proprietaria (esiste un progetto separato
headscale-ui, di terze parti). - La gestione dei client mobili è più manuale - le chiavi di autenticazione devono essere generate lato CLI.
- Il supporto di Tailscale Inc. è inesistente - solo supporto comunitario, GitHub Discussions e Discord.
La promessa è precisa: la maggior parte del valore di Tailscale Premium, al prezzo di un piccolo VPS, con un control plane che ti appartiene.
Quando Headscale ha realmente senso
Headscale non è sempre la risposta giusta. Ecco la matrice decisionale per decidere:
| Situazione | Raccomandazione |
|---|---|
| Solo, 1-5 macchine personali | Tailscale Free, non ne vale la pena |
| Piccolo team, 3-5 utenti, orientato all'apprendimento | WireGuard self-host grezzo, più semplice |
| Team 5-15, fase di crescita, nessuna conformità | Tailscale Premium, tempo ben speso |
| Team 10+, conformità UE/sovranità | Headscale (punto ideale) |
| 50+ nodi B2B con SAML e log di audit | Tailscale Enterprise, l'unico in grado |
| Infrastruttura critica GDPR, bancario, settore pubblico | Headscale + hardening audit |
| Nerd solitario, vuole imparare full stack | Headscale come progetto di apprendimento |
Le due principali ragioni per cui le persone implementano Headscale in produzione:
- Sovranità / conformità: il dipartimento legale o il DSI vietano la dipendenza da SaaS non controllati. Headscale soddisfa il requisito "ospitato in Europa, conforme al GDPR, nessun trasferimento negli Stati Uniti". È il caso nei SaaS B2B regolamentati in crescita nell'UE.
- Ottimizzazione dei costi su larga scala: con 15+ utenti, Tailscale Premium diventa una fattura mensile a quattro cifre. Un Contabo Cloud VPS 4 a €66/anno + 2-3 giorni di tempo di amministrazione di sistema costa meno in contanti; la tabella a 36 mesi più sotto mostra il calcolo completo.
Se nessuna di queste motivazioni guida la tua situazione, resta su Tailscale Premium o WireGuard grezzo. La via di mezzo ha senso solo se è effettivamente giustificata.
Architettura scelta per la produzione
Ecco l'architettura di riferimento che questa guida presuppone:
[Client Tailscale iOS/Android/Linux]
│
│ HTTPS (porta 443)
▼
[Proxy inverso Caddy] ──► [Headscale]
│ │
│ ▼
│ [PostgreSQL 15]
│
└──► [Relè DERP Tailscale - pubblici gratuiti]
Componenti:
- Contabo Cloud VPS 4 Norimberga (4 vCPU, 8 GB RAM, 100 GB SSD, €5.50/mese) - vedi la nostra recensione Contabo 2026 e il tutorial di configurazione passo-passo per preparare il VPS.
- Headscale 0.24 come coordinatore.
- PostgreSQL 15 come backend (rispetto al predefinito SQLite, più robusto al crescere del numero di nodi).
- Caddy 2 come proxy inverso con TLS automatico di Let's Encrypt - Headscale necessita di HTTPS, i client ufficiali lo richiedono.
- OIDC tramite Authentik (anche auto-ospitato, ma Auth0 o Keycloak funzionano altrettanto bene).
- Relè DERP pubblici di Tailscale per la traversata NAT - gratuiti, non c'è bisogno di auto-ospitare DERP a meno che non ci siano specifici vincoli di paranoia.
Installazione passo-passo su Contabo
Tempo di configurazione su un VPS appena fornito: circa 90 minuti se segui i passaggi senza esitazione. Assumeremo Debian 12 (il predefinito di Contabo).
1. Preparazione del sistema
apt update && apt upgrade -y
apt install -y postgresql postgresql-contrib caddy curl wget
2. Creare il database PostgreSQL di Headscale
sudo -u postgres psql <<EOF
CREATE USER headscale WITH PASSWORD 'INSERISCI_UNA_PASSWORD_FORTE_QUI';
CREATE DATABASE headscale OWNER headscale;
GRANT ALL PRIVILEGES ON DATABASE headscale TO headscale;
EOF
3. Installare Headscale
Il pacchetto.deb ufficiale è la via più pulita. Ultima release: github.com/juanfont/headscale/releases.
HS_VERSION="0.29.5"
wget https://github.com/juanfont/headscale/releases/download/v${HS_VERSION}/headscale_${HS_VERSION}_linux_amd64.deb
dpkg -i headscale_${HS_VERSION}_linux_amd64.deb
4. Configurazione di Headscale
I valori qui sotto valgono per Headscale 0.29 (ottobre 2026). Per il file completo adatto alla tua installazione (Docker o .deb, Caddy, nginx o TLS integrato, SQLite come raccomanda il progetto), usa il nostro generatore di config Headscale.
Modifica /etc/headscale/config.yaml. Le impostazioni minime richieste:
server_url: https://headscale.your-domain.com
listen_addr: 127.0.0.1:8080
metrics_listen_addr: 127.0.0.1:9090
database:
type: postgres
postgres:
host: localhost
port: 5432
name: headscale
user: headscale
pass: INSERISCI_UNA_PASSWORD_FORTE_QUI
derp:
server:
enabled: false
urls:
- https://controlplane.tailscale.com/derpmap/default
prefixes:
v4: 100.64.0.0/10
v6: fd7a:115c:a1e0::/48
dns:
magic_dns: true
base_domain: ts.your-domain.com
policy:
mode: file
path: /etc/headscale/acl.json
oidc:
issuer: https://auth.your-domain.com/application/o/headscale/
client_id: headscale
client_secret: OIDC_SECRET_HERE
scope: ["openid", "profile", "email"]
Punti critici:
server_urldeve essere HTTPS. I client ufficiali di Tailscale rifiutano di comunicare in HTTP semplice.prefixes.v4:100.64.0.0/10è l'intervallo CGNAT che Tailscale utilizza per impostazione predefinita. Non cambiare a meno che tu non sappia cosa stai facendo.oidc: opzionale ma fortemente raccomandato in produzione. Senza di esso, si ricade suheadscale users createe chiavi pre-condivise.
5. Caddy come proxy inverso
/etc/caddy/Caddyfile:
headscale.your-domain.com {
reverse_proxy 127.0.0.1:8080
}
Ricarica: systemctl reload caddy. Caddy acquisisce automaticamente il certificato di Let's Encrypt. Verifica che la catena sia valida prima di procedere - i client ufficiali di Tailscale rifiutano i certificati auto-firmati.
6. Avviare Headscale
systemctl enable --now headscale
journalctl -u headscale -f
Dovresti vedere i log di avvio, poi "Listening on 127.0.0.1:8080".
7. Creare un primo utente e una chiave di pre-autenticazione
headscale users create eric
headscale users list # numeric ID of eric, e.g. 1
headscale preauthkeys create --user 1 --reusable --expiration 24h
L'output fornisce una chiave tskey-auth-xxxxxxxxxxxx. Annotala.
8. Collegare un client Tailscale
Su un client Linux con il client ufficiale di Tailscale installato:
tailscale up \
--login-server https://headscale.your-domain.com \
--authkey tskey-auth-xxxxxxxxxxxx
Il nodo appare in headscale nodes list. Da lì puoi ottenere il suo IP 100.x.x.x e iniziare a usarlo.
Per iOS/Android: installa l'app ufficiale di Tailscale, impostazioni → server di login personalizzato → inserisci il tuo URL di Headscale. Tocca "Accedi", verrai reindirizzato al tuo provider OIDC.
Configurazione critica ACL
Le ACL sono dove Headscale dimostra di essere veramente "compatibile con Tailscale". Il file JSON accetta la stessa sintassi delle ACL Premium di Tailscale.
Esempio di produzione (team di 5 utenti con segregazione dev/staging):
{
"acls": [
{
"action": "accept",
"src": ["group:admins"],
"dst": ["*:*"]
},
{
"action": "accept",
"src": ["group:devs"],
"dst": ["tag:dev:*", "tag:staging:22,80,443"]
},
{
"action": "accept",
"src": ["group:devs"],
"dst": ["tag:prod:80,443"]
}
],
"groups": {
"group:admins": ["eric@vpnsmith.com"],
"group:devs": ["alice@vpnsmith.com", "bob@vpnsmith.com"]
},
"tagOwners": {
"tag:dev": ["group:admins"],
"tag:staging": ["group:admins"],
"tag:prod": ["group:admins"]
}
}
Ricarica dopo ogni modifica: headscale acls reload. Headscale valida il JSON prima di applicarlo, quindi un errore di sintassi non interrompe mai la mesh di produzione.
Trappole di produzione di cui nessuno parla
Ecco quattro trappole da prevedere quando si gestisce Headscale:
1. Esaurimento del pool di connessioni PostgreSQL. Headscale limita le sue connessioni PostgreSQL (database.postgres.max_open_conns e max_idle_conns). In una mesh in cui molti nodi si riconnettono spesso (pensa al roaming Wi-Fi sui telefoni), un pool troppo piccolo diventa un collo di bottiglia. Controlla i valori predefiniti nella configurazione di esempio della tua versione e aumentali se i log mostrano connessioni in attesa.
2. I relè DERP pubblici di Tailscale possono essere lontani da alcuni dei tuoi nodi. Quando il traffico viene inoltrato attraverso una regione lontana, la latenza sale. Soluzione: auto-ospitare un relè DERP su un VPS nella regione. Headscale lo gestisce in modo trasparente - vedi i documenti ufficiali di configurazione DERP.
3. Il backup di PostgreSQL è obbligatorio e sottovalutato. Headscale memorizza tutto in PostgreSQL: nodi, chiavi pubbliche, stato ACL, mappature OIDC. Perdi il DB, perdi l'intera mesh. Imposta pg_dump giornaliero + backup automatizzato su uno storage a oggetti compatibile con S3 (ad es. Hetzner Object Storage, ~€1/mese) e testa regolarmente il tuo ripristino.
4. Gli aggiornamenti binari di Headscale sono delicati ma si verificano cambiamenti tra le versioni minori. Leggi il CHANGELOG prima di passare da 0.23 a 0.24. Il team di sviluppo è reattivo su GitHub ma Headscale è in sviluppo attivo - mettili in conto a ogni aggiornamento.
Costi reali su 36 mesi - Headscale vs Tailscale Premium
Il calcolo per 10 utenti, 25 nodi, con assunzioni prudenti:
| Voce | Headscale self-host | Tailscale Premium |
|---|---|---|
| Costo diretto 36m | €198 (VPS Contabo) + €36 backup | $6,480 (10 × $18 × 36m) |
| Configurazione iniziale | 2-3 giorni @ €400/g = €1,000 | 1 ora, ~€50 |
| Manutenzione 36m | ~1.5h/mese × 36m × €50 = €2,700 | ~0.5h/mese × 36m × €50 = €900 |
| Backup + test di ripristino | €200 | €0 |
| Premio rischio (interruzione) | €500 | €0 |
| Totale 36m | ~€4,634 | ~$7,430 ≈ €6,866 |
Headscale vince di ~€2,230 su 36 mesi a 10 utenti. Non enorme, ma reale - e il divario si allarga linearmente con la dimensione del team. A 20 utenti risparmi ~€8,000/3 anni. A 50 utenti è un risparmio significativo.
Se il tuo tempo vale più di €100/h, quel divario si riduce rapidamente. Se vale meno di €50/h (junior, progetto secondario, apprendimento), Headscale vince facilmente.
Verdetto - quando implementare Headscale nel 2026
Implementa Headscale se:
- Hai un vincolo di sovranità / GDPR / nessun trasferimento negli Stati Uniti
- Il tuo team è composto da 10+ utenti con un orizzonte di 12+ mesi
- Hai un amministratore di sistema interno o un istinto da sysadmin
- Tailscale Premium ti sembra costoso ma WireGuard grezzo ti sembra troppo primitivo
Resta su Tailscale Premium se:
- Il tuo tempo vale più di €100/h
- Nessun vincolo di conformità specifico
- Preferisci spendere quei 2-3 giorni sul tuo prodotto
Resta su WireGuard grezzo se:
- Sei sotto i 5 nodi, configurazione semplice, umore di apprendimento
- Hub-and-spoke si adatta a tutti i tuoi casi d'uso
Headscale è la risposta più sottovalutata nell'ecosistema VPN self-hosted nel 2026. Fa la maggior parte del lavoro di Tailscale, su un VPS Contabo a €5.50/mese, con piena sovranità dei dati. Se preferisci un provider statunitense con 30 giorni soddisfatti o rimborsati, il VPS Basic di Ultahost costa 5,52 $ al mese su 24 mesi (1 GB di RAM, IPv4 dedicato, letto il 21 ottobre 2026), sufficiente per un server Headscale di un piccolo team. Il prezzo è 2-3 giorni di configurazione e un riflesso da sysadmin.
Per avere i comandi sempre a portata di mano: la nostra Tailscale & Headscale Cheat Sheet gratuita (PDF di 4 pagine in inglese, download diretto, senza registrazione) raccoglie status e ping, exit node, subnet router, Serve e Funnel, la configurazione di Headscale, utenti, chiavi e ACL, e le cause di guasto più comuni. Scarica la scheda.
Approfondimenti
- Headscale vs WireGuard: il tunnel e il server che distribuisce le chiavi - che cosa il solo WireGuard lascia a voi, e che cosa la documentazione di Headscale dice che non è
- Tailscale vs WireGuard self-host: quale nel 2026
- VPN self-host su Contabo: guida completa a WireGuard 2026
- Configurazione passo-passo del VPS Contabo per VPN 2026
- Monitoraggio VPN VPS con Prometheus + Grafana
- Recensione Contabo 2026
- Calcolatore dei costi VPN self-hosted - inserisci il numero di utenti e la tariffa oraria per vedere se Headscale, Tailscale o WireGuard grezzo vince sul TCO
- Comparatore VPS interattivo - confronta Contabo, Hetzner e OVH per latenza, RAM e prezzi reali a 24 mesi prima di scegliere il tuo host Headscale
Fonti e riferimenti:
- Headscale - codice sorgente ufficiale e documentazione
- Sito di documentazione di Headscale
- Riferimento sintassi ACL di Tailscale
- Guida alla configurazione del server DERP
Pubblicato il 2026-06-05. Guida basata sulla documentazione ufficiale di Headscale, non su un nostro deployment di produzione. Costi da maggio 2026 prezzi Contabo e Tailscale - verifica prima di decidere. Le prestazioni e i risparmi reali dipendono dalla dimensione del team e dall'infrastruttura esistente.
Promemoria: Headscale, Tailscale e l'hosting VPN sono perfettamente legali nell'UE, negli Stati Uniti, in Canada. VPNSmith pubblica questo contenuto a scopo educativo.
Link di affiliazione
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s
Ospita la tua VPN sul tuo VPS → ContaboCloud VPS 4 · 5,50 €/mese · Carta o PayPal · ordini accettati anche fuori dall'UE→Prezzo verificato il 17/10/2026, durata 24 mesi


