<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, May 30, 2016 at 12:05 AM, Joshua Schaeffer <span dir="ltr"><<a href="mailto:jschaeffer0922@gmail.com" target="_blank">jschaeffer0922@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">I'm trying to setup OpenVPN in an unprivileged container. The host and container are both Debian Jessie on LXC version 1.1.5. When I try to start OpenVPN I get:<br>
<br>
Sat May 28 20:55:57 2016 us=360137 ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)<br>
<br>
So it makes sense that the container can't create the tun device so I looked around and found suggestions to add an autodev hook:<br>
<br>
lxc.cgroup.devices.deny = a<br>
lxc.cgroup.devices.allow = c 10:200 rwm<br>
lxc.hook.autodev = sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"<br>
<br></blockquote><div><br></div><div><br></div><div>For starters, from "man lxc.container.conf"</div><div><br></div><div><div>lxc.hook.autodev</div><div>              A hook to be run in the container's namespace after mounting</div><div>              has been done and after any mount hooks have run, but before</div><div>              the pivot_root, if lxc.autodev == 1.</div></div><div><br></div><div>You can never modprobe in unprivileged container's namespace.<br></div><div><br></div><div>Another thing, AFAIK the hooks only accepts one parameter: a script name. So you need to have a script (e.g. /usr/local/bin/my_script) inside the container.</div><div><br></div><div>My best advice is to bind-mount /dev/net/tun from the host (lxc.mount.entry) instead of using lxc.hook.autodev, and try again. I"m not even sure that /dev/net/tun works for unpriv containers (fuse doesn't), so if that still doesn't work, you probably want to try privileged container.</div><div><br></div><div>-- </div><div>Fajar</div></div></div></div>