我的HomeServer搭建小记_ESXI+OpenWrt+Windows10+Linux

作者:Jackeroo_Org

一直对于提升家庭网络体验有种执念,本次折腾就是来填坑的。最终通过本篇文章记录的折腾之后,我家的网络拓扑图如下:

广告NI LabVIEW虚拟仪器×

通过本次折腾,我实现了以下需求:

宽带拨号,公网IP,大家懂得的网络需求;

DDNS,在外网访问路由器后台;

Windows10为跳板机,可通过RDP访问

CentOS运行一个Telegram机器人

CentOS搭建一个内网相册分享网站

CentOS搭建GitLab私有代码服务器

一、硬件选择

考虑过多种方案,包括Intel NUC产品线、DIY组装HTPC小主机、成品多网口小主机。最终我选择了成品多网口小主机,主要是基于以下:

NUC只有单网口,无法做主路由;

DIY太麻烦费时,且目前市售没有好看的CASE机箱;

工控多网口小主机,无风扇设计,外壳硬朗,体积尚可接受

好像都是在说别人的缺点以凸显多网口工控机的优点,哈哈哈。最终配置为:

CPU:i7-1165G7, 卖家提供赛扬6305、酷睿i5-1135G7、酷睿i7-1165G7可供选择,我选择一步到位!

内存:笔记本DDR4 3200GHz 16GB * 2,最大支持64GB内存

硬盘:mSATA 512GB + 2T SSD

网卡:Intel i210 * 6

其他接口:HDMI 2.0 1、USB 3.1Gen2 4、COM(RJ45) * 1

电源:DC 12V 5A, 5.5 * 2.5 插头

广告如何优雅地使用Windows 10 ?×广告国内升级 win 10 有哪些渠道?×广告linux初学者(学习资料)×

二、软件安装

由于要在这台小主机上借助底层虚拟机安装多个系统,分别运行不同的服务。因个人喜好,我选择 VMware,也就是大家常说的ESXI虚拟机,各位小伙伴也可以选择 Proxmox VE(简称PVE)。

2.1 安装底层虚拟机

广告如何让Windows 10系统桌面变得更好看?×

关于如何安装虚拟机,网上有非常多的轮子,我这里简单带过。在一切开始之前,需要准备好一个空优盘。

下载虚拟机镜像,可以前往丁辉博客下载;

把固件烧录进优盘,这几个软件 Rufus BalenaEtcher 均可以把虚拟机系统固件烧录进优盘;

 烧录完成,即可进行系统安装;

注意事项:

ESXI刚启动安装的时候,按住Shift+O(是字母o不是零),键入以下代码:

cdromBoot runweasel autoPartitionOSDataSize=8192

OSDataSize=8192改成4096也行。这段代码的目的是解除ESXI 7.0自动划分120G虚拟闪存的问题,解决120G硬盘不能安装ESXI7.0的问题。

安装过程中,ESXI安装是可视化的安装过程,是需要接键盘鼠标的。

安装完毕之后,按F2进入设置界面,在这个设置界面,需要定义好虚拟机后台的IPv4地址、子网掩码、DNS地址等。这些地址需要提前规划好

广告linux初学者(学习资料)×

IPv4 Address:10.0.0.251也就是ESXI登录的后台地址

Subnet Mask: 子网掩码,为255.255.255.0

Default Gateway:10.0.0.1

如果要解除ESXI的登录密码,在安装完毕系统后,F2进入设置后台,选择Reset system configuration进行密码重置,重置过后,密码为空值。

2.2 安装路由系统OPENWRT

路由器系统非常多,有OpenWrt、PfSense、OPNsense、iKuai、Panabit、RouterOS等,由于国内用户的实际需求导致,我和国内众多用户一样,对OpenWrt了解稍微更深,使用也更多一些,那么这里我就把OpenWrt作为我的主路由系统。

固件选择:OpenWrt固件系统选择:选择非常多,这里不做推荐

格式转换:转换img格式格式为适配虚拟机的vmdk格式,格式软件下载和教程参考

安装步骤:

登录ESXI,新建虚拟机,名称可任意填写,客户机操作系统选择Linux,客户机操作系统版本选择其他4.x或更高版本的Linux(64位)

广告【平台网站】图片免费下载 平台网站素材 平台网站模板×

将系统默认生成的硬盘删除,CD/DVD也用不到可以删除,并设置好网卡。

广告看完这篇linux基本的操作就会了×

内存一定要勾选预留所有客户机内存(锁定)

广告小黑记事本,让记事更舒心×

