如何在LXD管理的LXC容器中允许/ dev / net / Tun?

我试图让Openvpn在LXD / LXC容器内运行,并将流量容器的流量重定向到VPN。

目的是取代完全成熟的VM(和玩具LXD 🙂

我设法从我的主DHCP服务器获取IP,设置iptables规则以伪装/转发流量,但是当我尝试启动openvpn时,它被缺少(访问)/ dev / net / tun设备阻止。

我在ServerFault https://serverfault.com/questions/429461/no-tun-device-in-lxc-guest-for-openvpn上发表了这篇文章,但它似乎不适用于当前版本的LXC和/或LXD管理配置……

编辑:我尝试使用这个咒语,但它没有成功:

lxc config set mycontainer raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm' 

EDIT2:试过lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200但是在下一站/开始时,我得到了

错误:配置设备tun失败:未实现

现在我甚至不能lxc config device remove mycontainer tun因为它抛出相同的未实现的错误。 容器似乎丢失了……

你要:

 lxc config device add CONTAINER tun unix-char path=/dev/net/tun 

在一个没有特权的容器里,我也在努力做到这一点。 我最终做的是

 mknod /path/to/your/container/root/tun c 10 200 chown 100000:100000 /path/to/your/container/root/tun 

然后在容器内

 mkdir /dev/net ln -s /root/tun /dev/net/tun 

这意味着我不必对lxc conf进行任何更改

在启动容器之前,需要在主机上创建tun设备: sudo mknod /path/to/your/container/dev/net/tun c 10 200