Per raggiungere il NAS mentre sei lontano da casa, collegarti in SSH a un server remoto o aprire una dashboard che gira sul tuo homelab, di solito hai due strade. La prima è aprire le porte del router verso internet, esponendo quei servizi a chiunque faccia una scansione di rete. La seconda è affidarti a una VPN commerciale che instrada tutto il traffico attraverso i server di un’azienda terza.
Le mesh VPN nascono proprio per evitare entrambe le cose. Invece di un unico server centrale a cui tutti si connettono, costruiscono una rete in cui ogni dispositivo parla direttamente con gli altri, ovunque si trovino, come se fossero tutti sulla stessa rete locale.
NetBird è una mesh VPN open source costruita su WireGuard, lo stesso protocollo veloce e leggero che ormai si trova ovunque. Il concetto è simile a quello di Tailscale, il prodotto che ha reso popolare questo approccio, con una differenza sostanziale, ovvero in NetBird ogni singolo componente è open source e puoi ospitarlo sui tuoi server, senza che nessun servizio esterno faccia da intermediario.
Per anni questo è stato anche il suo punto debole, perché tirare su un’istanza richiedeva configurare un provider di identità separato come Keycloak o Zitadel. Con la serie 0.6x, arrivata tra fine 2025 e inizio 2026, le cose sono cambiate, e ora bastano una piccola macchina virtuale e un comando per avere il tutto in piedi. In questa guida vedremo come funziona, come installare server e client e come gestire il tutto.
Come funziona una mesh VPN
Per capire perché NetBird è interessante, conviene partire dal modello classico di VPN. In quel modello esiste un server centrale, a cui tutti i dispositivi si collegano, e ogni pacchetto, anche quando due dispositivi sono fisicamente vicini, fa un viaggio fino al server e ritorno. Un sistema che diventa lento e fragile man mano che il numero di dispositivi cresce, perché tutto dipende da quell’unico punto.
Una mesh, letteralmente una “maglia”, ribalta l’idea. Ogni dispositivo costruisce un tunnel cifrato direttamente verso gli altri, senza passare da un nodo centrale per il traffico vero e proprio. Il risultato è una rete in cui il tuo portatile in un bar e il server di casa si vedono come se fossero collegati allo stesso router, con un indirizzo IP privato stabile assegnato a ciascuno. Per questi indirizzi NetBird usa l’intervallo 100.64.0.0/10, uno spazio riservato che non entra in conflitto con le reti domestiche più comuni.
Resta un problema pratico, ovvero come fanno due dispositivi a trovarsi e a parlarsi quando si trovano entrambi dietro a un router con NAT, cioè senza un indirizzo pubblico raggiungibile. Qui entrano in gioco due componenti.
Un server di coordinamento (che NetBird chiama management e signal) si occupa di presentare i dispositivi tra loro e di scambiare le chiavi, mentre un server STUN aiuta ogni nodo a scoprire come è visto dall’esterno, in modo da aprire il tunnel diretto. Quando la connessione diretta non è possibile, per esempio dietro reti aziendali molto chiuse, il traffico viene fatto passare da un relay (TURN), sempre cifrato ma un po’ più lento.
La cosa importante da tenere a mente è una sola, ovvero il server di coordinamento serve solo a far conoscere i dispositivi tra loro. I tuoi dati viaggiano da un dispositivo all’altro, non attraverso di lui.
Cosa cambia rispetto a Tailscale e a WireGuard
Chi ha confidenza con il self-hosting probabilmente conosce già Tailscale, che è arrivato prima ed è difficile da battere. La domanda giusta non è quindi qual è il migliore in assoluto, ma quale filosofia ti interessa di più.
Tailscale punta tutto sulla comodità, perché la configurazione richiede pochi secondi per dispositivo e poi te ne dimentichi. Il prezzo da pagare è che il server di coordinamento, il pezzo che permette ai tuoi dispositivi di trovarsi, gira sull’infrastruttura di Tailscale. Esiste un’alternativa self-hosted chiamata Headscale, ma è una reimplementazione non ufficiale del solo lato server, e può rompersi quando il client cambia.
Con NetBird sia il client sia il server di coordinamento sono open source e pensati per girare insieme, quindi puoi tenere l’intera mappa della tua rete sui tuoi sistemi.
A questo aggiunge una serie di funzioni utili, tra cui le regole di accesso (ACL) per decidere quali gruppi di dispositivi possono raggiungere quali altri, i controlli sullo stato dei dispositivi (le cosiddette posture check, per esempio “consenti l’accesso solo se il client è aggiornato”), il login tramite SSO con Google, Microsoft e Okta o altri provider, e un livello aggiuntivo di cifratura basato su Rosenpass. Sotto a tutto resta sempre WireGuard.
Con NetBird devi comunque gestire una macchina con un dominio pubblico, mentre con Tailscale non hai nulla da mantenere. Rispetto a WireGuard configurato a mano, invece, il guadagno è notevole, perché non devi scrivere file di configurazione per ogni peer, non devi scambiare le chiavi manualmente e non ti serve il port forwarding.
| Aspetto | NetBird | Tailscale | WireGuard “puro” |
|---|---|---|---|
| Server di coordinamento | Open source, self-hosted | Proprietario (cloud) | Non previsto |
| Self-hosting completo | Sì, ogni componente | Solo parziale (via Headscale) | Sì, ma tutto manuale |
| Configurazione iniziale | Media | Veloce | Lenta |
| SSO e gruppi/ACL | Sì | Sì | No |
| Attraversamento NAT | Automatico | Automatico | Da gestire a mano |
| Cifratura post-quantum | Sì (Rosenpass) | No (nativamente) | No |
Cosa ti serve e come installare il server
Prima di mettere mano ai comandi, prepara l’essenziale. Ti serve poco, ma è bene averlo pronto prima di iniziare.
- Una macchina Linux raggiungibile da internet, anche modesta (un mini pc con intel 100). Bastano 1 CPU e 2 GB di RAM per una rete personale.
- Le porte TCP 80 e 443 aperte (per il pannello web e l’API) e la porta UDP 3478 aperta, che serve allo STUN per gestire l’attraversamento del NAT.
- Un nome di dominio che punti all’indirizzo IP della macchina, perché NetBird genera in automatico i certificati HTTPS legandoli a quel dominio.
- Docker con il plugin Compose, più i comandi
curlejqgià installati.
Lo script di avvio mette in piedi un singolo container netbird-server che racchiude management, signal, relay e STUN, semplificando di parecchio rispetto alla vecchia architettura a container separati. L’installazione vera e propria è un comando solo. Imposta il tuo dominio e lancia lo script ufficiale.
export NETBIRD_DOMAIN=netbird.tuodominio.it
curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bashDurante l’esecuzione lo script ti chiede quale reverse proxy vuoi usare. Se parti da zero, scegli l’opzione predefinita (Traefik), che si occupa da solo dei certificati TLS ed è già incluso nel Docker Compose generato.
Which reverse proxy will you use?
[0] Traefik (consigliato - TLS automatico, incluso nel Docker Compose)
[1] Traefik esistente
[2] Nginx
[3] Nginx Proxy Manager
[4] Caddy esterno
[5] Altro/ManualeSe invece sulla stessa macchina hai già un reverse proxy che gestisce altri servizi, le opzioni da 1 a 5 ti generano la configurazione da incollare nel tuo setup esistente. È una comodità che evita i conflitti sulle porte 80 e 443.
Una volta terminato, apri https://netbird.tuodominio.it nel browser. La prima volta che ci accedi, e solo finché non esiste alcun account, vedrai una pagina di setup che ti fa creare l’account amministratore. Da quel pannello gestisci tutto il resto.

