Como carregar o módulo tun no linux?

26

Não consigo carregar o tunmódulo na minha caixa do ArchLinux. Estou tentando conectar com o 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 o lsmod ainda não tem tun. O módulo parece existir, pois existe um tun.ko.gzin /lib/modules/.

Eu realmente não sei mais o que tentar.

rabipelais
fonte

Respostas:

27

Essa 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

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

Eu 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 tunctle o OpenVPN funcionou bem depois.

Alex Szczuczko
fonte
Tinha isso também na minha Raspberry Pi, insmod resolvido (depois de uma reinicialização posso modprobe como de costume)
unhammer
Thamks! o comando insmod funciona! Tinha isso por uma questão openconnect: Falha ao dispositivo tun aberta: Nenhum tal dispositivo
Antonio Saco
Acesso root necessário ?!
Dr.jacky
3
Não consigo encontrar / lib / modules / -iname 'tun.ko.gz' no meu Ubuntu 14.04 vps (
user3479125
1
também não pode encontrá-lo no CentOS 7.
snetch
22

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

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

$ sudo modprobe tun
FATAL: Module tun not found.

Por fim, descobri que o tun não é um módulo, mas construído no kernel, então o que faço para resolver foi criado o diretório ausente e aceno:

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

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

Note-se que posteriormente, o modprobe ainda retornará um erro, porque tun não é um módulo.

$ sudo modprobe tun
FATAL: Module tun not found.
Cyril
fonte
Obrigado, eu tive esse problema com o OpenVPN Access Server no OVH Classic VPS após fazer uma atualização dist do Debian 7 para o Debian 8. Você também pode fazer o sudo chmod 600 /dev/net/tunque foi dito neste artigo: wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachi Depois de reiniciar o openvpn com sudo service openvpnas restart, Eu poderia me conectar com um cliente. Mas quando eu reinicio o servidor Linux, / dev / net / tun não existe mais. Não sei se é normal, mas adicionei comandos ao /etc/rc.local para que ainda funcione após a reinicialização.
baptx
Obrigado. Sua solução funcionou para o meu porto do debian squeeze em execução no meu celular Android. Eu recebi o mesmo erro ao iniciar o OpenVPN.
Sourav Ghosh
sim, tunnão é um módulo.
MrRolling
isso funciona para mim thanx.
Pouya Samie
2

No Arch linux, instalar o networkmanager-vpncpacote resolverá o problema

MrRolling
fonte
0

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

alias char-major-10-200 tunode_tunnel

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

teto
fonte