小白的proxmox ve(pve)打造AIO(all in boom)折腾日记 (五)openwrt虚拟机建立(包括openwrt系统编译)

        打造一台pve主机,软路由功能可以说是必不可少的,我这里选择使用openwrt系统。

一、准备系统镜像

        网上的openwrt系统可以说是五花八门,可以选择直接下载官方的固件,也可以去恩山无线论坛中找到适合自己的固件,当然也可以自己编译自己需要的固件。这里提供两个在恩山论坛中找到的连接,其中一个是可以自定义插件的,另一个是版本比较全面的,我都是实际使用过的。

kiddin9/OpenWrt_x86-r2s-r4s-r5s-N1: 一分钟在线定制编译 X86/64, NanoPi R2S R4S R5S R6S, 斐讯 Phicomm N1 K2P, 树莓派 Raspberry Pi, 香橙派 Orange Pi, 红米AX6, 小米AX3600, 小米AX9000, 红米AX6S 小米AX3200, 红米AC2100, 华硕ASUS, 网件NETGEAR 等主流软硬路由 (github.com)

sirpdboy/openwrt: openwrt (github.com)

        当然最好的固件肯定是自己编译的适合自己的固件,但是过程相对比较麻烦。

二、进行系统编译

        现在的系统编译主要分为官方的和lean
大神的,官方的相对来说纯净一些,lean大神的相对来说插件多一些,我都是有尝试编译过的,所以下面一些截图可能出自不同的源代码。进行系统编译也是参考了很多文章:

        首先是官方的一些:

[OpenWrt Wiki] OpenWrt编译 – 说明

零开始学习OpenWrt完美教程_JackieGemini的博客-CSDN博客

【老湿基】OpenWRT 高级编译总览、编译插件|第一弹_哔哩哔哩_bilibili

新手折腾进阶篇-openwrt编译入门(绝对详细版)-OPENWRT专版-恩山无线论坛 - Powered by Discuz! (right.com.cn)

        然后是lean大神的一些:

coolsnowwolf/lede: Lean's LEDE source (github.com)

自己编译OpenWRT初级教程,适合新手小白,20分钟学完,完美GET新技能 - 哔哩哔哩 (bilibili.com)编译属于自己的OpenWrt固件_软件应用_什么值得买 (smzdm.com)

1.必要条件准备

        编译系统是需要在linux环境下进行的,所以往往需要安装ubuntu系统,或者使用wsl或者其他的linux系统。然后最最重要的是一个良好的可以搞“学术”的网络,在准备和编译过程中很多时候失败的原因就是因为没有一个良好的网络环境。这方面具体的我就不说了。

2.软件环境准备

        首先更新软件包列表,代码如下:

sudo apt-get update

        然后安装编译软件环境:

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

       可以自己一条条输入,这样有问题可以及时修改,当然这样也会有提示,比如我用的ubuntu22提示如下

         所以我用的命令是:

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc-s1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

3.源码下载

        官方源码获取命令为:

git clone https://www.github.com/openwrt/openwrt

        lean源码获取命令为:

git clone https://github.com/coolsnowwolf/lede

4.更新并安装扩展包 

        首先需要进入代码目录,官方是 cd ./openwrt,lean大神的是  cd ./lede

        可以通过修改feeds文件添加一些自己需要的东西。相关命令为:

echo 'src-git helloworld https://github.com/fw876/helloworld' >>feeds.conf.default

        当然最好还是直接下载需要的包,命令为:

cd ./package
git clone https://github.com/fw876/helloworld.git package/lean/luci-app-ssr-plus
cd ../

        然后更新。更新过程可能因为网络问题失败,所以要注意一下。

./scripts/feeds update -a

         安装。一般来说只要上面没有问题,安装不会有问题。

./scripts/feeds install -a

5.进行openwrt配置(重点) 

        接下来就是最重要的地方,根据自己的设备和需求进行openwrt配置。首先输入以下命令。

