一.为什么
Proxmox VE 4将3代的OpenVZ支持去除换成了LXC,算是跟随趋势吧,但是LXC和OpenVZ还是有挺多不同的,在权限上更是如此,而网上最多的还是OVZ相关的教程,LXC的是真的少,不过一直以来没需求,所以没怎么折腾,最近在搞内网,所以为了用Tunnel还是得把TUN/TAP支持打开。
二.怎么办
首先当然是谷歌咯,关键词选得好马上出结果,proxmox官方论坛讨论贴 https://forum.proxmox.com/threads/tun-devices-in-ve-4-lxc.23473
总结一下
①.如果需要对所有(之后创建的)LXC容器全部开启tun/tap
那么需要修改/etc/lxc/default.conf,添加lxc.cgroup.devices.allow = c 10:200 rwm
当然,也可以创建/usr/share/lxc/config/common.conf.d/02-tuntap.conf 这样的配置文件来取得同样的效果
②.而如果只要对指定容器有效,则需要修改/etc/pve/lxc/[ID].conf , [ID]为你的容器编号
还没完,这样只是给了权限,实际上还没好,需要在容器的/etc/rc.local 自启动文件中添加如下
if ! [ -c /dev/net/tun ]; then mkdir -p /dev/net mknod -m 666 /dev/net/tun c 10 200 fi
这样你执行需要tun/tap的程序时就不会出问题了
三.附录(记如何在v3版本的ovz下开启tun/tap)
a. 编辑vz.conf文件,添加iptable_nat ipt_state这2个东西
vi /etc/vz/vz.conf IPTABLES=" ***" 这一行的引号内添加2个模块 iptable_nat ipt_state
b. 手动关闭所有小鸡,重启openvz模块
/etc/init.d/vz restart
c. 对小鸡进行必要的设置(这里以小鸡100为例,100是指PID,WEB控制面板里可以看到)
vzctl set 100 --devices c:10:200:rw --save vzctl set 100 --capability net_admin:on --save
d. 母鸡加载一次这些
modprobe ipt_mark modprobe ipt_MARK modprobe ip_nat_pptp modprobe nf_nat_pptp modprobe tun modprobe ppp_async modprobe ppp_deflate 或者 vi /etc/modules ipt_mark ipt_MARK ip_nat_pptp nf_nat_pptp tun ppp_async ppp_deflate 查看是否启用模块 lsmod | grep nf_nat_pptp
e. 启动小鸡输入以下命令
mkdir -p /dev/net mknod /dev/net/tun c 10 200 chmod 600 /dev/net/tun
文章评论