WireGuard nedokáže vytvoriť svoje rozhranie: jadro alebo oprávnenia?
Vytvorenie rozhrania zlyhá ešte pred prvým podaním ruky s protistranou. Prečítajte si chybu, aby ste odlíšili chýbajúci modul od hranice oprávnení alebo od existujúceho vlastníka rozhrania.
WireGuard nedokáže vytvoriť svoje rozhranie, takže neexistuje zariadenie na konfiguráciu, kľúč na výmenu ani podanie ruky na ladenie. Zlyhanie zostáva celé na lokálnom stroji a text chyby hovorí, ktorá časť lokálneho zásobníka odmietla. Prečítať ho správne je rýchlejšie než preinštalovať konfiguráciu protistrany. Vrstvy možno oddeliť a správa pomenúva tú, ktorá odmietla.
Chyba nastane skôr, než ktorákoľvek protistrana prehovorí
Vytvorenie rozhrania je jedna požiadavka netlink na jadro o zariadenie typu wireguard. Jadro buď má ovládač, ktorý tomu typu rozumie, alebo ho nemá, a odpoveď prichádza okamžite. V tomto kroku neopúšťa stroj žiadny paket, a preto adresy koncových bodov a kľúče servera nemôžu byť príčinou.
Toto poradie je dôležité pri diagnostike. Ak príkaz nikdy nevytvoril zariadenie, problémom nemôže byť nesprávny verejný kľúč ani zablokovaný port UDP. Najprv opravte lokálnu cestu vytvárania a až potom sa pozerajte von.
Ktorá implementácia má zariadenie vlastniť
Na túto požiadavku môžu odpovedať dve implementácie. Modul v jadre registruje typ zariadenia wireguard a implementácia v používateľskom priestore, napríklad wireguard-go, poskytuje to isté rozhranie iným mechanizmom. Ak modul chýba, jadro požiadavku odmietne chybou o nepodporovanom zariadení a riešením je buď modul načítať, alebo nasmerovať nástroje na implementáciu v používateľskom priestore.
Skôr než si vyberiete, skontrolujte, čo je skutočne prítomné. Prvý príkaz ukáže, či je modul načítaný, a druhý sa pýta jadra priamo:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
Druhý príkaz je najmenšia možná reprodukcia: žiada zariadenie a nič iné. Ak zlyhá so správou o nepodporovanom type, chýbajúcou časťou je implementácia, nie váš konfiguračný súbor.
| 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 |
Oprávnenia a hranice kontajnera
Vytvorenie a konfigurácia sieťového zariadenia vyžaduje oprávnenie, buď ako root, alebo s možnosťou spravovať sieť. Bežná používateľská relácia to nedokáže a toto obmedzenie je zámer, nie prekážka, ktorú treba obchádzať spustením inštalátora, ktorý ste neprešli.
Vnútri kontajnera sa hranica zdvojnásobuje. Kontajner potrebuje prístup k tunelovému zariadeniu a možnosť ho konfigurovať a príznaky, ktoré to dávajú, sú rovnaké ako tie, ktoré používa kontajner VPN na Linuxe. Obmedzený hosť, ktorý bežne vie prehliadať web, stále nedokáže vytvoriť rozhranie, pretože prehliadanie takú možnosť nepotrebuje. Dajte možnosť službe, ktorá ju potrebuje, a nie každej relácii na hostiteľovi.
Vyriešte konflikt názvov a skúste to znova
Rozhranie, ktoré už existuje, nie je automaticky zvyšok. Názov môže vlastniť iný správca a práve ho používať, preto ho pred akýmkoľvek mazaním preskúmajte:
ip link show wg0
sudo wg show wg0
Ak je vlastníkom aktívna služba, nakonfigurujte túto službu namiesto vytvárania druhého zariadenia. Ak je naozaj zastarané, odstráňte ho nástrojom, ktorý ho vytvoril, a potom zdvihnite rozhranie zdokumentovaným klientom alebo jednotkou, aby konfigurácia a zariadenie zostali v súlade.
Keď sa vytvorenie podarí, ďalšie zlyhanie patrí k neskoršej fáze, a jednotka, ktorá hlási zlyhanie po tom, čo zariadenie existuje, je iný problém než zariadenie, ktoré nikdy nevzniklo. Oddelte obe, skôr než znova zmeníte oprávnenia.