• Home
  • Releases
  • Submit Vuln
  • Press
  • About
  • PGP
  • Contact
    • Contact
    • Submit Vuln
    • VDP
  • Tutorials
    • All Posts
    • Photoshop on Linux
    • macOS on Linux
  • Supporters
  • Projects
  • Training
Sick Codes - Security Research, Hardware & Software Hacking, Consulting, Linux, IoT, Cloud, Embedded, Arch, Tweaks & Tips!
  • Home
  • Releases
  • Submit Vuln
  • Press
  • About
  • PGP
  • Contact
    • Contact
    • Submit Vuln
    • VDP
  • Tutorials
    • All Posts
    • Photoshop on Linux
    • macOS on Linux
  • Supporters
  • Projects
  • Training
No Result
View All Result
Sick Codes - Security Research, Hardware & Software Hacking, Consulting, Linux, IoT, Cloud, Embedded, Arch, Tweaks & Tips!
  • Home
  • Releases
  • Submit Vuln
  • Press
  • About
  • PGP
  • Contact
    • Contact
    • Submit Vuln
    • VDP
  • Tutorials
    • All Posts
    • Photoshop on Linux
    • macOS on Linux
  • Supporters
  • Projects
  • Training
No Result
View All Result
Sick Codes - Security Research, Hardware & Software Hacking, Consulting, Linux, IoT, Cloud, Embedded, Arch, Tweaks & Tips!
No Result
View All Result
Home Tutorials

TUN/TAP Deleted/Broken Linux: qemu-system-x86_64: could not open /dev/net/tun: Permission denied

by Sick Codes
May 18, 2020 - Updated on June 24, 2020
in Tutorials
2

Recently, playing around with my network settings, I encountered a few issues, that I have documented below for you, and how I fixed them.

qemu-system-x86_64: could not open /dev/net/tun: Permission denied

This means that your /dev/net/tun file has the incorrect permissions

The correct permissions are crw-rw-rw-

The following snippet removes the regular file, if any, and creates a Linux special file NAME of the given TYPE.

Note your current permissions and compare them with the following output:

ls -l /dev/net
# crw-rw-rw- 1 root root 10, 200 May 18 23:34 tun

If your /dev/net/tun does not look like that, run the following to recreate that special file:

sudo rm /dev/net/tun
sudo mknod /dev/net/tun c 10 200
sudo chmod 666 /dev/net/tun

# check again now
ls -l /dev/net

chmod: changing permissions of ‘/dev/net/tun’: Operation not permitted

This means you’re most like not super-user (sudo).

However, you should never see this message unless you were trying to run:

sudo chmod 666 /dev/net/tun

Once you’ve correctly re-created /dev/net/tun, you can modprobe it:

sudo modprobe tun

If you received an error here, there are other issues, possibly there is a network profile, service or card that is incompatible with your current kernel.

You should see the following:

grep CONFIG_TUN /usr/src/linux/.config
# CONFIG_TUN=m

This command will verify what’s in your kernel ring buffer:

dmesg | grep TUN
# [   12.3456] tun: Universal TUN/TAP device driver, 1.6

If you’ve passed all of the above steps, then TUN is ready, it’s just needs to be turned on!

sudo modprobe tun

modprobe: FATAL: Module tun not found in directory /lib/modules/…

This error meansy you are missing the tun.ko.xz or tun.ko.gz in your kernel modules. This can be because your current kernel is not compatible with the current version of the TUN/TAP device driver. This would generally only ever occur in Linux distros with Rolling Release models. It should never happen on a stable or long-term distro such as Ubuntu, Debian, CentOS, or RHEL.

If you received that error in a stable distro, then check if the header is there first:

find /lib/modules -iname tun\.*
# /lib/modules/5.6.13-arch1-1/build/include/config/tun.h
# /lib/modules/5.6.13-arch1-1/kernel/drivers/net/tun.ko.xz

If you see only one of the above lines when you run that command, tun was BUILT but not LOADED, try rebooting.

You can try removing any network related kernel packages you’ve installed.

Check for any added kernel modules that didn’t load.

dkms status

for any

Try simply updating or upgrading your system.
If you receive an error when you run sudo modprobe tun:,

modprobe: FATAL: Module tun not found in directory /lib/modules/5.6.11-arch1-1

Always reboot after installing or updating kernel modules, or the Linux kernel itself.

After rebooting (if you failed the above command) you can see if it’s installed now:

find /lib/modules | grep tun\.ko\..z | xargs sudo insmod
# insmod: ERROR: could not insert module /lib/modules/5.6.13-arch1-1/kernel/drivers/net/tun.ko.xz: File exists

That mean’s it’s installed and loaded.

sudo modprobe tun

Leave a comment if you need help, I usually respond within the day 🙂

Next Post

How To Install Kubernetes on CentOS 8 (Easy Way) + Docker.

How To Install QEMU on CentOS 8

Docker: Install NodeJS and Yarn in Ubuntu 18.04

Comments 2

  1. Graham says:
    4 years ago

    Hi, I am using a Firefly ROC-RK3328-CC Single Board Computer with the Chinese manufacturer’s ubuntu 18.04 installed. I have done all updates/upgrades and mostly it is working (I seem to have some touchpad packages not being upgraded due to dependency issues… but I don’t need them). However, I am wanting to run this as an OpenVPN client and I have the ‘FATAL’ error “modprobe: FATAL: Module tun not found in directory /lib/modules/…” and then I “find /lib/modules -iname tun.*” without any results. Are you able to help me find how to install this driver?

    Reply
  2. Pingback: How To Install macOS Virtual Machine on Linux/Arch/Manjaro - Catalina, Mojave, or High Sierra! XCode working! - Sick Codes - Linux, NetSec, VPS, Arch, Debian, CentOS Tweaks & Tips!

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

No Result
View All Result
  • Home
  • Releases
  • Submit Vuln
  • Press
  • About
  • PGP
  • Contact
    • Contact
    • Submit Vuln
    • VDP
  • Tutorials
    • All Posts
    • Photoshop on Linux
    • macOS on Linux
  • Supporters
  • Projects
  • Training

© 2017-2021 Sick.Codes

@sickcodes

@sickcodes

@sickcodes

Discord Server

sickcodes.slack.com

t.me/sickcodeschat

./contact_form