[openwrt(x86)]Proxmox(pve)中LXC容器搭建openwrt软路由不影响性能
经过实际测试发现,使用Proxmox(PVE)中LXC容器基本不影响性能
带宽约350Mbps,下载BT的时候,路由器资源占用对比:
1、锐角云,方案: PVE -> vm方式安装OpenWRT,下载速度能达到300Mbps以上,宿主机cpu占用70%-80%,ping网关10ms左右
2、锐角云,方案: PVE -> lxc方式安装openwrt,下载速度能达到300Mbps以上,宿主机cpu占用25%-30%,ping网关1ms左右
4月5日摸索后所得
1、感觉pve的lxc对openwrt的支持会越来越完善,在lxc中运行openwrt后,该容器的概要备注栏会出现如下提示:
openwrt.common.conf是PVE自带的openwrt配置文件示例,内含一些基本设置 /dev/ppp pppoe拨号等功能需要用到 钩子脚本,用于添加 /dev/ppp等设备 将主机的网卡enp4s0分配给容器使用,根据自己的实际情况更改
同时观看了其自带的CT模板,基本上基于linux流行的开源软件都囊括了,openwrt我觉得应该很快会在官方的“CT模板”中出现,或者说会越来越完善。
2、就发帖提出群晖的lxc模板制作我觉得会很难出现,因为其结构变动太大了,且docker中也没有发现有群晖。
ProxmoxVE 7.0 LXC下搭建openwrt软路由
特点:
1、安全,因为无需网卡直通,所以把pve弄塌的几率很小。
2、按理应该不限制pve和openwrt的版本。
3、工具简单,只需要winscp即可,命令也很少
前言
1、硬件环境
HP GEN8
CPU更换为E3-1265L V2
内存16G
新添加X540-T2网卡
2、软件环境
pve版本号:7.1-12
openwrt用的l大截止2022年3月30日源码,
OpenWrt R22.3.13
内核:5.15.32
因为主板上的两个网口分组一直不成功,所以没有开通直通功能
3、实现效果
A、拨号正常,能获取IPV4、IPV6地址
B、IPV4、IPV6动态域名正常
C、AdGuard Home使用正常
其他没测,我也不需要。但从成品效果来说,应该和实体机安装、虚拟机安装代入效果一样。
因为我的绝大多数功能都是使用黑裙实现的,所以我用的固件是用L大源码自己编译的,我只编译进去了“TTYD终端、AdGuard Home、socat、上网时间控制、动态DNS、网络唤醒(应该用不着)、KMS服务器、UPNP、IPV6“
一、模板取得
注意:以下***为具体的文件名,注意在命令里相应的替换为具体的文件名
要点、必须是***-rootfs.img、***-rootfs.img.gz或者***-rootfs.tar.gz的文件
***-rootfs.img、***-rootfs.img.gz需要解包后打包
***-rootfs.tar.gz可以直接使用
1、***-rootfs.tar.gz取的
A、可以到官网或者别人直接索取
官网地址:https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-rootfs.tar.gz
B、自己编译
编译时选中Target Images --->*.tar.gz
2、用下载的***-rootfs.img、***-rootfs.img.gz文件解包、打包
A、将***-rootfs.img、***-rootfs.img.gz文件用ssh登陆并上传到PVE根目录/root目录下
B、ssh里解压(***-rootfs.img无需此步骤)
gzip -d ***-rootfs.img.gz
C、安装解包软件
apt install squashfs-tools
D、对得到的img进行解包
unsquashfs ***-rootfs.img
E、进入目录,重新打包为pve的CT模板
cd squashfs-root tar zcf ../***-rootfs.tar.gz ./*
F、上传或复制到PVE的CT模板目录,/var/lib/vz/template/cache
二、新建LXC容器
1、通过SSH或者是网页端打开PVE终端,执行以下命令创建新容器
pct create *** \ #“***”是容器编号 local:vztmpl/***-rootfs.tar.gz \ #“***-rootfs.tar.gz”时CT模板 --rootfs local-lvm:1 \ #“1”为虚拟磁盘大小,这里是1G --ostype unmanaged \ #系统类型,之后可在设置文件中修改 --hostname OpenWrt \ #容器名称,之后可在设置文件中修改 --arch amd64 \ #系统架构,amd64 | arm64 | armhf | i386 --cores 8 \ #分配给容器的核心数,我这里分配的是8个,我测试CT模版不需要对某一个容器分配多少,pve会自己调度,所以我通过CT模板建立的虚拟机都是把cpu资源全部分配的。 --memory 1024 \ #分配给容器的内存大小,这里是1G。 --swap 0 \ #分配给容器的交换区大小,这里是0 -net0 bridge=vmbr0,name=eth0 -net1 bridge=vmbr1,name=eth1 #我这里分配了两个网卡,bridge=vmbr1对应的是pve网络您创建的虚拟网卡;name=eth1对应的是openwrt中的网卡。
要点:创建虚拟网卡不要使用您的wan端口,创建虚拟网卡不要使用您的wan端口、创建虚拟网卡不要使用您的wan端口。
三、修改容器设置
1、修改容器配置文件
vi /etc/pve/lxc/***.conf #“***:是容器编号
添加以下内容(要点:倒数第二行“lxc.net.1.link: eno2”,“eno2”修改为您的wan端口,端口名称是pve---网络---名称栏物理网卡的名字,不要填成了创建的虚拟网卡名字)
# openwrt.common.conf是PVE自带的openwrt配置文件示例,内含一些基本设置 lxc.include: /usr/share/lxc/config/openwrt.common.conf # /dev/ppp pppoe拨号等功能需要用到 lxc.cgroup.devices.allow: c 108:0 rwm # 钩子脚本,用于添加 /dev/ppp等设备 hookscript: local:snippets/hookscript.pl # 将主机的网卡enp4s0分配给容器使用,根据自己的实际情况更改 lxc.net.1.type: phys lxc.net.1.link: eno2 lxc.net.1.flags: up
2、创建钩子脚本
A、这里在官方示例guest-example-hookscript.pl的基础上进行修改,大家可以根据需要自行修改
mkdir /var/lib/vz/snippets cp /usr/share/pve-docs/examples/guest-example-hookscript.pl /var/lib/vz/snippets/hookscript.pl vim /var/lib/vz/snippets/hookscript.pl
B、在第36行可以找到以下内容
# Second phase 'post-start' will be executed after the guest # successfully started. print "$vmid started successfully.\n";
修改为
# Second phase 'post-start' will be executed after the guest # successfully started. system("lxc-device add -n $vmid /dev/ppp"); system("lxc-device add -n $vmid /dev/net/tun"); print "$vmid started successfully.\n";
三、pve防火墙设置
要点:1个端口的防火墙是由“in”和“out”两条规则组成的。
A、规则“in”
方向:in
操作:ACCEPT
接口:*** #在这里,openwrt中使用的wan口填物理网卡名称,lan口填写虚拟网卡的名称(端口名称在pve---网络---名称栏中查找)
选中“启用”
B、规则“out”
方向:out
操作:ACCEPT
接口:*** #这个接口与上条规则的接口相同
选中“启用”
举例,如果您有两个端口,一个是“wan”,一个是“lan”,则就是4条规则,“wan”的接口是物理接口名称,“lan”接口是创建的虚拟网卡接口名称。以此类推。
四、启动容器(踩了最多的坑)
执行以下指令
apt install squashfs-tools0
我启动容器后没有发现任何不正常的现象和提示。
最大的坑就是我设置openwrt过程中(也有SSh进去备份的hosts、ddns、dhcp等配置文件)如果软启动,不是进不去网页界面就是拨号不成功,无意中用冷启动才解决问题,然后一切就变得好通畅了。
同时强烈呼吁大神研究做一个群晖的lxc模板出来。pve安装黑裙cpu必须选“KVM64”,效能损失比较大啊。我的群晖因为要异地文件同步、异地播放视频、迅雷下载等,使用频率很高,以前不觉得,现在感觉就是根刺。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包