WireGuard su macOS: le due installazioni e il nome di interfaccia che manda in errore i tutorial Linux

L'app del Mac App Store e brew install wireguard-tools non sono lo stesso prodotto. Quale scegliere, come importare un .conf e perché wg0 fallisce su macOS mentre utun funziona.

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

Aggiornato 6 min lettura6 min

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

Vedi i passaggi di installazioneGenera la mia config

fig. 01 / self-host-vpnencrypted tunnelUDP 51820DEVICE10.8.0.2SERVER10.8.0.1INTERNETNATAllowedIPs = 0.0.0.0/0, ::/0ListenPort = 51820 (server)
fig. 01 / self-host-vpn

Installare WireGuard su un Mac sembra banale, finché il tutorial che stai seguendo non era scritto per Linux. Due cose fanno inciampare: esistono due prodotti WireGuard diversi per macOS, e il nome di interfaccia che tutti usano negli esempi, wg0, non può esistere su un Mac.

Non hai ancora una configurazione da importare? Il nostro generatore di configurazione WireGuard gratuito crea nel browser il file del server e quello del client Mac, pronto da importare come .conf; le chiavi sono generate in locale e nulla viene inviato a un server. Il generatore è gratuito e senza account, fino a 250 dispositivi, e la sua esportazione ZIP raccoglie ogni .conf client e il suo codice QR in PNG, comodo per configurare un intero ufficio o una famiglia in una volta.

Genera qui le tue configurazioni WireGuard

Inserisci l'indirizzo del server, scegli il numero di dispositivi, poi scansiona ogni codice QR dall'app.

Tutte le chiavi vengono generate nel tuo browser (Curve25519 / X25519). Niente viene inviato ai nostri server - la tua configurazione resta privata al 100%.

IPv4 pubblico o dominio della macchina che eseguirà WireGuard. Nessun server per ora? Lascia vuoto e aggiungilo dopo.

Gratis, senza account: fino a 250 client, ogni .conf con il suo codice QR, e uno ZIP con tutti i file.

Tutto ciò che il dispositivo invia a internet passa dal tuo server.

Impostazioni avanzateSubnet del tunnel, DNS, reti site-to-site. I valori predefiniti vanno bene nella maggior parte dei casi.

Facoltativo. Indica la subnet LAN dietro il server e/o dietro un client che fa da gateway di sede (un router, un Raspberry Pi, un NAS). Il generatore aggiunge ogni LAN agli AllowedIPs del server, dà a ogni peer le rotte verso le altre LAN e scrive le regole di inoltro sui gateway. Lascia vuoto un campo per un client normale.

Cosa scarichi

  • wg0.conf

    per il server

  • client1.conf

    uno per dispositivo

  • QR (esempio)

    per l'app mobile

Anteprima illustrativa: righe e QR fittizi, nessuna chiave reale. I tuoi file veri vengono generati nel tuo browser al clic.

Non hai ancora un server? Il client Mac ha bisogno di un server WireGuard a cui collegarsi; un VPS Cloud Contabo (link di affiliazione) ne fa girare uno con un proprio IPv4 pubblico, da 5,50 € al mese con durata di 24 mesi (prezzo letto il 17 ottobre 2026). 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 WireGuard con pochi dispositivi. Provider ancora da scegliere? Confronti: miglior VPS per una VPN e Contabo vs Hetzner vs OVH, al prezzo realmente fatturato. Un'altra opzione: HostPapa Unmanaged VPS Lite (link affiliato) a 2,95 $ al mese con un impegno di 3 anni, poi a tariffa normale (1 core, 1 GB di RAM, 25 GB NVMe, accesso root via SSH, rimborso entro 30 giorni, rilevato il 28 ottobre 2026).

Le due installazioni, secondo la pagina ufficiale

La pagina di installazione di WireGuard le elenca entrambe, e sono software realmente distinti:

L'app del Mac App Store. Un client grafico con voce nella barra dei menu, importazione dei tunnel e attivazione su richiesta. È ciò che vuole la maggior parte delle persone.

Gli strumenti da riga di comando.

brew install wireguard-tools
# oppure, con MacPorts
port install wireguard-tools

Ottieni wg e wg-quick, gli stessi comandi che usi su un server. Sotto gira l'implementazione Go in spazio utente invece di un modulo del kernel, perché macOS non ha WireGuard nel kernel.

Non condividono l'elenco dei tunnel. Un tunnel importato nell'app non comparirà in wg show, e viceversa. Scegline uno per macchina, salvo un motivo preciso per averli entrambi.

Primo piano di uno schermo di terminale che mostra un elenco di directory Unix in verde e blu
Primo piano di uno schermo di terminale che mostra un elenco di directory Unix in verde e blu

Ciò che manda in errore i tutorial Linux: qui wg0 non esiste

È il fallimento più comune, e il messaggio di errore quasi mai lo spiega.

Su Linux crei wg0 e prosegui. Su macOS i tunnel passano dal driver utun, e la documentazione multipiattaforma di WireGuard enuncia il vincolo senza ambiguità: il driver utun non può avere nomi di interfaccia arbitrari. Bisogna usare utun seguito da un numero, per esempio utun0, oppure solo utun per lasciare scegliere al kernel.

# fallisce su macOS
sudo wg-quick up wg0

# funziona
sudo wg-quick up utun

Se hai copiato una guida che dice wg0, rinomina il file di configurazione e ogni comando che lo richiama. Chiavi, AllowedIPs, Endpoint e DNS non sono toccati: solo il nome dell'interfaccia dipende dalla piattaforma.

