LarryWons 发表于 2021-12-16 10:25

我的HomeServer搭建小记:ESXI+OpenWrt+Windows10+Linux

本帖最后由 LarryWons 于 2021-12-17 11:40 编辑

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


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


[*]宽带拨号,公网IP
[*]DDNS,在外网访问路由器后台;
[*]Windows10为跳板机,可通过RDP访问
[*]CentOS运行一个Telegram机器人
[*]CentOS搭建一个内网相册分享网站
[*]CentOS搭建GitLab私有代码服务器


一、硬件选择

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


[*]NUC只有单网口,无法做主路由;
[*]DIY太麻烦费时,且目前市售没有好看的CASE机箱;
[*]工控多网口小主机,无风扇设计,外壳硬朗,体积尚可接受


最终配置为:
https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimgphotosphotosdzmchSF6ELgMyKV-20210626094941964.jpg
https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photosYAEw8ah6DvqM4mp-20210626094945287.jpg
https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photosYLetfgxmqWhJZNv-20210626094948504.jpg

[*]CPU:i7-1165G7, 卖家提供赛扬6305、酷睿i5-1135G7、酷睿i7-1165G7可供选择,我选择一步到位!
[*]内存:笔记本DDR4 3200GHz 16GB x 2,最大支持64GB内存
[*]硬盘:mSATA 512GB + 2T SSD
[*]网卡:Intel i210 x 6
[*]其他接口:HDMI 2.0 x 1、USB 3.1Gen2 x 4、COM(RJ45) x 1
[*]电源:DC 12V 5A, 5.5 x 2.5 插头


伪开箱:

https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photoswzFjbqA2fpHyRNr-20210626094952760.jpg
https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photosHzYhUo9dvxb8AS3-20210626094937888.jpg
https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photosnCpwuSiY4fdRQVI-20210626094934311.jpg
https://www-jackeroo-org.oss-cn-shenzhen.aliyuncs.com/blog/photos8pxeIuvHmNRwY1t.png


硬件就简单介绍到这里。



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


2.1 安装底层虚拟机

https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210173005653.png

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


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

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

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



注意事项:


[*]ESXI刚启动安装的时候,按住Shift+O(是字母o不是零),键入以下代码:
cdromBoot runweasel autoPartitionOSDataSize=8192
OSDataSize=8192改成4096也行,这段代码的目的是解除ESXI 7.0自动划分120G虚拟闪存的问题,解决120G硬盘不能安装ESXI7.0的问题。
https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgIMG_1208.PNG
[*]安装过程中,ESXI安装是可视化的安装过程,是需要接键盘鼠标的。
[*]安装完毕之后,按F2进入设置界面,在这个设置界面,需要定义好虚拟机后台的IPv4地址、子网掩码、DNS地址等。这些地址需要提前规划好:
https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimgimage-20211210172626810.png

[*]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固件系统选择:选择非常多,推荐这些大佬打包的固件包:eSirHomeLede.Sirpdboy

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

安装步骤:

[*]登录ESXI,新建虚拟机,名称可任意填写,客户机操作系统选择Linux,客户机操作系统版本选择其他4.x或更高版本的Linux(64位)https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210190802057.png
[*]将系统默认生成的硬盘删除,CD/DVD也用不到可以删除,并设置好网卡。https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210190739963.png
[*]内存一定要勾选预留所有客户机内存(锁定)https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210190708239.png
[*]选择添加硬盘>>>现有硬盘,选择本地的前面转好格式的vmdk文件上传,先上传kb级小文件,后上传大文件;https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210191605173.png https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgimage-20211210191913352.png
[*]保存并开启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固件:下载ISO固件


[*]新建虚拟机,选择对应的Windows系统版本;https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211210210427837.png
[*]内存需要勾选预留所有客户机内存(锁定);硬盘下拉,控制器位置设置为SATA控制器;https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211210210614588.png
[*]在CD/DVD驱动器1,选择下拉的数据存储ISO文件,上传并选择我们的Windows ISO固件;https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211210210732743.png
[*]一直下一步直到完成,在回到虚拟机>>>操作>>>编辑设置,在虚拟机选项中,把引导选项下面的固件,修改默认的EFI为BIOS引导;https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211210211040721.png https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211210210955712.png
[*]启动Windows10虚拟机,和物理装机一样,操作Windows系统安装,直至安装完毕!


2.4 安装LINUX系统

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

安装CentOS虚拟机步骤和物理机下安装CentOS一摸一样,这里过程就不再赘述!实在不会的,可以参考这个咖喱味视频教程 点击前往



三、虚拟机分工
如文章开篇所述,我家的网络拓扑图为如下。

https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimgMy%20Home%20Network.png

3.1 网络拨号——OPENWRT

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


https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211211132909484.png

⚠️额外说明:


