WireGuard ne može stvoriti svoje sučelje: jezgra ili dopuštenja?
Stvaranje sučelja ne uspijeva prije nego što se ijedan par javi. Pročitajte pogrešku da razlikujete modul koji nedostaje od granice ovlasti ili od postojećeg vlasnika sučelja.
WireGuard ne uspijeva stvoriti svoje sučelje, pa nema uređaja za konfiguraciju, nema ključa za razmjenu i nema rukovanja za otklanjanje pogrešaka. Kvar u cijelosti ostaje na lokalnom računalu, a tekst pogreške kaže koji je dio lokalnog sloja odbio. Ispravno ga pročitati brže je od ponovne instalacije konfiguracije para. Slojevi se mogu razdvojiti, a poruka imenuje onaj koji je odbio.
Pogreška nastaje prije nego se ijedan par oglasi
Stvaranje sučelja jedan je netlink zahtjev jezgri za uređajem vrste wireguard. Jezgra ili ima upravljački program koji razumije tu vrstu ili ga nema, a odgovor se vraća odmah. Nijedan paket ne napušta računalo tijekom ovog koraka, zato adrese krajnjih točaka i poslužiteljski ključevi ne mogu biti uzrok.
Taj je redoslijed važan za dijagnostiku. Ako naredba nikada nije stvorila uređaj, problem ne može biti pogrešan javni ključ ni blokiran UDP port. Popravite najprije lokalni put stvaranja i tek potom gledajte prema van.
Koja implementacija treba posjedovati uređaj
Dvije implementacije mogu odgovoriti na taj zahtjev. Modul u jezgri registrira vrstu uređaja wireguard, a implementacija u korisničkom prostoru poput wireguard-go pruža isto sučelje drugim mehanizmom. Ako modul nedostaje, jezgra odbija zahtjev pogreškom o nepodržanom uređaju, a rješenje je ili učitati modul ili usmjeriti alate na implementaciju u korisničkom prostoru.
Provjerite što je doista prisutno prije nego odaberete između njih. Prva naredba pokazuje je li modul učitan, a druga pita jezgru izravno:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
Druga naredba najmanja je moguća reprodukcija: traži uređaj i ništa drugo. Ako ne uspije s porukom o nepodržanoj vrsti, dio koji nedostaje jest implementacija, a ne vaša konfiguracijska datoteka.
| Error text | What refused | Next step |
|---|---|---|
| Unknown device type or operation not supported | The kernel has no wireguard driver | Load the module or use the userspace implementation |
| Operation not permitted | Missing privilege | Use the service context or grant the capability |
| File exists | The name is already in use | Inspect the owner before touching it |
| No such device in a container | No tunnel device or capability | Add the device and NET_ADMIN to the container |
Ovlasti i granice kontejnera
Stvaranje i konfiguracija mrežnog uređaja zahtijeva ovlast, bilo kao root ili s mogućnošću administriranja mreže. Uobičajena korisnička sesija to ne može, i to je ograničenje dizajn, a ne prepreka koju treba zaobići pokretanjem instalacijskog programa koji niste pregledali.
Unutar kontejnera granica se udvostručuje. Kontejneru treba pristup tunelskom uređaju i mogućnost da ga konfigurira, a zastavice koje to daju iste su kao one koje rabi Linuxov VPN kontejner. Ograničeni gost koji se inače može kretati webom još uvijek ne može stvoriti sučelje, jer kretanje webom ne treba takvu mogućnost. Dajte mogućnost službi kojoj treba, a ne svakoj sesiji na hostu.
Riješite sukob imena, pa pokušajte ponovno
Sučelje koje već postoji nije automatski ostatak. Drugi upravitelj može posjedovati ime i upotrebljavati ga upravo sada, zato ga pregledajte prije nego bilo što izbrišete:
ip link show wg0
sudo wg show wg0
Ako je vlasnik aktivna služba, konfigurirajte tu službu umjesto da stvarate drugi uređaj. Ako je doista zastarjelo, uklonite ga alatom koji ga je stvorio, pa podignite sučelje dokumentiranim klijentom ili unitom kako bi konfiguracija i uređaj ostali usklađeni.
Kad 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 ponovno promijenite dopuštenja.