Informativa sull'affiliazione - Questo articolo contiene un link di affiliazione Contabo. Se ordinate un VPS tramite il nostro link, riceviamo una commissione senza alcun costo aggiuntivo per voi. I fatti su Headscale e WireGuard riportati di seguito sono stati letti nella documentazione ufficiale di ciascun progetto l'8 ottobre 2026.
Risposta rapida: «Headscale vs WireGuard» non è una scelta tra due protocolli VPN. WireGuard è il tunnel. Headscale è un server di controllo che dice ai client Tailscale quali chiavi WireGuard, quali indirizzi e quali rotte usare, così non dovete scriverli a mano. Scegliete il solo WireGuard se avete un server e una manciata di dispositivi che devono soltanto raggiungere quel server. Scegliete Headscale se volete che molti dispositivi si raggiungano tra loro, attraverso il NAT, con nomi, regole di accesso e nessun file di configurazione da modificare su ogni macchina.
Due livelli, non due rivali
Il progetto WireGuard riassume ciò che fa in una frase: incapsula in modo sicuro pacchetti IP su UDP. Aggiungete un'interfaccia, le date la vostra chiave privata e le chiavi pubbliche dei vostri peer, e i pacchetti scorrono. La stessa pagina è altrettanto chiara su ciò che lascia fuori: tutte le questioni di distribuzione delle chiavi e di configurazioni inviate ai client sono fuori dall'ambito di WireGuard ("out of scope", nell'originale).
Quel livello mancante è esattamente ciò che fornisce Headscale. Il suo README lo definisce un'implementazione open source e self-hosted del server di controllo di Tailscale, e descrive quel server come il punto di scambio delle chiavi pubbliche WireGuard dei nodi della rete: assegna gli indirizzi IP dei client ed espone le rotte che annunciano.
Il vero confronto è quindi questo:
- Solo WireGuard: il piano di controllo siete voi. Generate le chiavi, scegliete gli indirizzi, scrivete ogni blocco
[Peer]e lo copiate su entrambi i lati. - Headscale: il piano di controllo è un servizio che ospitate voi. I dispositivi eseguono il client Tailscale, accedono al vostro server e ricevono i loro peer automaticamente.
In entrambi i casi, il traffico tra le vostre macchine è cifrato con il protocollo WireGuard.
Che cosa vi chiede il solo WireGuard
Una rete WireGuard è definita da file di configurazione. Ogni peer è una chiave pubblica più gli indirizzi del tunnel che è autorizzato a usare, ciò che il progetto chiama Cryptokey Routing:
[Interface]
PrivateKey = <server-private-key>
Address = 10.8.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <laptop-public-key>
AllowedIPs = 10.8.0.2/32
Per un server centrale con pochi client è breve e trasparente, e non gira nient'altro oltre all'interfaccia stessa. La nostra guida a WireGuard su Contabo copre questa installazione dall'inizio alla fine, e wg-easy vi aggiunge un'interfaccia web senza cambiare il modello.
Il costo compare quando la rete cresce in una direzione precisa:
- Ogni dispositivo aggiunto obbliga a modificare almeno due file. Il nuovo peer deve conoscere il server, il server deve conoscere il nuovo peer.
- Una mesh completa moltiplica il lavoro. Se 10 dispositivi devono raggiungere direttamente ciascuno gli altri 9, sono 45 coppie da descrivere, su entrambi i lati.
- Qualcuno deve essere raggiungibile. Un tunnel si stabilisce verso un endpoint, cioè un indirizzo IP e una porta UDP. Due dispositivi che si trovano entrambi dietro un NAT non hanno questo endpoint l'uno per l'altro: è la situazione descritta nella nostra guida a WireGuard dietro CGNAT. La risposta abituale è far passare tutto dal server.
- Nomi e regole di accesso li costruite voi. WireGuard vi dà degli indirizzi. Il DNS e il filtraggio tra peer sono un lavoro a parte.
Niente di tutto questo è un difetto. È l'ambito che il progetto ha scelto, e per un singolo server è un vantaggio: meno parti in movimento, una sola porta UDP.
Che cosa aggiunge Headscale
Con Headscale, il lavoro per dispositivo si riduce a un comando. Sul server create un utente e una chiave pre-autenticata:
headscale users create <USER>
headscale preauthkeys create --user <USER_ID>
e su ogni dispositivo, con il client Tailscale installato:
tailscale up --login-server <YOUR_HEADSCALE_URL> --authkey <YOUR_AUTH_KEY>
Il dispositivo riceve quindi il proprio indirizzo e i propri peer dal vostro server. L'elenco delle funzionalità nella documentazione di Headscale comprende:
- MagicDNS e split DNS, perché le macchine abbiano nomi anziché indirizzi.
- ACL in un file di policy centrale, invece di regole firewall su ogni host.
- Subnet router ed exit node, per raggiungere un'intera LAN o far uscire tutto il traffico da un nodo.
- Un server DERP integrato. La documentazione descrive DERP come un relay usato soprattutto quando non è possibile stabilire una connessione diretta tra due nodi. È disattivato per impostazione predefinita.
- Registrazione tramite OpenID Connect, oltre alle chiavi pre-autenticate.

Che cosa la documentazione di Headscale dice che non è
È la parte che i confronti tendono a saltare, ed è scritta senza giri di parole dal progetto stesso.
- Ambito. Il README indica che Headscale copre un ambito ristretto: una sola rete Tailscale (tailnet), adatta a un uso personale o a una piccola organizzazione open source.
- Scala. Le FAQ dicono che Headscale non è software enterprise ("not enterprise software") e che le prestazioni non sono una priorità. Stimano che il server possa verosimilmente gestire centinaia di dispositivi quando nella rete cambia poco.
- Funzioni assenti. Funnel, Serve e i log dei flussi di rete non sono spuntati nell'elenco delle funzionalità.
- Distribuzione. Il README dice che i maintainer non supportano né incoraggiano l'uso di reverse proxy e container per far girare Headscale. Il supporto ufficiale riguarda i binari e i pacchetti DEB. Le immagini container sono costruite per comodità.
- Client. I dispositivi usano il client Tailscale. Il progetto punta a supportarne le ultime 10 versioni, su Linux, OpenBSD, FreeBSD, Windows, Android, macOS, iOS e tvOS.
- Database. È consigliato SQLite. PostgreSQL è ancora supportato ma descritto come in "maintenance mode".
Headscale è rilasciato con licenza BSD-3-Clause. L'ultima versione su GitHub alla data di stesura di questa pagina è la v0.29.4, pubblicata il 23 settembre 2026.
Che cosa serve a ciascuno sul server
| Solo WireGuard | Headscale | |
|---|---|---|
| Ruolo | Tunnel tra peer che configurate voi | Server di controllo per client Tailscale |
| Processo sul server | Un'interfaccia di rete, nessun demone | Un servizio con un database (SQLite consigliato) |
| Porte pubbliche | Una porta UDP a vostra scelta | TCP 443 (HTTPS); UDP 3478 se il DERP integrato è attivo; TCP 80 solo se il client Let's Encrypt incorporato usa la challenge HTTP-01 |
| Dominio e TLS | Non necessari | HTTPS sulla porta 443 fortemente consigliato dalla documentazione |
| Software client | WireGuard su ogni dispositivo | Client Tailscale su ogni dispositivo |
| Aggiungere un dispositivo | Modificare la configurazione su entrambi i lati | Un comando tailscale up |
| Da dispositivo a dispositivo attraverso il NAT | Tramite il vostro server, a meno che uno dei due abbia un endpoint raggiungibile | Diretto quando possibile, altrimenti inoltrato tramite DERP |
| Nomi e regole di accesso | Da costruire a parte | MagicDNS e ACL inclusi |
Fonti: wireguard.com, il README di Headscale e la documentazione di Headscale (requisiti, funzionalità, FAQ, DERP), letti l'8 ottobre 2026.
Entrambi hanno bisogno della stessa base: una piccola macchina Linux con un indirizzo IP pubblico che resti online. Nessuno dei due progetti pubblica un minimo di RAM o di CPU nelle pagine citate qui, e un VPS di fascia base è la sistemazione abituale per l'uno come per l'altro.
Vedi i piani Contabo Cloud VPS attuali
Quale conviene far girare?
| La vostra situazione | Scelta |
|---|---|
| Un VPS, pochi dispositivi, tutto il traffico passa dal server | WireGuard |
| Volete il minor numero di parti in movimento e un'unica porta UDP | WireGuard |
| Un router o un apparato che offre solo un client WireGuard | WireGuard |
| Portatili, telefoni e server che devono raggiungersi direttamente | Headscale |
| Più dispositivi dietro NAT o CGNAT su entrambi i lati | Headscale |
| Aggiungete e togliete dispositivi spesso | Headscale |
| Volete nomi e regole di accesso centralizzate | Headscale |
| Centinaia di dispositivi che cambiano spesso, o necessità di supporto dal fornitore | Nessuno dei due: guardate il servizio Tailscale ospitato |
Se l'ultima riga assomiglia al vostro caso, Tailscale vs Headscale confronta il servizio ospitato e il server self-hosted, e Tailscale vs WireGuard self-hosted affronta la stessa domanda dal lato di WireGuard.
Si possono usare entrambi?
Sì, ed è una configurazione ragionevole. Una normale interfaccia WireGuard sulla propria porta UDP e un servizio Headscale sulla porta TCP 443 non si contendono la stessa porta. Una ripartizione comune: un tunnel WireGuard per un collegamento fisso, come la connessione site-to-site tra due reti, e Headscale per i dispositivi personali che si spostano. Il prezzo sono due sistemi da tenere aggiornati, quindi fatelo solo se ciascuno risolve un problema che l'altro non risolve.
In sintesi
WireGuard è un protocollo e lascia a voi la distribuzione delle chiavi. Headscale è un modo per occuparvi voi stessi di quella distribuzione, con il client Tailscale, su un server che controllate. Partite dal solo WireGuard quando basta un server centrale. Passate a Headscale quando i file di configurazione diventano la cosa principale che mantenete, e leggete prima la sua documentazione: dice chiaramente che è pensato per reti personali e piccoli gruppi. L'installazione passo dopo passo è nella nostra guida al piano di controllo Headscale.
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s
Ospita la tua VPN sul tuo VPS → ContaboAccesso root completo · IPv4 pubblico · scegli la tua regione→


