OpenVPN的LXC Guest虚拟机中没有Tun设备


17

我正在尝试在lxc guest虚拟机内设置openvpn服务器。但是,它缝接了容器中没有可用的调谐设备。

在容器内启动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设备,但modprobe tun给了我另一个错误:

FATAL: Could not load /lib/modules/3.2.0-30-generic/modules.dep: No such file or directory

我假设我的容器中缺少某些权限或其他内容。有人可以告诉我这是什么吗?


是否/dev/net存在?
量子

不,/ dev / net也不存在。
劳伦斯

Answers:


17

我不熟悉lxc,但是尝试以下命令:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun

3
并在lxc配置中执行以下行:lxc.cgroup.devices.allow = c 10:200 rwm
apagr 2013年

@apagr在Ubuntu 14.04上不再
可用

1
与proxmox 4.3上的lxc交钥匙openvpn一起使用
嵌入式

6

上面的答案实际上不适用于当前版本的lxc。手动创建字符设备mknod无效-该设备在容器内部不可见。需要使用中的autodev功能lxc

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必须首先。


3

除了量子的答案。另外,请确保在lxc配置中包含以下行:

mknod / dev / net / tun c 10 200

这是正确的语法:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.