WireGuard nevar izveidot savu saskarni: kodols vai atļaujas?
Saskarnes izveide neizdodas pirms pirmā partnera roku paspiešanas. Izlasiet kļūdu, lai atšķirtu trūkstošu moduli no atļauju robežas vai no jau esoša saskarnes īpašnieka.
WireGuard nespēj izveidot savu saskarni, tāpēc nav ierīces, ko konfigurēt, nav atslēgas, ko apmainīt, un nav roku paspiešanas, ko atkļūdot. Kļūme pilnībā paliek vietējā mašīnā, un kļūdas teksts pasaka, kura vietējā steķa daļa atteicās. To pareizi izlasīt ir ātrāk nekā pārinstalēt partnera konfigurāciju. Slāņus var atdalīt, un ziņojums nosauc to, kas atteicās.
Kļūda notiek pirms tam, kad kāds partners runā
Saskarnes izveide ir viens netlink pieprasījums kodolam par wireguard tipa ierīci. Kodolam vai nu ir draiveris, kas saprot šo tipu, vai nav, un atbilde nāk uzreiz. Šajā solī neviena pakete mašīnu neatstāj, tāpēc galapunktu adreses un servera atslēgas nevar būt cēlonis.
Šī secība ir svarīga diagnostikai. Ja komanda nekad nav izveidojusi ierīci, problēma nevar būt nepareiza publiskā atslēga vai bloķēts UDP ports. Vispirms izlabojiet vietējo izveides ceļu un tikai pēc tam skatieties uz āru.
Kurai implementācijai jāpieder ierīcei
Uz šo pieprasījumu var atbildēt divas implementācijas. Kodola iekšienē esošais modulis reģistrē wireguard ierīces tipu, un lietotāja telpā strādājoša implementācija, piemēram, wireguard-go, nodrošina to pašu saskarni ar citu mehānismu. Ja moduļa nav, kodols pieprasījumu noraida ar neatbalstītas ierīces kļūdu, un risinājums ir vai nu ielādēt moduli, vai novirzīt rīkus uz implementāciju lietotāja telpā.
Pirms izvēlēties starp abiem, pārbaudiet, kas patiešām ir. Pirmā komanda parāda, vai modulis ir ielādēts, un otrā jautā kodolam tieši:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
Otrā komanda ir mazākā iespējamā atveide: tā pieprasa ierīci un neko citu. Ja tā neizdodas ar ziņojumu par neatbalstītu tipu, trūkstošā daļa ir implementācija, nevis jūsu konfigurācijas fails.
| 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 |
Atļaujas un konteinera robežas
Tīkla ierīces izveidei un konfigurēšanai vajadzīgas atļaujas, vai nu kā root, vai ar tīkla administrēšanas iespēju. Parasta lietotāja sesija to nevar, un šis ierobežojums ir pati konstrukcija, nevis šķērslis, ko apiet, palaižot jūsu nepārbaudītu instalētāju.
Konteinera iekšienē robeža dubultojas. Konteineram vajadzīga piekļuve tuneļa ierīcei un iespēja to konfigurēt, un karodziņi, kas to dod, ir tie paši, ko izmanto Linux VPN konteiners. Ierobežots viesis, kas parasti var pārlūkot tīmekli, joprojām nevar izveidot saskarni, jo pārlūkošanai šāda iespēja nav vajadzīga. Dodiet iespēju pakalpojumam, kuram tā vajadzīga, nevis katrai sesijai uz resursdatora.
Atrisiniet nosaukumu konfliktu un pēc tam mēģiniet vēlreiz
Jau esoša saskarne nav automātiski pārpalikums. Cits pārvaldnieks var piederēt nosaukums un to tieši tagad lietot, tāpēc apskatiet to pirms kaut kā dzēšanas:
ip link show wg0
sudo wg show wg0
Ja īpašnieks ir aktīvs pakalpojums, konfigurējiet šo pakalpojumu, nevis veidojiet otru ierīci. Ja tā patiešām ir novecojusi, noņemiet to ar rīku, kas to izveidoja, un pēc tam paceliet saskarni ar dokumentēto klientu vai vienību, lai konfigurācija un ierīce paliktu saskaņā.
Kad izveide izdodas, nākamā kļūme pieder vēlākam posmam, un vienība, kas ziņo par kļūmi pēc tam, kad ierīce jau pastāv, ir cita problēma nekā ierīce, kas nekad netika izveidota. Atdaliet abas, pirms atkal mainīt atļaujas.