[*]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 虚拟机端口转发出来,即可实现使用域名+端口号的方式实现远程桌面连接。
https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211211134905974.png
https://iswott.oss-cn-shenzhen.aliyuncs.com/blog/imgimage-20211211135456640.png

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

[*]路由器后台;
[*]Windows内网跳板机;
[*]群晖,当然群晖我基本使用自带的QuickConnect;
[*]部署在群晖上的Bitwarden服务



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

安装宝塔面板:由于我是安装的CentOS服务器,所以使用这段代码进行安装
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh



宝塔绕过(出除)登录: 使用下面代码:
sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
rm -rf /www/server/panel/data/bind.pl

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



评论区疑问解答:


1、远程访问内网,设置一台Windows跳板机的需求出发点:

——ESXI Server上的CentOS其实运行着一个京东产品比价机器人,可实现给身边的亲朋好友使用。能实现简单的天气预报查询、小爱人工智障、京东产品查券比价、京东撸羊毛,跳板机方便随时ssh进入到CentOS 后台,当然我用DDNS+端口方式也是可以进去的,双保险。


2、散热解决方案:

就原装被动散热,确实存在比较大的问题,机器外壳烫手,目前一起折腾的小伙伴,搞了很多套散热方案出来:

1、亚克力外壳+主动散热风扇
魔改后,抛弃了原装铝壳,体积进一步缩小到12.5 x 12.5 x 3.5 cm尺寸,塞弱电箱不是问题。如下图:



2、原铝质外壳+猫扇+强力双面胶

实测只加猫扇的烤鸡温度

3、原铝质外壳+散热片加强铜箔加强+更换7921硅脂




方案3实测烤鸡温度




3、关于all in one方案的数据安全性问题:

如果你家里有群晖系统,那问题基本不存在,我上个图,大家就明白了。


4、京东查券比价机器人简单介绍(运行在ESXI Server上的CentOS 8)

功能1:发送京东产品链接,机器人返回比价结果信息和下单链接(带CPS返利),如果有优惠券,下单链接会是领券链接;


功能2: 带自动完成任务功能,各位利益相关(包括京东)不用找我麻烦,我使用的是Github上开源程序,代码也不是我写的,用途也仅限我自用!


功能3:带 管理员管理功能,可以简单发送一些指定命令给机器人,让自己人完成升级/查询目的;


机器人不会公开,也不会邀请各位使用,自用自用自用!

xxqwhk 发表于 2021-12-16 11:25

收藏了,鉴于论坛最近折腾openwrt的越来越多了,楼主赶紧出个openwrt自编译教学哈。

LarryWons 发表于 2021-12-16 11:29

xxqwhk 发表于 2021-12-16 11:25
收藏了,鉴于论坛最近折腾openwrt的越来越多了,楼主赶紧出个openwrt自编译教学哈。 ...

Github上一大堆,这个墙内 不适合分享啊。

Wilson163abc 发表于 2021-12-16 12:13

rdp直接远程出去,容易被爆破,慎重

fangfang22 发表于 2021-12-16 13:03

感谢分享,收藏了

ltorpedo1 发表于 2021-12-16 13:09

我的网络结构跟你的基本差不多,不过我是用zerotier建了虚拟局域网,然后不管是用远程桌面还是teamviewer都可以访问家里的网络。

emalf 发表于 2021-12-16 13:37

Wilson163abc 发表于 2021-12-16 12:13
rdp直接远程出去,容易被爆破,慎重

随便换个端口做端口转发会安全点么?

之前就中过招………………

Wilson163abc 发表于 2021-12-16 13:51

emalf 发表于 2021-12-16 13:37
随便换个端口做端口转发会安全点么?

之前就中过招………………

**或者zerotier更好一些

iang4 发表于 2021-12-17 08:27

zeortier每台设备都要装,还是有点麻烦,方便的话,可以在openwrt装一个任何科学工具,都有本地代理(http,socks5或者更强的ssr,v2ray),都能直接内网,装一台windows做跳板,太浪费了= =

wglgren 发表于 2021-12-17 08:31

All in One 的优点是节约,缺点是一爆全爆。
有条件还是多个小主机吧,不差那点电费

zhmmy 发表于 2021-12-17 08:54

原来是gen8做的all in one,后来发现平时不能更新,一旦出问题再处理很麻烦,所以现在一台多网口的群晖nas解决,是真的all in one了,nas也一并解决了。出问题也不怕,白裙可以随便恢复了,也不怕更新出问题了,还节约成本

中岛零士 发表于 2021-12-17 09:04

全是黑话~完全看不懂,但觉得很牛逼~~

coolkuku 发表于 2021-12-17 09:05

感谢分享!
好奇远程访问内网是基于什么需求呢?

DeathStyle 发表于 2021-12-17 09:08