make menuconfig

        稍等以下会出现下面的界面。

        前三个选项是根据自己的硬件选择,我用的intel的芯片,所以选项为 x86 - x86_64 - Generic x86/64。

 

        target中选择自己需要的镜像文件, 把一些不需要的取消勾选就可以,节约空间。

        这个Kernel partition size和Root filesystem partition size分别是内核分区大小以及文件系统分区大小,前面指这个openwrt内核占据空间大小,后面指整个系统占据大小,一般来说越大越好,后面这个大的话可以多装一些插件,但是具体还是要看自身配置,储存空间不够,这个设置大了也无法安装。

        后面的几条是不用动的。如果是lean大神的代码,在extra packages选项中可以打开ipv6helper,会帮你完成ipv6相关的一些东西安装。官方的没有这个选项,默认也有打开ipv6功能。

         fonts -dejavu中是一些字体,喜欢的可以全部勾选。

         kernel modules - network devices中是一些网卡驱动相关的内容,要根据自己网卡驱动去选择合适的选项。

         kernel modules - usb support是usb驱动相关的选项,根据自己所需进行选择。一般来说这两项大多数都是默认选好的,不需要修改。

         luci是openwrt一个可以说必须要用的功能,就是网页管理端。

        在luci - collections中选择并打开。 

        在modules中据说选择luci-compat会让luci打开不卡顿,具体情况不清楚。 

        在modules中的translations中倒数第二个可以选择简体中文。 然后luci中还可以选择主题。在luci- applications中可以选择需要的插件。可以根据下面这个网站选择自己合适的插件。

OpenWrt 编译 LuCI-> Applications 添加插件应用说明-L大【2022.11.28】-OPENWRT专版-恩山无线论坛 - Powered by Discuz! (right.com.cn)

        在我们学校如果使用有线网需要l2tp,可以在ntwork-vpn中找到。需要进行内网穿透可以使用zerotier,也可以在这个地方打开。

         根据自己的需要完成了设计后,就可以save,exit,进行编译了。

         第一次编译建议用单线程编译。j后面数字指定线程数量。命令为:

make -j1 V=s

        在编译过程中,很有可能会出现错误,要学会看错误原因,有的是缺文件,多半是网络不行导致的,重新编译就可以了。有的是因为冲突了,需要根据提示重新makeconfig,关闭冲突的选项。

         编译完成后可以在bin文件夹下硬件对应文件夹下找到想要的img镜像。

 三、openwrt虚拟机安装及设置

         系统安装方面主要参考下面这两篇:

PVE虚拟机部署OpenWRT+群晖NAS+Windows系统,打造一台全能主机,Proxmox VE系统超详细安装_哔哩哔哩_bilibili

PVE安装Openwrt/LEDE软路由保姆级图文教程 - 十佳测评 (10bests.com)

        获取了openwrt镜像之后就可以进行安装了。首先需要进入pve系统的网页端。选择节点,点击右上角 ——创建虚拟机。

         节点和id都是默认填好的,一般不需要改,如果觉得id数字不好看可以自行修改,输入名称。

         操作系统方面选择 不使用任何介质,之后再添加。

         系统这些默认就可以了。

         磁盘也不需要进行修改,之后会删除。

         核心可以根据自己电脑性能及需求进行填写,因为openwrt作为软路由是pve系统的基础,所以cpu权重故意调高了一点。

         根据自己电脑配置选择内存大小。openwrt对内存要求不高。

         网络就选择半虚拟化就可以的。

         最后进行确认,创建。

         打开新创建的节点,打开硬件,找到硬盘,选择分离,然后选择删除。对于CD/DVD驱动器也进行删除。

         然后添加网口直通。一般来说最起码需要双网口,一个进行连接互联网,一个作为管理口,将连接互联网的网口直通到openwrt中。选择添加,pci设备,找到自己的网卡。

         之后需要上传镜像文件,选择local ——iso镜像,点击上传,然后将自己的openwrt系统镜像上传进入。

         上传完成后,在target file:后会有该镜像位置信息,最好复制一下,之后会用到。

        进入ssh界面,输入以下命令并回车。其中102需要改成你自己的id,后面那个路径是刚刚复制的那一段,因为我把local-lvm删掉了,所以我用的是local,一般来说是local-lvm。

qm importdisk 103 /var/lib/vz/template/iso/openwrt-x86-64-generic-squashfs-combined.img local

     

         之后重新进入刚开的虚拟机的界面,选择硬件,然后会发现多了一个硬盘的选项,双击进入将总线/设备改为SATA。

         然后进入选项界面,将引导顺序改为sata0.这个一定要改,不然可能开机后关机都无法正常关闭。

         这样就可以了,点击右上角的启动。可以进入控制台输入以下命令修改ip地址。

vi /etc/config/network

        在lan下面 option ipaddr修改到需要的ip地址。之后保存退出,重启。

        在web输入刚刚设置的ip地址就可以进入luci,就可以更方便的修改你的openwrt了!

猜你喜欢

转载自blog.csdn.net/m0_59885919/article/details/129429666
今日推荐