Per aggiornare l’istanza in futuro userai i comandi di Docker Compose, facendo prima un backup dei dati.
docker compose pull netbird-server dashboard
docker compose up -d --force-recreate netbird-server dashboard
Collegare i tuoi dispositivi
Con il server attivo, aggiungere un dispositivo significa installare l’agente NetBird e collegarlo alla tua istanza. Su Linux e macOS il modo più rapido è lo script ufficiale, che installa sia il demone sia l’interfaccia grafica.
curl -fsSL https://pkgs.netbird.io/install.sh | sh
Su Windows scarichi l’installer dalla dashboard, mentre su Android e iOS ci sono le app native sui rispettivi store. A questo punto devi indicare all’agente a quale management collegarsi: dal terminale è sufficiente questo.
netbird up --management-url https://netbird.tuodominio.it
Il comando apre il browser e ti chiede di autenticarti con l’account che hai creato. Dopo il login il dispositivo compare nella dashboard, riceve il suo indirizzo nell’intervallo 100.64.x.x e inizia a vedere gli altri.
Il discorso cambia per le macchine “headless”, cioè i server senza interfaccia grafica, dove aprire un browser non ha senso. Per questi casi si usano le setup key, chiavi che generi dal pannello e che puoi rendere riutilizzabili o monouso, assegnando in automatico il dispositivo a un certo gruppo. La registrazione diventa così completamente non interattiva, perfetta per gli script o per strumenti come Ansible.
netbird up \
--setup-key LA-TUA-SETUP-KEY \
--management-url https://netbird.tuodominio.itPer chi vuole spingersi oltre sul fronte sicurezza, NetBird integra Rosenpass, un livello aggiuntivo di protezione pensato per resistere a un futuro in cui i computer quantistici potrebbero mettere in crisi la crittografia attuale. In pratica genera una nuova chiave condivisa ogni due minuti, applicandola sopra a WireGuard. Lo attivi così.
netbird up --enable-rosenpass --management-url https://netbird.tuodominio.itSe attivi Rosenpass su un dispositivo, quel dispositivo riuscirà a comunicare solo con altri peer che hanno la stessa funzione attiva. È una scelta voluta, per garantire che la rete sia interamente protetta oppure non lo sia affatto. Se hai un parco macchine misto, valuta la modalità permissiva (--rosenpass-permissive), che fa ricadere su WireGuard standard le connessioni con i peer che non la supportano.
gruppi, regole di accesso e il nuovo netbird expose
Per impostazione predefinita NetBird applica una regola che permette a tutti i peer di parlare con tutti gli altri, comoda per le prime prove.
Il primo accorgimento sensato, una volta passati dal “funziona” al “lo tengo acceso h24”, è organizzare i dispositivi in gruppi (per esempio server, laptop, mobile) e poi scrivere delle policy che restringano chi raggiunge cosa. Una regola tipica consente al gruppo dei portatili di arrivare ai server, ma non viceversa, riducendo la superficie esposta in caso di compromissione di un dispositivo.
A questo si affiancano le posture check, controlli che fanno dipendere l’accesso dallo stato del client. Puoi pretendere, per esempio, che la versione di NetBird sia aggiornata o che il sistema operativo rispetti certi requisiti prima di lasciar entrare un dispositivo nella rete.
Sul fronte della comodità c’è invece il DNS interno. NetBird assegna nomi leggibili ai dispositivi, così puoi collegarti a nas.netbird.cloud invece di ricordare a memoria un indirizzo numerico, in modo analogo al MagicDNS di Tailscale.
La novità più recente, introdotta con la versione 0.66, è il comando netbird expose, che pubblica un servizio locale attraverso il reverse proxy integrato. Se hai una piccola web app in ascolto sulla porta 8080, ti basta questo.
netbird expose 8080Il servizio diventa raggiungibile tramite NetBird, e puoi aggiungere protezioni come un PIN d’accesso. È un’idea interessante per esporre un servizio all’interno della tua rete privata in modo controllato.
Se vuoi uscire dalla rete privata restano più adatti strumenti come Pangolin, che nasce proprio per esporre servizi self-hosted verso l’esterno tramite tunnel. NetBird e un reverse proxy come Traefik, oppure un tunnel come Pangolin, non sono in concorrenza, perché risolvono problemi diversi e si possono usare insieme, con NetBird che tiene la rete privata e gli altri che gestiscono l’esposizione pubblica.
NetBird è l’alternativa open source più completa
L’impressione è che NetBird abbia finalmente colmato la distanza che lo separava dalla concorrenza sulla facilità di installazione. Oggi, con gli account integrati e l’installer a comando unico, tirare su il proprio server è alla portata di chiunque abbia già messo mano a un Docker Compose.
Se vuoi la cosa più indolore possibile e non ti pesa che il coordinamento giri sull’infrastruttura di qualcun altro, Tailscale rimane la scelta più riposante. Se invece l’idea di tenere l’intera mappa della tua rete sui tuoi sistemi ha importanza per te, per principio, per ragioni di privacy o altro, allora NetBird è oggi l’opzione open source più completa per ottenerlo.
Il consiglio pratico è di partire piccolo, ovvero una VM, due o tre dispositivi e la regola di accesso predefinita per capire come si muovono i pacchetti, e solo dopo passare a gruppi e policy più avanzati. Una volta che la rete è in piedi e i tunnel diretti si stabiliscono da soli, tutto il lavoro è fatto.













