从PVE的KVM转向CT用LXC装openwrt

最近在Proxmox上用LXC虚拟了一个debian,资源占用很小,想着是否能实现openwrt,一搜果然有,为什么用LXC见这篇。 具体设置主要按照 论坛里 这个方法,但是里面有几个地方笔误了,采完坑补充记录下。 一开始用的 官方 版本, 结果发现间歇断网,后来测试下来发现 原帖采取的 这个干净版本非常不错,还能在线装各种插件,不用去搜专门的ipk,也不像一些编译好的版本多了很多用不上的功能。

以下为整理的具体步骤,基本比较完善和详细:

  • 解压 gzip -d openwrt-x86-64-generic-squashfs-rootfs.img.gz
  • 对得到的img进行解包(没有软件就 sudo apt install squashfs-tools
unsquashfs openwrt-x86-64-generic-squashfs-rootfs.img
  • 进入目录,重新打包为模板
cd squashfs-root
tar zcf ../openwrt201117.rootfs.tar.gz *

约为24M,上传或复制到PVE对应目录,一般为/var/lib/vz/template/cache。

info:一开始几次压缩后都只有9k,有问题,后来在完整的linux下执行就对了

  • 进入PVE shell中,创建LXC,据说web中创建CT方式会不好用,没测试。
pct create 202 local:vztmpl/openwrt201117.rootfs.tar.gz --rootfs local-lvm:1 --ostype unmanaged --hostname CTOpenWrt --arch amd64 --cores 2 --memory 512 --swap 0 -net0 bridge=vmbr0,name=eth0

相关参数可自行定义local-lvm可以设硬盘为更大,单位是G,我这为1G。

  • 进入web控制台启动CT。设置IP等等,安装插件。
uci set network.lan.ipaddr=[lan ip]
uci set network.lan.gateway=[上级路由ip]
uci set network.lan.dns=[上级路由ip]
uci commit 
/etc/init.d/network restart 
  • 安装完adguard home和paswal后基本占用很低,不像VM模式下都有5%的CPU。 观察稳定运行几天试试,iperf可以跑满千兆。
  • 2020.12.06 映射宿主机目录 ,100是ID,最后mp=是LXC中目录地址
pct set 100 -mp0 /mnt/bindmounts/shared,mp=/shared 
  • 容器lxc开启tun-br
# pve主机编辑lxc文件, vi /etc/pve/lxc/2001.conf ,最后加入
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"

# 进入lxc执行,重启后生效
cd /dev
mkdir net
mknod net/tun c 10 200
chmod 0666 net/tun
reboot

openwrtopenwrt

添加新评论