Como carregar o módulo tun no Linux?

Como carregar o módulo tun no Linux?

Não consigo carregar o tunmódulo na minha caixa ArchLinux. Estou tentando me conectar ao OpenVPN, mas o log diz:

nm-openvpn[6662]: Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

lsmod | grep tun

Não retorna nada:

Se eu correr:

sudo modprobe tun

Ele retorna falha, mas nenhuma mensagem de erro, e lsmod ainda não possui nenhum arquivo tun. O módulo parece existir, pois existe um tun.ko.gzarquivo in /lib/modules/.

Eu realmente não sei mais o que tentar.

Responder1

Esta resposta provavelmente está um pouco atrasada, mas eu mesmo encontrei o problema, exatamente como descrito.

A execução do OpenVPN produziria:

Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

E correr tunctlproduziria:

Failed to open '/dev/net/tun' : No such file or directory

E este comando não teve saída:

lsmod | grep tun

Ao tentar adicionar o tunmódulo via:

modprobe tun

modprobesairia com um código de erro de falha (1) e nada mudou.

Encontrei uma maneira alternativa de ativar o módulo tun via insmod. Primeiro localize o módulo com este comando:

find /lib/modules/ -iname 'tun.ko.gz'

Em seguida, use insmod com o caminho retornado (só consegui uma correspondência), por exemplo:

insmod /lib/modules/3.6.9-1-ARCH/kernel/drivers/net/tun.ko.gz

Para mim, executar esse comando funcionou e tunctlo OpenVPN funcionou bem depois.

Responder2

Encontrei um problema semelhante ao tentar executar o openvpn no OVH Cloud VPS, o openvpn reclama que não consegue encontrar a interface TUN.

modprobe sempre retornará módulo não encontrado:

$ sudo modprobe tun
FATAL: Module tun not found.

Finalmente, descobri que tun não é um módulo, mas sim construído no kernel, então o que fiz para resolver foi criar o diretório que faltava e acenar:

$ sudo mkdir /dev/net
$ sudo mknod /dev/net/tun c 10 200

E então o openvpn pode encontrar e usar o dispositivo tun.

Observe que depois disso, modprobe ainda retornará um erro, porque tun não é um módulo.

$ sudo modprobe tun
FATAL: Module tun not found.

Responder3

No Arch linux instalar o pacote networkmanager-vpncou NetworkManager-vpncresolverá o problema

Responder4

Eu tive um problema onde meu /lib/modules/.../modules.aliasnão continha a linha

alias char-major-10-200 tunode_tunnel

Portanto, mesmo que você tenha feito isso mknod /dev/net/tune tenha tun.koalgum lugar em /lib/modules/..., ele não será carregado a menos que modules.aliastenha o encantamento correto.

informação relacionada