Headscale self-host: il piano di controllo sovrano di Tailscale (2026)

Headscale è il coordinatore open-source di Tailscale. Guida concreta: installazione su Contabo, backend Postgres, autenticazione OIDC, ACL, costi reali e limiti 2026.

Di Eric GerardFondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR

Aggiornato 12 min lettura12 min

Link di affiliazione: possibile commissione, senza costi extra. Metodo

Vedi i passaggi di installazioneGenera la mia config Headscale

fig. 01 / self-host-vpnCONTROLcoordination onlyNODE A100.64.0.1NODE B100.64.0.2NODE C100.64.0.3WireGuard p2pkeys, ACL
fig. 01 / self-host-vpn

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.

fig. 01 / self-host-vpnCONTROLcoordination onlyNODE A100.64.0.1NODE B100.64.0.2NODE C100.64.0.3WireGuard p2pkeys, ACL
fig. 01 / self-host-vpn

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:

SituazioneRaccomandazione
Solo, 1-5 macchine personaliTailscale Free, non ne vale la pena
Piccolo team, 3-5 utenti, orientato all'apprendimentoWireGuard 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 auditTailscale Enterprise, l'unico in grado
Infrastruttura critica GDPR, bancario, settore pubblicoHeadscale + hardening audit
Nerd solitario, vuole imparare full stackHeadscale come progetto di apprendimento

Le due principali ragioni per cui le persone implementano Headscale in produzione:

  1. 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.
  2. 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

Codice sorgente in un editor di terminale
Codice sorgente in un editor di terminale

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_url deve 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 su headscale users create e 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:

VoceHeadscale self-hostTailscale Premium
Costo diretto 36m€198 (VPS Contabo) + €36 backup$6,480 (10 × $18 × 36m)
Configurazione iniziale2-3 giorni @ €400/g = €1,0001 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

Fonti e riferimenti:


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

Prezzo verificato il 17/10/2026, durata 24 mesi

Domande frequenti

Headscale è un software ufficiale di Tailscale?
No. Headscale è un progetto open-source indipendente (juanfont/headscale su GitHub) che reimplementa l'API del piano di controllo di Tailscale. Tailscale Inc. non lo approva ufficialmente ma tollera l'esistenza del progetto. I client ufficiali di Tailscale funzionano con Headscale perché entrambi parlano lo stesso protocollo del piano di controllo - ma il supporto è a tuo carico.
Posso continuare a usare i client ufficiali di Tailscale con Headscale?
Sì - è proprio questo il punto. I client Tailscale per iOS, Android, macOS, Windows e Linux possono essere indirizzati alla tua istanza di Headscale sovrascrivendo l'URL del server di login. Nessun fork, nessuna build personalizzata necessaria. Ottieni l'UX raffinata di Tailscale con un coordinatore che possiedi completamente.
Quanto costa gestire Headscale rispetto a Tailscale Premium?
Costo diretto: €66/anno su un Contabo Cloud VPS 4 (€5.50/mese). Tailscale Premium per 10 utenti costa circa $2,160/anno. Se conviene dipende da quanto vale il tuo tempo di configurazione e manutenzione. Costo indiretto: pianifica 2-3 giorni per la configurazione iniziale, poi 1-2 ore/mese di manutenzione.
Headscale supporta le ACL e MagicDNS di Tailscale?
Sì per le ACL - Headscale carica lo stesso formato JSON ACL dichiarativo di Tailscale. MagicDNS funziona da Headscale v0.23 con le estensioni DERP e DNS abilitate. SSH, condivisione file (Taildrop), nodi di uscita, router di sottorete - tutto funziona. La lacuna notevole è la registrazione delle sessioni SSH di Tailscale, che rimane una funzionalità Premium solo sul lato SaaS.