No tun device in lxc guest for openvpn
Solution 1:
I'm not familiar with lxc, but try the following commands:
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
# chmod 666 /dev/net/tun
Solution 2:
The answers above don't actually work now with current versions of lxc
. Manually creating a character device with mknod
has no effect - the device is not visible inside the container. Use of the autodev
functionality in lxc
is required.
- For systems with
systemd
See LXC Config on the Arch Linux Wiki for OpenVPN in Linux Containers. - In an Alpine Linux container (without
systemd
) I use:
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 10:200 rwm
lxc.hook.autodev = sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"
The order is important - the deny
must be first.
Solution 3:
In addition to quanta's answer. Also make sure you have this line in the lxc config:
mknod /dev/net/tun c 10 200
This is the right syntax:
#tun
lxc.cgroup.devices.allow = c 10:200 rwm