唯一的问题是,小机器没NAS了
你要是用MATX机箱,就能组个4盘位NAS
我最近也在研究这个。
家里有4770K+32G+16T SSD
准备买个ROG M6G+18T HDD*4+IT直通卡+intel x550 t2
组建NVME的ESXI7.0环境+黑群辉万兆NAS直通SATA+OpenWRT软路由
跳板机就不要了,配置虚拟机用自己的X1 Carbon就行了

Sagitar2009 发表于 2021-12-17 09:09

过分牛X系列。。还在用msata真是执念,现在M.2好买。。

nohu_zeta 发表于 2021-12-17 09:12

[傻笑]有公网IP直接搞Open**,加密稳一点。 这个主板的六个网口直通给虚机还能每一个独立分开直通?

山西老王 发表于 2021-12-17 09:20

这小主机配置强悍呀,无风扇散热撑得住吗?

iang4 发表于 2021-12-17 09:30

zhmmy 发表于 2021-12-17 08:54
原来是gen8做的all in one,后来发现平时不能更新,一旦出问题再处理很麻烦,所以现在一台多网口的群晖nas ...

确实,而且可以esxi或者pve直接挂载nas的数据盘(iSCSI,nfs什么的),甚至可以做到无盘虚拟机,做好隔离,完全不怕问题

秋沙雨 发表于 2021-12-17 09:32

我用的也是openwrt软路由,然后连着家里的群晖NAS,NAS也用了QuickConnect,但是无法通过外网访问家里的NAS
openwrt里面的路由转发不知道怎么设置,上次设置错了又重新刷机,搞死我了都没搞好

LarryWons 发表于 2021-12-17 09:37

山西老王 发表于 2021-12-17 09:20
这小主机配置强悍呀,无风扇散热撑得住吗?

就原装被动散热,确实存在比较大的问题,机器外壳烫手,目前一起折腾的小伙伴,搞了很多套散热方案出来:

1、亚克力外壳+主动散热风扇
魔改后,抛弃了原装铝壳,体积进一步缩小到12.5 x 12.5 x 3.5 cm尺寸,塞弱电箱不是问题。如下图:



2、原铝质外壳+猫扇+强力双面胶



3、原铝质外壳+散热片加强铜箔加强+更换7921硅脂




方案3实测烤鸡温度



xiaori1217 发表于 2021-12-17 09:42

保姆级教程

mylachesis 发表于 2021-12-17 09:45

不错,配置顶天了!我是J4125,2.5Gx4,目前就装了爱快做软路由。

LarryWons 发表于 2021-12-17 09:46

秋沙雨 发表于 2021-12-17 09:32
我用的也是openwrt软路由,然后连着家里的群晖NAS,NAS也用了QuickConnect,但是无法通过外网访问家里的NAS ...


好好利用好群晖,设置每天备份虚拟机,只保存最新的3份,崩了以后 只需要在群晖里面恢复就好了。ESXI 肯定是崩不了的!所以这个只涉及到ESXI和群晖通讯。

秋沙雨 发表于 2021-12-17 09:50

本帖最后由 秋沙雨 于 2021-12-17 09:55 编辑

LarryWons 发表于 2021-12-17 09:46
好好利用好群晖,设置每天备份虚拟机,只保存最新的3份,崩了以后 只需要在群晖里面恢复就好了。ESXI 肯 ...

我备份的是win系统盘,我没用esxi,直接装的openwrt,但是我上次设置错转发后,NAS就根本连不上网络直接瘫痪,我只有重新装软路由系统
如果备份了openwrt到NAS,把openwrt路由配置错了,要把软路由与nas接入交换机去进行恢复吗?

610M_20包邮 发表于 2021-12-17 09:55

前两年玩了一圈各种版本的Openwrt,可惜深圳电信欠骂的操作属实太多,根本没法稳定用,现在只能干个爱快安心当咸鱼了

LarryWons 发表于 2021-12-17 10:00

秋沙雨 发表于 2021-12-17 09:50
我备份的是win系统盘,我没用esxi,直接装的openwrt,但是我上次设置错转发后,NAS就根本连不上网络直接 ...

那没法了,上面方案仅限于ESXI Server backup。PVE都不行。

hurry77 发表于 2021-12-17 10:11

RDP直接映射公网确实不可取~~楼主不是有群晖~开个**服务,通过**访问就安全多了~
虽然我没验证过~不过理论上应该可行~

hurry77 发表于 2021-12-17 10:11

V........P..........N
这也算敏感词了?~~~[晕倒]

上山下乡 发表于 2021-12-17 10:23

能不能介绍一下“京东产品比价机器人”哪有程序可以安装?谢谢!

阿崔 发表于 2021-12-17 10:28

外网推荐直接开个Open**,内网服务都统一丢进去。
页: [1] 2 3 4 5 6 7 8
查看完整版本: 我的HomeServer搭建小记:ESXI+OpenWrt+Windows10+Linux