WireGuard не може да направи свој интерфејс: језгро или дозвола?
Прављење интерфејса пропада пре првог руковања са партнером. Прочитајте грешку да бисте разликовали модул који недостаје од границе дозвола или од постојећег власника интерфејса.
WireGuard не успева да направи свој интерфејс, тако да нема уређаја за конфигурисање, нема кључа за размену и нема руковања за отклањање грешака. Неуспех остаје у целини на локалном рачунару, а текст грешке каже који је део локалног стека одбио. Његово исправно читање је брже од поновне инсталације конфигурације партнера. Слојеви се могу раздвојити, а порука именује онај који је одбио.
Грешка настаје пре него што се било који партнер огласи
Прављење интерфејса је један netlink захтев језгру за уређај врсте wireguard. Језгро или има драјвер који разуме ту врсту или га нема, а одговор се враћа одмах. У овом кораку ниједан пакет не напушта рачунар, зато адресе крајњих тачака и кључеви сервера не могу бити узрок.
Тај редослед је важан за дијагностику. Ако наредба никада није направила уређај, проблем не може бити погрешан јавни кључ ни блокиран UDP порт. Прво поправите локалну путању прављења и тек онда гледајте напоље.
Која имплементација треба да поседује уређај
Две имплементације могу одговорити на тај захтев. Модул у језгру региструје врсту уређаја wireguard, а имплементација у корисничком простору попут wireguard-go пружа исти интерфејс другачијим механизмом. Ако модул недостаје, језгро одбија захтев грешком о неподржаном уређају, а решење је или учитати модул или усмерити алате на имплементацију у корисничком простору.
Проверите шта је заиста присутно пре него што изаберете између њих. Прва наредба показује да ли је модул учитан, а друга пита језгро директно:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
Друга наредба је најмања могућа репродукција: тражи уређај и ништа друго. Ако не успе с поруком о неподржаној врсти, део који недостаје је имплементација, а не ваша конфигурациона датотека.
| 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 |
Дозволе и границе контејнера
Прављење и конфигурисање мрежног уређаја захтева дозволу, било као root или са могућношћу управљања мрежом. Обична корисничка сесија то не може, и то ограничење је сам дизајн, а не препрека коју треба заобићи покретањем инсталатера који нисте прегледали.
Унутар контејнера граница се удвостручује. Контејнеру треба приступ тунелском уређају и могућност да га конфигурише, а заставице које то дају исте су као оне које користи Linux VPN контејнер. Ограничени гост који иначе може да прегледа веб и даље не може да направи интерфејс, јер прегледање не захтева такву могућност. Дајте могућност служби којој је потребна, а не свакој сесији на хосту.
Решите сукоб имена, па покушајте поново
Интерфејс који већ постоји није аутоматски остатак. Други управљач може поседовати име и користити га управо сада, зато га прегледајте пре него што било шта обришете:
ip link show wg0
sudo wg show wg0
Ако је власник активна служба, конфигуришите ту службу уместо да правите други уређај. Ако је заиста застарео, уклоните га алатом који га је направио, а затим подигните интерфејс документованим клијентом или јединицом да би конфигурација и уређај остали усклађени.
Када прављење успе, следећи неуспех припада каснијој фази, а јединица која пријави неуспех након што уређај постоји други је проблем од уређаја који никада није направљен. Раздвојите то двоје пре него што поново промените дозволе.