PVE7.1安装增强版内核并使用LXC搭建OpenWrt
侧边栏壁纸
  • 累计撰写 17 篇文章
  • 累计收到 564 条评论

PVE7.1安装增强版内核并使用LXC搭建OpenWrt

syqman
2022-07-16 / 2 评论 / 2,361 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年07月16日,已超过858天没有更新,若内容或图片失效,请留言反馈。
说明

  本文使用的PVE版本为7.1-10,理论上7.1以上都适用,但是不做保证,需要你自行尝试,建议新装PVE用户尝试,否则出现意外情况,我不对数据丢失负责。为啥要用LXC装OpenWrt本文不展开,感兴趣的自行百度。

1.安装PVE增强版内核

  下载 PVE7.1LXC增强内核 ,该内核加入OpenWrt需要的Fullcone、Flow加速内核、TPROXY,OpenWrt可以以LXC容器的方式直接运行在PVE里面免虚拟化层速度飞快,打开I225 B3的5.17内核的4队列RSS支持和ZeorCopy加速。
  解压,将压缩包里的5个deb安装文件上传到PVE root目录下,SSH登录PVE后台,依次安装,如:

dpkg -i linux-tools-5.13_5.13.19-14_amd64.deb
dpkg -i linux-tools-5.13-dbgsym_5.13.19-14_amd64.deb
dpkg -i pve-headers-5.13.19-6-pve_5.13.19-14_amd64.deb
dpkg -i pve-kernel-5.13.19-6-pve_5.13.19-14_amd64.deb
dpkg -i pve-kernel-libc-dev_5.13.19-14_amd64.deb

重启PVE,进入PVE web面板查看内核版本有无变更,视为安装成功
l5nmirxd.png

2.安装OpenWrt

2.1创建CT模板  

Openwrt的镜像格式必须为-rootfs.img、-rootfs.img.gz或者-rootfs.tar.gz的文件-rootfs.img-rootfs.img.gz需要解包后打包,-rootfs.tar.gz可以直接使用。
  找到你的大腿,要到 openwrt-x86-64-generic-rootfs.tar.gz ,如果找不到,可以直接下我提供的,当然仅作试验,毕竟每个人需求不一样,还是找到自己合适的OpenWrt镜像。
  打开PVE web面板,如https://192.168.1.3:8006, 打开local(pve)-CT模板,上传你的OpenWrt镜像。

l5nmv13s.png
通过SSH或者是网页端打开PVE终端,执行以下命令创建新容器

pct create 105 \
    local:vztmpl/openwrt-x86-64-generic-rootfs.tar.gz \
    --rootfs local-lvm:4 \
    --ostype unmanaged \
    --hostname OpenWrt \
    --arch amd64 \
    --cores 2 \
    --memory 2048 \
    --swap 0 \
    -net0 bridge=vmbr0,name=eth0

2.2修改容器配置文件,

vim /etc/pve/lxc/105.conf

添加以下内容,

# openwrt.common.conf是PVE自带的openwrt配置文件示例,内含一些基本设置
lxc.include: /usr/share/lxc/config/openwrt.common.conf
# /dev/ppp  pppoe拨号等功能需要用到
lxc.cgroup2.devices.allow: c 108:0 rwm
# 钩子脚本,用于添加 /dev/ppp等设备
hookscript: local:snippets/hookscript.pl
# 将主机的网卡enp4s0分配给容器使用,根据自己的实际情况更改
lxc.net.1.type: phys
lxc.net.1.link: enp4s0
lxc.net.1.flags: up

其中 108:0 可以通过 ls -l /dev/ppp 命令获得。

2.3创建钩子脚本

这里在官方示例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

在第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";

启动OpenWrt,web面板,点启动,查看内核版本
l5nnh52q.png

0

评论 (2)

取消
  1. 头像
    jj
    Windows 10 · Google Chrome

    大佬,内核地址失效了

    回复
  2. 头像
    yuiwdrllmt
    Windows 10 · Google Chrome

    兄弟写的非常好 https://www.cscnn.com/

    回复