WireGuard ne povas krei sian interfacon: kerno aŭ permeso?
Kreado de la interfaco malsukcesas antaŭ ol iu ajn kunulo faras manpremon. Legu la eraron por distingi mankantan modulon de privilegia limo aŭ de ekzistanta posedanto de la interfaco.
WireGuard malsukcesas krei sian interfacon, do ne estas aparato por agordi, nek ŝlosilo por interŝanĝi, nek manpremo por sencimigi. La malsukceso restas tute sur la loka maŝino, kaj la erarteksto diras, kiu parto de la loka stako rifuzis. Ĝin legi ĝuste estas pli rapide ol reinstali la agordon de la kunulo. La tavoloj estas apartigeblaj, kaj la mesaĝo nomas tiun, kiu rifuzis.
La eraro okazas antaŭ ol iu ajn kunulo parolas
Krei interfacon estas unu netlink-peto al la kerno por aparato de tipo wireguard. La kerno aŭ havas pelilon, kiu komprenas tiun tipon, aŭ ne, kaj la respondo revenas tuj. Neniu paketo forlasas la maŝinon dum ĉi tiu paŝo, kaj tial finpunktaj adresoj kaj servilaj ŝlosiloj ne povas esti la kaŭzo.
Tiu ordo gravas por diagnozo. Se la komando neniam kreis aparaton, la problemo ne povas esti malĝusta publika ŝlosilo aŭ blokita UDP-pordo. Riparu unue la lokan krean vojon kaj nur poste rigardu eksteren.
Kiu efektivigo devas posedi la aparaton
Du efektivigoj povas respondi tiun peton. La modula en la kerno registras la aparatan tipon wireguard, kaj efektivigo en uzantspaco kiel wireguard-go provizas la saman interfacon per malsama mekanismo. Se la modula mankas, la kerno rifuzas la peton per eraro pri ne subtenata aparato, kaj la solvo estas aŭ ŝargi la modulon aŭ direkti la ilojn al la efektivigo en uzantspaco.
Kontrolu, kio efektive ĉeestas antaŭ ol elekti inter ili. La unua komando montras, ĉu la modula estas ŝargita, kaj la dua demandas la kernon rekte:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
La dua komando estas la plej malgranda ebla reprodukto: ĝi petas aparaton kaj nenion alian. Se ĝi malsukcesas per mesaĝo pri ne subtenata tipo, la mankanta peco estas la efektivigo, ne via agorda dosiero.
| 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 |
Rajtoj kaj limoj de ujo
Krei kaj agordi retan aparaton postulas rajton, aŭ kiel root aŭ kun la kapablo administri la reton. Normala uzanta seanco ne povas tion fari, kaj tiu limigo estas la dezajno, ne obstaklo por ĉirkaŭiri per rulado de instalilo, kiun vi ne reviziis.
Ene de ujo la limo duobliĝas. La ujo bezonas aliron al la tunela aparato kaj la kapablon agordi ĝin, kaj la flagoj, kiuj tion donas, estas la samaj, kiujn uzas Linuxa VPN-ujo. Limigita gasto, kiu povas normale retumi, tamen ne povas krei interfacon, ĉar retumi ne bezonas tian kapablon. Donu la kapablon al la servo, kiu bezonas ĝin, ne al ĉiu seanco sur la gastiganto.
Solvu la nomkonflikton, poste provu denove
Interfaco, kiu jam ekzistas, ne estas aŭtomate restaĵo. Alia administrilo povas posedi la nomon kaj uzi ĝin ĝuste nun, do kontrolu ĝin antaŭ ol forigi ion ajn:
ip link show wg0
sudo wg show wg0
Se la posedanto estas aktiva servo, agordu tiun servon anstataŭ krei duan aparaton. Se ĝi vere estas eksdata, forigu ĝin per la ilo, kiu kreis ĝin, kaj poste levu la interfacon per la dokumentita kliento aŭ unuo, por ke la agordo kaj la aparato restu sinkronaj.
Post kiam la kreado sukcesas, la sekva malsukceso apartenas al posta etapo, kaj unuo, kiu raportas malsukceson post kiam la aparato ekzistas, estas malsama problemo ol aparato, kiu neniam estis kreita. Apartigu la du antaŭ ol denove ŝanĝi permesojn.