26

I cannot manage to load the tun module in my ArchLinux box. I’m trying to connect with OpenVPN, but the log says:

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

lsmod | grep tun

Returns nothing:

If I run:

sudo modprobe tun

It returns failure, but no error message, and lsmod still has no tun. The module seems to exist, as there is a tun.ko.gz in /lib/modules/.

I really dont know what else to try.

27

This answer is probably a bit late, but I ran into the problem, exactly as described, myself.

Running OpenVPN would produce:

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

And running tunctl would produce:

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

And this command had no output:

lsmod | grep tun

When attempting to add the tun module via:

modprobe tun

modprobe would exit with a failure error code (1), and nothing changed.

I found an alternate way of activating the tun module via insmod. First locate the module with this command:

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

Then use insmod with the returned path (I only got one match), for example:

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

For me, running that command worked, and tunctl and OpenVPN worked okay afterwards.

  • Had this too on my raspberry pi, insmod solved it (after a reboot I can modprobe as usual) – unhammer Jul 5 '13 at 8:05
  • Thamks! the insmod command works! Had this for an openconnect issue: Failed to open tun device: No such device – Antonio Saco May 9 '14 at 20:05
  • Root access needed?! – Dr.jacky Dec 16 '15 at 6:59
  • 3
    can't find /lib/modules/ -iname 'tun.ko.gz' on my Ubuntu 14.04 vps ( – user3479125 Mar 29 '16 at 23:37
  • 1
    can't find it on CentOS 7 either. – snetch May 18 '16 at 17:39
22

I ran into a similar problem when trying to run openvpn on OVH Cloud VPS, openvpn complains that cannot find TUN interface.

modprobe will always return module not found :

$ sudo modprobe tun
FATAL: Module tun not found.

Finally, I found that tun is not a module but built in kernel, so what I do to solve was created the missing dir and nod:

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

And then openvpn can find and use the tun device.

To be noted that afterward, modprobe will still return an error, because tun is not a module.

$ sudo modprobe tun
FATAL: Module tun not found.
  • Thanks, I got this problem with OpenVPN Access Server on OVH Classic VPS after doing a dist-upgrade from Debian 7 to Debian 8. You can also do sudo chmod 600 /dev/net/tun like said in this article: wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachi After restarting openvpn with sudo service openvpnas restart, I could connect with a client. But when I restart the Linux server, /dev/net/tun does not exist anymore. I don't know if it's normal but I added commands to /etc/rc.local so it will still work after reboot. – baptx Jun 28 '15 at 16:34
  • Thanks. Your solution worked for my armbi port of debian squeeze running on my android mobile. I got the same error while starting OpenVPN. – Sourav Ghosh May 12 '17 at 21:13
  • yes, tun is not a module. – MrRolling Jan 24 '18 at 4:00
  • thas works for me thanx. – Pouya Samie May 12 '18 at 19:36
2

In Arch linux installing the networkmanager-vpnc package will solve the problem

0

I had a problem where my /lib/modules/.../modules.alias did not contain the line

alias char-major-10-200 tunode_tunnel

So even if you've done mknod /dev/net/tun and have tun.ko somewhere in /lib/modules/..., it won't load unless modules.alias has the right incantation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.