WireGuard nuk mund të krijojë ndërfaqen e vet: kernel apo leje?
Krijimi i ndërfaqes dështon përpara se çdo partner të dërgojë një shtrëngim duarsh. Lexoni gabimin për të dalluar një modul që mungon nga një kufi privilegjesh ose nga një pronar ekzistues i ndërfaqes.
WireGuard nuk arrin të krijojë ndërfaqen e vet, prandaj nuk ka pajisje për të konfiguruar, as çelës për të shkëmbyer dhe as shtrëngim duarsh për të debuguar. Dështimi mbetet tërësisht në makinën lokale, dhe teksti i gabimit thotë cila pjesë e stivës lokale refuzoi. Leximi i saktë i tij është më i shpejtë se riinstalimi i konfigurimit të partnerit. Shtresat mund të ndahen, dhe mesazhi emërton atë që refuzoi.
Gabimi ndodh përpara se të flasë ndonjë partner
Krijimi i një ndërfaqeje është një kërkesë e vetme netlink drejtuar kernelit për një pajisje të tipit wireguard. Kernelit ose i ka drejtuesi që e kupton atë tip ose nuk e ka, dhe përgjigjja kthehet menjëherë. Në këtë hap asnjë paketë nuk largohet nga makina, prandaj adresat e pikave fundore dhe çelësat e serverit nuk mund të jenë shkaku.
Ky rend ka rëndësi për diagnozën. Nëse komanda nuk krijoi kurrë një pajisje, problemi nuk mund të jetë një çelës publik i gabuar ose një port UDP i bllokuar. Rregulloni së pari rrugën lokale të krijimit dhe vetëm pastaj shikoni nga jashtë.
Cila implementim duhet ta zotërojë pajisjen
Dy implementime mund t'i përgjigjen asaj kërkese. Moduli brenda kernelit regjistron tipin e pajisjes wireguard, dhe një implementim në hapësirën e përdoruesit si wireguard-go ofron të njëjtën ndërfaqe përmes një mekanizmi tjetër. Nëse moduli mungon, kernelit e refuzon kërkesën me një gabim pajisjeje të pambështetur, dhe zgjidhja është ose të ngarkohet moduli ose t'i drejtohen mjetet implementimit në hapësirën e përdoruesit.
Kontrolloni çfarë është me të vërtetë e pranishme përpara se të zgjidhni midis tyre. Komanda e parë tregon nëse moduli është i ngarkuar dhe e dyta e pyet kernelin drejtpërdrejt:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
Komanda e dytë është riprodhimi më i vogël i mundshëm: kërkon një pajisje dhe asgjë tjetër. Nëse dështon me një mesazh për tip të pambështetur, pjesa që mungon është implementimi dhe jo skedari juaj i konfigurimit.
| 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 |
Privilegjet dhe kufijtë e kontejnerit
Krijimi dhe konfigurimi i një pajisjeje rrjeti kërkon privilegj, ose si root ose me aftësinë për të administruar rrjetin. Një sesion normal përdoruesi nuk mund ta bëjë këtë, dhe ky kufizim është vetë dizajni dhe jo një pengesë për t'u anashkaluar duke ekzekutuar një instalues që nuk e keni shqyrtuar.
Brenda një kontejneri kufiri dyfishohet. Kontejneri ka nevojë për akses në pajisjen e tunelit dhe aftësinë për ta konfiguruar, dhe flamujt që e japin këtë janë të njëjtë me ata që përdor një kontejner VPN në Linux. Një mysafir i kufizuar që normalisht mund të shfletojë web-in ende nuk mund të krijojë një ndërfaqe, sepse shfletimi nuk kërkon një aftësi të tillë. Jepeni aftësinë shërbimit që ka nevojë për të dhe jo çdo sesioni në host.
Zgjidhni konfliktin e emrit dhe pastaj provoni përsëri
Një ndërfaqe që ekziston tashmë nuk është automatikisht mbetje. Një menaxher tjetër mund ta ketë emrin dhe ta përdorë pikërisht tani, prandaj inspektojeni përpara se të fshini ndonjë gjë:
ip link show wg0
sudo wg show wg0
Nëse pronari është një shërbim aktiv, konfiguroni atë shërbim në vend të krijimit të një pajisjeje të dytë. Nëse është me të vërtetë i vjetëruar, hiqeni përmes mjetit që e krijoi, dhe pastaj ngrini ndërfaqen me klientin ose njësinë e dokumentuar që konfigurimi dhe pajisja të mbeten në hap.
Sapo krijimi të ketë sukses, dështimi tjetër i takon një faze më të vonë, dhe një njësi që raporton dështim pasi pajisja ekziston është një problem tjetër nga një pajisje që nuk u krijua kurrë. Ndajini të dyja përpara se të ndryshoni përsëri lejet.