选择添加硬盘>>>现有硬盘,选择本地的前面转好格式的vmdk文件上传,先上传kb级小文件,后上传大文件;

广告升级windows10_2022新版升级windows10_...×广告KVM 的「基于内核的虚拟机」是什么意思?×

注意:硬盘上传完成后如上图,磁盘大小需设置为大于镜像的大小,否则无法保存虚拟机。

保存并开启OpenWrt虚拟机;

修改OpenWrt后台登录地址到前面规划好的后台地址:使用vim命令,在OP的终端命令行中输入:

vim /etc/config/network

按下字母i开启insert模式,修改option ipaddr 10.0.0.1,然后按下ESC键,键入:wq·保存并退出,最后输入 reboot实现命令行重启软路由OpenWrt系统。

2.3 安装WINDOWS

和创建OpenWrt虚拟机类似,不过又一些细节不一样。提前准备好Windows固件:

新建虚拟机,选择对应的Windows系统版本;

广告云主机免费试用!一款带小票的云主机!×

内存需要勾选预留所有客户机内存(锁定);硬盘下拉,控制器位置设置为SATA控制器;

广告记事本软件 记录多彩生活,就用印象笔记!×

在CD/DVD驱动器1,选择下拉的数据存储ISO文件,上传并选择我们的Windows ISO固件;

广告小黑记事本,让记事更舒心×

一直下一步直到完成,在回到虚拟机>>>操作>>>编辑设置,在虚拟机选项中,把引导选项下面的固件,修改默认的EFI为BIOS引导;

广告虚拟机能不能调用独立显卡?×广告云主机免费试用!一款带小票的云主机!×

启动Windows10虚拟机,和物理装机一样,操作Windows系统安装,直至安装完毕!

2.4 安装LINUX系统

Linux系统分支有非常多中,可以根据各自的喜好进行下载:这里,我用CentOS。

安装CentOS虚拟机步骤和物理机下安装Windows一摸一样,这里过程就不再赘述!。

三、虚拟机分工

如文章开篇所述,我家的网络拓扑图为如下。

广告小姨欠下巨款,初六凭高超手艺还债,众人惊呆:你不是洗脚的吗?×

3.1 网络拨号——OPENWRT

前提:我家使用电信宽带,且已经找电信客服申请到了公网IP(话题延升:公网IP 不等于 固定IP)。所以我使用OpenWrt进行宽带PPPoE拨号上网。

广告良心好服!礼包码:CQ8888×

额外说明:

ESXI下的OpenWrt系统内的eth网口顺序和物理机上的LAN1-6是错乱的,这个目前似乎是这些工控机在BIOS设计中并没有和ESXI匹配上,不过问题不大,拿根网线实际插上测试下就能分辨出物理机上需要设置为WAN口的LAN6对应的是OpenWrt系统内的eth3,在网络>>>端口>>>WAN,点击修改进行选择绑定即可。

OpenWrt内的网络数量,跟我们创建虚拟机时,创建的PCI设备数量相关,通常你可以全部网络分配给OpenWrt,也可以只分配两个。

各位可以选择另外一种方案:ESXI+iKuai+OpenWrt双软路由的方案,iKuai负责拨号,OpenWrt负责科学魔法上网

3.2 RDP跳板机——WINDOWS10 LTSC

使用场景:离家状态下,我可以直接通过微软的远程桌面,直接连接到家庭内网的Windows机器上,进入完全内网的环境中。

广告梦幻西游网页版,一天全身无级别,宝宝全红满技能!无限洗练!×

访问方式:在OpenWrt下设置好DDNS(可参考),并把Windows10 虚拟机端口转发出来,即可实现使用域名+端口号的方式实现远程桌面连接。

广告2022传奇打金天花板!成都靓仔自研,装备好爆又好卖!×

这里我设置了以下端口转发:

路由器后台;

Windows内网跳板机;

群晖,当然群晖我基本使用自带的QuickConnect;

部署在群晖上的Bitwarden服务

3.3 内网服务器——LINUX虚拟机

安装宝塔面板:由于我是安装的CentOS服务器,所以使用这段代码进行安装:

yum install -y wget && wget -O install.sh&& sh install.sh

宝塔绕过(出除)登录: 使用下面代码:

sed -i "s|if (bind_user == True) {|if (bind_user == REMOVED) {|g" /www/server/panel/BTPanel/static/js/index.jsrm -rf /www/server/panel/data/bind.pl

关于如何借助宝塔面板搭建博客,这里就不在赘述。