VPNSmith
self-host-vpnCOMP

Headscale vs WireGuard (2026): uno è il tunnel, l'altro distribuisce le chiavi

Headscale non sostituisce WireGuard: lo coordina. Con il solo WireGuard ogni peer si scrive a mano; Headscale distribuisce chiavi, indirizzi e rotte ai client Tailscale. Che cosa richiede ciascuno, che cosa la documentazione di Headscale dice che non è, e come scegliere.

Di Eric Gerard · Fondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR8 min letturaPhoto via Pexels

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.
Pannelli posteriori di due server rack impilati, visti di fronte: griglie metalliche forate, una porta seriale su un'etichetta verde, una porta VGA blu, una presa Ethernet RJ45 e due alloggiamenti per moduli sovrapposti su ciascuno, con un cavo arancione sfocato che attraversa l'angolo in basso a sinistra
I pannelli posteriori di due server rack, ciascuno con una porta seriale, una porta VGA e una presa Ethernet. Qualunque opzione scegliate, una macchina con un indirizzo pubblico deve essere raggiungibile da tutte le altre.

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 WireGuardHeadscale
RuoloTunnel tra peer che configurate voiServer di controllo per client Tailscale
Processo sul serverUn'interfaccia di rete, nessun demoneUn servizio con un database (SQLite consigliato)
Porte pubblicheUna porta UDP a vostra sceltaTCP 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 TLSNon necessariHTTPS sulla porta 443 fortemente consigliato dalla documentazione
Software clientWireGuard su ogni dispositivoClient Tailscale su ogni dispositivo
Aggiungere un dispositivoModificare la configurazione su entrambi i latiUn comando tailscale up
Da dispositivo a dispositivo attraverso il NATTramite il vostro server, a meno che uno dei due abbia un endpoint raggiungibileDiretto quando possibile, altrimenti inoltrato tramite DERP
Nomi e regole di accessoDa costruire a parteMagicDNS 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 situazioneScelta
Un VPS, pochi dispositivi, tutto il traffico passa dal serverWireGuard
Volete il minor numero di parti in movimento e un'unica porta UDPWireGuard
Un router o un apparato che offre solo un client WireGuardWireGuard
Portatili, telefoni e server che devono raggiungersi direttamenteHeadscale
Più dispositivi dietro NAT o CGNAT su entrambi i latiHeadscale
Aggiungete e togliete dispositivi spessoHeadscale
Volete nomi e regole di accesso centralizzateHeadscale
Centinaia di dispositivi che cambiano spesso, o necessità di supporto dal fornitoreNessuno 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→

Domande frequenti

Headscale è basato su WireGuard?
Sì, indirettamente. Headscale è un'implementazione self-hosted del server di controllo di Tailscale, e il suo README descrive Tailscale come un VPN costruito sopra WireGuard. I pacchetti tra i vostri dispositivi sono pacchetti WireGuard; Headscale si limita a dire a ogni client Tailscale quali chiavi, indirizzi e rotte usare.
Posso usare Headscale con il client WireGuard standard?
No. Headscale parla il protocollo di controllo di Tailscale, quindi i dispositivi si uniscono con il client Tailscale puntato sul vostro server tramite l'opzione login-server. Una normale interfaccia wg0, configurata con wg o wg-quick, non può registrarsi su Headscale.
Headscale ha bisogno di un server con IP pubblico?
Sì. La pagina dei requisiti di Headscale chiede un server con un indirizzo IP pubblico, servito in HTTPS sulla porta 443, su un sistema Linux o BSD ragionevolmente recente. Se attivate il relay DERP integrato, va esposta anche la porta UDP 3478 per STUN.
Quanti dispositivi può gestire Headscale?
Le FAQ di Headscale rispondono «dipende» e precisano che il progetto non è software enterprise: è rivolto a homelab e a chi fa self-hosting. Indicano che Headscale può verosimilmente gestire centinaia di dispositivi quando la rete cambia poco, e che molti nodi che cambiano spesso sono il caso in cui inizia a faticare.
Qual è il più semplice per due o tre dispositivi?
Il solo WireGuard. Un server, due o tre blocchi peer e un'unica porta UDP danno meno lavoro di un server di controllo con database, dominio e certificato TLS. Headscale comincia a ripagarsi quando il numero di dispositivi, o il numero di coppie che devono parlarsi direttamente, rende soggetta a errori la configurazione scritta a mano.