Setting up openvpn client in LXC containers

inxsible

Active Member
Feb 6, 2020
139
8
38
I am trying to set up a openvpn client with my provider in a LXC container but it keeps failing
Code:
2021-08-03 19:51:19 ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
2021-08-03 19:51:19 Exiting due to fatal error

So it seems that unprivileged containers cannot set up the /tun/tap devices. My options at this point are:
  1. Use a privileged container -- since I use Archlinux in most of my containers, using a privileged container is a problem due to : https://forum.proxmox.com/threads/psa-do-not-upgrade-to-systemd-247.80936/#post-357555
  2. Use a VM -- causes resource wastage especially for a service that's only used only for some time and sits idle most of the time
  3. This reddit post : https://www.reddit.com/r/Proxmox/comments/giqbzx/openvpn_client_lxc_tun_error/ --- describes changing the container's config file but I am unsure of any issues that it might cause, especially security wise.

Can someone please comment on the above 3 options as to which would be optimal -- mostly with security in mind? Are there any other options available?
 
hi,

see our wiki [0]

the article describes setting up a server, but you can use the same config lines for passing /dev/net/tun into the container:
Code:
 lxc.cgroup2.devices.allow: c 10:200 rwm
 lxc.mount.entry: /dev/net dev/net none bind,create=dir

that allows the /dev/net/tun device from the host to be used in the container, that way you can create VPN interfaces in the container (client/server)

[0]: https://pve.proxmox.com/wiki/OpenVPN_in_LXC
 
Last edited:
  • Like
Reactions: Creegz and inxsible
hi,

see our wiki [0]

the article describes setting up a server, but you can use the same config lines for passing /dev/net/tun into the container:
Code:
 lxc.cgroup2.devices.allow: c 10:200 rwm
 lxc.mount.entry: /dev/net dev/net none bind,create=dir

that allows the /dev/net/tun device from the host to be used in the container, that way you can create VPN interfaces in the container (client/server)

[0]: https://pve.proxmox.com/wiki/OpenVPN_in_LXC
Wonderful. I'll try that out and post back.
 
I forgot to update... but this worked in allowing me to run openvpn client from within the container.
 
I forgot to update... but this worked in allowing me to run openvpn client from within the container.
great, you can mark the thread [SOLVED] so others also know what to expect :)