WireGuard ne uspijeva stvoriti svoj interfejs, pa nema uređaja za konfiguraciju, nema ključa za razmjenu i nema handshakea za otklanjanje grešaka. Kvar u potpunosti ostaje na lokalnoj mašini, a tekst greške kaže koji je dio lokalnog steka odbio zahtjev. Ispravno čitanje je brže od ponovne instalacije konfiguracije peera. Slojevi se mogu razdvojiti, a poruka imenuje onaj koji je odbio.

Greška se javlja prije nego se bilo koji peer oglasi

Stvaranje interfejsa je jedan netlink zahtjev kernelu za uređaj tipa wireguard. Kernel ili ima drajver koji razumije taj tip ili ga nema, a odgovor se vraća odmah. Nijedan paket ne napušta mašinu tokom ovog koraka, zato adrese krajnjih tačaka i serverski ključevi ne mogu biti uzrok.

Taj redoslijed je važan za dijagnostiku. Ako komanda nikada nije stvorila uređaj, problem ne može biti pogrešan javni ključ ni blokiran UDP port. Prvo popravite lokalni put stvaranja i tek onda gledajte prema van.

Koja implementacija treba posjedovati uređaj

Dvije implementacije mogu odgovoriti na taj zahtjev. Modul u kernelu registruje tip uređaja wireguard, a implementacija u korisničkom prostoru poput wireguard-go pruža isti interfejs kroz drugačiji mehanizam. Ako modul nedostaje, kernel odbija zahtjev s greškom o nepodržanom uređaju, a rješenje je ili učitati modul ili usmjeriti alate na implementaciju u korisničkom prostoru.

Provjerite šta je zaista prisutno prije nego birate između njih. Prva komanda pokazuje je li modul učitan, a druga pita kernel direktno:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

Druga komanda je najmanja moguća reprodukcija: traži uređaj i ništa drugo. Ako padne s porukom o nepodržanom tipu, dio koji nedostaje je implementacija, a ne vaša konfiguracijska datoteka.

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

Privilegije i granice kontejnera

Stvaranje i konfiguracija mrežnog uređaja zahtijeva privilegiju, bilo kao root ili s mogućnošću administracije mreže. Normalna korisnička sesija to ne može, i to ograničenje je dizajn, a ne prepreka koju treba zaobići pokretanjem instalatera koji niste pregledali.

Unutar kontejnera granica se udvostručuje. Kontejneru treba pristup tunelskom uređaju i mogućnost da ga konfiguriše, a zastavice koje to daju iste su one koje koristi Linux VPN kontejner. Ograničeni gost koji normalno može pregledavati web još uvijek ne može stvoriti interfejs, jer pregledanje ne zahtijeva takvu mogućnost. Dajte mogućnost servisu kojem treba, a ne svakoj sesiji na hostu.

Riješite sukob imena, pa pokušajte ponovo

Interfejs koji već postoji nije automatski ostatak. Drugi upravljač može posjedovati ime i koristiti ga upravo sada, zato ga pregledajte prije nego bilo šta obrišete:

ip link show wg0
sudo wg show wg0

Ako je vlasnik aktivni servis, konfigurišite taj servis umjesto da stvarate drugi uređaj. Ako je zaista zastario, uklonite ga alatom koji ga je stvorio, pa podignite interfejs dokumentovanim klijentom ili unitom kako bi konfiguracija i uređaj ostali usklađeni.

Kada stvaranje uspije, sljedeći kvar pripada kasnijoj fazi, a unit koji prijavi kvar nakon što uređaj postoji drugi je problem od uređaja koji nikada nije stvoren. Razdvojite to dvoje prije nego ponovo mijenjate dozvole.

Povezani članci