Sapere quale utun ti è toccato. Se lasci scegliere al kernel, ti serve un modo per conoscere il risultato. Imposta WG_TUN_NAME_FILE prima di alzare il tunnel e il nome scelto viene scritto lì:

export WG_TUN_NAME_FILE=/tmp/wg-name
sudo -E wg-quick up utun
cat /tmp/wg-name    # per esempio utun4

Altrimenti leggi l'output di ifconfig indovinando quale utun sia il tuo: accettabile una volta, noioso in uno script.

Importare una configurazione che hai già

Se hai generato una configurazione client sul tuo server, si trasferisce così com'è. Nell'app usa l'opzione di importazione e seleziona il file .conf: il tunnel compare nell'elenco, pronto da attivare. Da riga di comando, mettilo in /opt/homebrew/etc/wireguard/utun.conf (Apple Silicon) o /usr/local/etc/wireguard/utun.conf (Intel), dando al file il nome dell'interfaccia, poi lancia wg-quick up utun.

Una configurazione generata per un telefono funziona anche su un Mac. È una definizione di peer, non un artefatto legato al dispositivo, a patto che ogni dispositivo abbia la propria coppia di chiavi e non una condivisa.

Verificare che funzioni davvero

Alza il tunnel, poi conferma due cose invece di darle per scontate.

sudo wg show

Un peer in salute mostra un latest handshake di meno di due minuti e contatori transfer diversi da zero in entrambe le direzioni. Inviato ma nulla ricevuto è la firma di un percorso di ritorno bloccato. Se l'handshake non si completa mai, la nostra guida alla risoluzione dei problemi di handshake percorre le cause in ordine di probabilità.

Poi conferma che il traffico passi davvero dal tunnel, e non solo che l'interfaccia esista: controlla il tuo IP pubblico dal browser e, se instradi il DNS nel tunnel, verifica che non ci siano fughe. La nostra nota sulle fughe DNS in WireGuard copre le impostazioni che contano.

Per avere l'essenziale a portata di mano: la WireGuard Cheat Sheet gratuita (PDF di 5 pagine in inglese, download diretto, senza registrazione) raccoglie le tabelle di keepalive e MTU, i comandi wg genkey/wg pubkey/wg genpsk e i quattro controlli del server in una riga da lanciare per primi quando un tunnel non fa passare traffico. Il WireGuard Self-Hosting Kit a pagamento (9 USD, in inglese) aggiunge una checklist di diagnosi con 12 cause e 11 modelli di configurazione.

Una VPN cambia il tuo IP. Non cambia il tuo browser.

Un tunnel sostituisce l'indirizzo che un servizio vede. Non cambia nulla di ciò che il tuo browser dichiara da solo - caratteri, schermo, fuso orario, stack grafico - e quella combinazione basta spesso a riconoscerti da una sessione all'altra.

Misura la tua impronta del browser - misurazione passiva, senza domande, senza account, senza email.

In breve

Due prodotti: l'app dell'App Store per un client grafico, wireguard-tools via Homebrew o MacPorts per la stessa riga di comando del tuo server. Non condividono i tunnel. E su macOS l'interfaccia deve chiamarsi utun o utunN, mai wg0, perché il driver utun non accetta nomi arbitrari. Quella sola riga spiega la maggior parte delle installazioni Mac fallite copiando guide Linux.

Link di affiliazione

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

Domande frequenti

Come si installa WireGuard su macOS?
La pagina ufficiale di installazione elenca due strade. L'applicazione grafica arriva dal Mac App Store. Gli strumenti da riga di comando arrivano da un gestore di pacchetti: `brew install wireguard-tools` con Homebrew, oppure `port install wireguard-tools` con MacPorts. Non sono lo stesso prodotto e non condividono l'elenco dei tunnel: scegline uno e restaci, a meno che tu non voglia espressamente entrambi.
Perché wg0 non funziona su macOS?
Perché macOS non ha un modulo WireGuard nel kernel: i tunnel passano dall'implementazione in spazio utente, sul driver utun, e quel driver non accetta nomi di interfaccia arbitrari. La documentazione multipiattaforma di WireGuard è esplicita: bisogna usare utun seguito da un numero, oppure solo utun per lasciare che sia il kernel a sceglierne uno. Un tutorial Linux che ti dice di creare wg0 fallirà quindi su un Mac, e il messaggio di errore raramente spiega perché.
Come faccio a sapere quale interfaccia utun ha scelto il kernel?
Imposta la variabile d'ambiente WG_TUN_NAME_FILE prima di alzare il tunnel. Quando il nome dell'interfaccia resta utun, il nome effettivamente scelto dal kernel viene scritto nel file che hai indicato. Senza, ti tocca leggere l'output di `ifconfig` e indovinare quale utun sia il tuo.
App dell'App Store o strumenti Homebrew?
L'applicazione se vuoi un'esperienza macOS normale: interruttore nella barra dei menu, importazione dei tunnel per trascinamento, attivazione su richiesta. I wireguard-tools se scrivi script, amministri la macchina via SSH o vuoi gli stessi comandi wg e wg-quick del tuo server. L'app è in sandbox e si aggiorna dall'App Store; la riga di comando dal tuo gestore di pacchetti.
Posso riutilizzare il .conf del mio server Linux?
Sì, lato client. Una configurazione di peer è testo semplice e quindi portabile: i blocchi [Interface] e [Peer] generati per un portatile funzionano così come sono. L'unica cosa che non si trasferisce è il nome dell'interfaccia: rinominalo in utun o utunN se il file o i tuoi comandi citano wg0. Chiavi, AllowedIPs, Endpoint e DNS passano invariati.