WireGuard non riesce a creare la sua interfaccia, quindi non c’è alcun dispositivo da configurare, nessuna chiave da scambiare e nessuna stretta di mano da diagnosticare. Il guasto resta interamente sulla macchina locale, e il testo dell’errore dice quale parte dello stack locale ha rifiutato. Leggerlo correttamente è più rapido che reinstallare la configurazione del peer. I livelli sono separabili, e il messaggio nomina quello che ha rifiutato.

L’errore si verifica prima che qualsiasi peer parli

Creare un’interfaccia è una sola richiesta netlink al kernel che chiede un dispositivo di tipo wireguard. Il kernel ha o non ha un driver che comprende quel tipo, e la risposta torna subito. Nessun pacchetto lascia la macchina durante questo passaggio, perciò gli indirizzi degli endpoint e le chiavi del server non possono essere la causa.

Quest’ordine conta per la diagnosi. Se il comando non ha mai creato un dispositivo, il problema non può essere una chiave pubblica sbagliata né una porta UDP bloccata. Correggi prima il percorso di creazione locale e solo dopo guarda verso l’esterno.

Quale implementazione dovrebbe possedere il dispositivo

Due implementazioni possono rispondere a quella richiesta. Il modulo nel kernel registra il tipo di dispositivo wireguard, e un’implementazione nello spazio utente come wireguard-go fornisce la stessa interfaccia con un meccanismo diverso. Se il modulo manca, il kernel rifiuta la richiesta con un errore di dispositivo non supportato, e la soluzione è caricare il modulo oppure indirizzare gli strumenti all’implementazione nello spazio utente.

Verifica ciò che è realmente presente prima di scegliere tra le due. Il primo comando mostra se il modulo è caricato e il secondo interroga il kernel direttamente:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

Il secondo comando è la più piccola riproduzione possibile: chiede un dispositivo e nient’altro. Se fallisce con un messaggio di tipo non supportato, il pezzo mancante è l’implementazione e non il tuo file di configurazione.

Error textWhat refusedNext step
Unknown device type or operation not supportedThe kernel has no wireguard driverLoad the module or use the userspace implementation
Operation not permittedMissing privilegeUse the service context or grant the capability
File existsThe name is already in useInspect the owner before touching it
No such device in a containerNo tunnel device or capabilityAdd the device and NET_ADMIN to the container

Privilegi e confini del container

Creare e configurare un dispositivo di rete richiede privilegi, come root oppure con la capacità di amministrare la rete. Una normale sessione utente non può farlo, e questa restrizione è il progetto e non un ostacolo da aggirare eseguendo un programma di installazione che non hai esaminato.

Dentro un container il confine raddoppia. Il container ha bisogno dell’accesso al dispositivo tunnel e della capacità di configurarlo, e i flag che lo concedono sono gli stessi che usa un container VPN su Linux. Un ospite limitato che può navigare normalmente sul web non può comunque creare un’interfaccia, perché la navigazione non richiede quella capacità. Concedi la capacità al servizio che ne ha bisogno e non a ogni sessione dell’host.

Risolvi il conflitto di nomi, poi riprova

Un’interfaccia che esiste già non è automaticamente un residuo. Un altro gestore può possedere il nome e usarlo in questo momento, quindi ispezionala prima di cancellare qualcosa:

ip link show wg0
sudo wg show wg0

Se il proprietario è un servizio attivo, configura quel servizio invece di creare un secondo dispositivo. Se è davvero obsoleta, rimuovila tramite lo strumento che l’ha creata, poi alza l’interfaccia con il client o l’unità documentati, così che la configurazione e il dispositivo restino allineati.

Una volta riuscita la creazione, il guasto successivo appartiene a una fase successiva, e un’unità che segnala un guasto dopo che il dispositivo esiste è un problema diverso da un dispositivo che non è mai stato creato. Separa i due prima di cambiare di nuovo i permessi.

Articoli correlati