WireGuard non pode crear a súa interface: núcleo ou permisos?
A creación da interface falla antes de que ningún par envíe un saúdo. Lea o erro para distinguir un módulo ausente dun límite de privilexios ou dun propietario existente da interface.
WireGuard non logra crear a súa interface, así que non hai dispositivo que configurar, nin chave que intercambiar, nin saúdo que depurar. O fallo queda por completo na máquina local, e o texto do erro di que parte da pila local o rexeitou. Leelo correctamente é máis rápido que reinstalar a configuración do par. As capas pódense separar, e a mensaxe nomea a que rexeitou.
O erro ocorre antes de que fale calquera par
Crear unha interface é unha soa petición netlink ao núcleo que pide un dispositivo de tipo wireguard. O núcleo ou ten un controlador que entende ese tipo ou non o ten, e a resposta volve de inmediato. Ningún paquete sae da máquina durante este paso, e por iso os enderezos dos extremos e as chaves do servidor non poden ser a causa.
Esa orde importa para o diagnóstico. Se o comando nunca creou un dispositivo, o problema non pode ser unha chave pública equivocada nin un porto UDP bloqueado. Arranxe primeiro a ruta local de creación e só despois mire cara a fóra.
Que implementación debe posuír o dispositivo
Dúas implementacións poden responder a esa petición. O módulo dentro do núcleo rexistra o tipo de dispositivo wireguard, e unha implementación en espazo de usuario como wireguard-go ofrece a mesma interface mediante un mecanismo distinto. Se o módulo falta, o núcleo rexeita a petición cun erro de dispositivo non compatible, e a solución é ou cargar o módulo ou apuntar as ferramentas á implementación en espazo de usuario.
Comprobe que hai realmente antes de escoller entre ambas. O primeiro comando mostra se o módulo está cargado e o segundo pregunta ao núcleo directamente:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
O segundo comando é a reprodución máis pequena posible: pide un dispositivo e nada máis. Se falla cunha mensaxe de tipo non compatible, a peza que falta é a implementación e non o seu ficheiro de configuración.
| 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 |
Privilexios e límites do contedor
Crear e configurar un dispositivo de rede require privilexios, xa sexa como root ou coa capacidade de administrar a rede. Unha sesión de usuario normal non pode facelo, e esa restrición é o deseño e non un obstáculo que se deba esquivar executando un instalador que non revisou.
Dentro dun contedor o límite duplícase. O contedor necesita acceso ao dispositivo de túnel e a capacidade de configuralo, e os indicadores que o conceden son os mesmos que usa un contedor de VPN en Linux. Un convidado restrinxido que pode navegar pola web con normalidade segue sen poder crear unha interface, porque navegar non necesita esa capacidade. Conceda a capacidade ao servizo que a necesita e non a cada sesión do anfitrión.
Resolva o conflito de nomes e volva tentalo
Unha interface que xa existe non é automaticamente un resto. Outro xestor pode posuír o nome e estar usándoo agora mesmo, así que inspecciónea antes de borrar calquera cousa:
ip link show wg0
sudo wg show wg0
Se o propietario é un servizo activo, configure ese servizo en lugar de crear un segundo dispositivo. Se de verdade está obsoleta, elimínea coa ferramenta que a creou e despois levante a interface co cliente ou a unidade documentados, para que a configuración e o dispositivo sigan sincronizados.
Unha vez que a creación ten éxito, o seguinte fallo pertence a unha etapa posterior, e unha unidade que informa dun fallo despois de que o dispositivo exista é un problema distinto do dun dispositivo que nunca se creou. Separe ambos antes de volver cambiar permisos.