pve lxc openwrt安装,Proxmox(pve)中LXC安装openwrt软路由
以前写过一篇关于《LXC容器搭建openwrt软路由》,这篇文章是以前文章的补充。及详细说明
一、用Proxmox VE 管理创建LXC的OpenWRT模板
由于主机之上的所有lxc是共享内核的,所以要创建不同发行版本的容器,需要有对应的模板.
在Proxmox VE环境中,对模板的管理是非常的简单和高效的.模板是创建lxc的基础.
创建openwrt模板的步骤:
1.下载最新编译openwrt的rootfs文件
链接: https://pan.baidu.com/s/1Qni2nyq1WWCcEGS01VQ77w?pwd=ys59 提取码: ys59
openwrt-21.02.0-x86-64-generic-squashfs-rootfs.img.gz
用ssh登陆并上传到PVE里/root目录下
2.ssh里解压
gzip -d openwrt-21.02.0-x86-64-generic-squashfs-rootfs.img.gz
3.安装解包软件
apt install squashfs-tools
如果安装不了下载到本地安装
sudo dpkg -i squashfs-tools_4.3-12_amd64.deb
4.对解压得到的img进行解包
unsquashfs openwrt-21.02.0-x86-64-generic-squashfs-rootfs.img
5.解包后的文件打包为PVE的CT模板,此打包过程会自动加载pve内核而不用再另外编译
cd squashfs-root tar zcf ../openwrt.rootfs.tar.gz ./*
6.上传
将openwrt.rootfs.tar.gz上传到/var/lib/vz/template/cache后,在PVE的WEB管理CT Templates里会出现此模板
二、修改PVE,添加相应模块
1.上传附件里openwrt.conf到/etc/modules-load.d目录下
2.上传附件里rps到/etc/init.d目录下,此脚本可以增强网卡的并发能力
3.ssh运行,加开机自动执行
update-rc.d rps defaults
4.打开/etc/sysctl.conf文件,添加以下内容(也可以不加)
net.netfilter.nf_conntrack_icmp_timeout=10 net.netfilter.nf_conntrack_tcp_timeout_syn_recv=5 net.netfilter.nf_conntrack_tcp_timeout_syn_sent=5 net.netfilter.nf_conntrack_tcp_timeout_established=600 net.netfilter.nf_conntrack_tcp_timeout_fin_wait=10 net.netfilter.nf_conntrack_tcp_timeout_time_wait=10 net.netfilter.nf_conntrack_tcp_timeout_close_wait=10 net.netfilter.nf_conntrack_tcp_timeout_last_ack=10 net.core.somaxconn=65535
5.加载tproxy模块,实现UDP转发
echo 'xt_TPROXY' > /etc/modules-load.d/tproxy.conf
6.重启pve
三、安装pve lxc openwrt
1.用命令方式建容器,自行修改 local-lvm和bridge名称为你自已的
pct create 111 local:vztmpl/openwrt.rootfs.tar.gz --rootfs local-lvm:2 --ostype unmanaged --hostname CTOpenWrt --arch amd64 --cores 2 --memory 512 --swap 0 -net0 bridge=vmbr0,name=eth0 -net1 bridge=vmbr1,name=eth1
要点:创建虚拟网卡不要使用您的wan端口。
2.修改op lxc配置文件
打开/etc/pve/lxc/111.conf,添加以下内容(111改为你容器id,还有倒数第二行的111)
lxc.mount.auto: cgroup:rw lxc.mount.auto: proc:rw lxc.mount.auto: sys:rw lxc.include: /usr/share/lxc/config/openwrt.common.conf lxc.cap.drop: sys_admin lxc.apparmor.profile: unconfined lxc.cgroup.devices.allow: c 108:0 rwm lxc.autodev: 1 lxc.cgroup.devices.allow: c 10:200 rwm lxc.hook.autodev: /var/lib/lxc/111/device_hook.sh lxc.mount.entry: tmp tmp tmpfs rw,nodev,relatime,mode=1777 0 0
3.上传附件里device_hook.sh到/var/lib/lxc/111目录下(111改为你容器id),并修改成可执行
apt install squashfs-tools0
4.进到op命令行修改/sbin/modprobe为mde
apt install squashfs-tools1
5.进到op命令行修正主页显示,以下去掉lan口显示报错(不改也可以)
修改/usr/lib/lua/luci/view/admin_status/index.htm
找到 local eth_info = luci.sys.exec("ethinfo") 修改为 local eth_info = nil
找到 local conn_max =
修改为下面(只要在net.和.nf_conntrack之间添加netfilter)
apt install squashfs-tools2
四、启动容器,本人编译的op地址是192.168.8.1
五、由于PVE7.0 默认采用cgroupv2,缺少对系统类型为unmanaged的容器支持,LXC容器会出现以下错误
apt install squashfs-tools3
解决方法是修改/usr/share/perl5/PVE/LXC/Setup.pm文件
翻到最后,可以看到以下内容
apt install squashfs-tools4
修改为
apt install squashfs-tools5
启动容器,会出现WARN:警告,忽略就行。
本文内容使用到附件下载
链接: https://pan.baidu.com/s/16joEBbDJqQmjNQn-7GIr4g?pwd=w8d6提取码: w8d6
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包