我正在尝试在lxc客户机中设置openvpn服务器。然而,它接缝在容器中没有可用的tun设备。
在容器内启动openvpn会给出以下错误:
Tue Sep 18 13:04:18 2012 Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Tue Sep 18 13:04:18 2012 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Sep 18 13:04:18 2012 /sbin/ifconfig 10.6.0.1 pointopoint 10.6.0.2 mtu 1500
SIOCSIFADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFDSTADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFMTU: No such device
Tue Sep 18 13:04:18 2012 Linux ifconfig failed: external program exited with error status: 1
Tue Sep 18 13:04:18 2012 Exiting在我的容器配置中,我看到以下内容:
#tun
lxc.cgroup.devices.allow = c 10:200 rwm我假设为容器启用了tun设备,但mod探测tun给出了另一个错误:
FATAL: Could not load /lib/modules/3.2.0-30-generic/modules.dep: No such file or directory我想我在我的容器里遗漏了一些许可或什么东西。谁能告诉我这是什么吗?
发布于 2012-09-18 13:28:59
我不熟悉lxc,但是尝试以下命令:
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
# chmod 666 /dev/net/tun发布于 2016-01-01 12:39:23
上面的答案现在并不适用于当前版本的lxc。使用mknod手动创建字符设备没有任何效果--容器中看不到该设备。需要在autodev中使用lxc功能。
systemd的系统,请参见用于Linux容器中的OpenVPN的Arch Wiki上的LXC:lxc.mount.entry = /dev/net dev/net none bind,create=dir
lxc.cgroup2.devices.allow = c 10:200 rwm
systemd)中,我使用: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"
顺序很重要-- deny必须是第一位的。
发布于 2013-05-20 09:10:27
除了量子的回答。还要确保在lxc配置中有这一行:
mknod /dev/net/tun c 10 200
这是正确的语法:
#tun
lxc.cgroup.devices.allow = c 10:200 rwmhttps://serverfault.com/questions/429461
复制相似问题