pve lxc openwrt安装,Proxmox(pve)中LXC安装openwrt软路由

2022-08-06
0评论
/
阅读
爱搜啊

以前写过一篇关于《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 


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2022-08-06发布