基于vSphere搭建homelab
基于vSphere搭建homelab
type
status
date
slug
summary
tags
category
icon
password
尝试利用FRP把vsphere server暴露到公网IP下,从而实现外部管理和访问虚拟机
先放一张最终的成果
notion image
甚至还做好了SSL
iPad上的vsphere mobile client也可以控制,宛如RDP:
notion image
感谢- youtuber:账户未命名,本篇的操作基本仿照他的操作流程- 一篇博客:https://www.keeponline.cn/2021/06/27/%E9%83%A8%E7%BD%B2Esxi-Server%E5%88%B0%E5%A4%96%E7%BD%91/- 以及其他分享技术的博客网站等等,数量太多列不过来

环境介绍

192.168.1.20: C422平台,Xeon W-2191b, RTX A4000(直通), 安装了ESXi 7.0U3
192.168.1.80: NUC8i5BEH, 安装了第三方加了网卡驱动的ESXi 7.0U3
域名使用mydomain.com代替,我是自己有一个域名,托管在aliyun上,使用aliyun的免费证书
同时该域名也被设置为AD域的域名

创建ESXi主机

就是基本的ESXi安装过程,略过

配置vSphere的环境依赖

这部分的操作主要跟着“账户未命名”的教程走,安装win server,部署AD域、DNS服务器,创建账户,设置并管理分组

安装Windows Server服务器

虽然账户未命名建议使用Windows Server 2016进行安装,但我想试试更新的系统会不会出什么问题,所以这里尝试使用Windows Server 2022版本(到最后也没有出什么问题,当然也可能是我还没有到会出问题的阶段
去next.itellyou.cn下载好Windows Server 2022的ISO文件,登陆ESXi,正常安装虚拟机,进入桌面
给主机重命名为dc-lab,设置固定IP(192.168.1.15)

部署AD域

添加角色和功能,安装AD域服务
notion image
提升为域控服务器,输入域名时输入自己的域名mydomain.com

后续配置

此时可以直接安装vsphere client,不过直接安装不完美,选择继续完成后续的前置环境安装
尝试ping自己 dc-lab.mydomain.com,返回ipv6地址,此时需要修改注册表
新建一个DWORD(32位)值,数值修改为十进制32
重启电脑,再ping,就能返回ipv4地址(不修改据说会出问题
添加DNS解析,正向查找区域,A记录,名称esxi,地址192.168.1.20,此时ping正常
此时,把esxi的主机名也改成esxi,并修改DNS服务器为windows server:
网络--> TCP/IP堆栈--> 默认TCP/IP堆栈-->编辑设置
https://ticket.tieten.cn/kb/zh-cn/20-/131-esxi
将esxi主机加入域,管理-安全和用户-身份验证,此时需要输入Windows server的管理员账户和密码

安装vSphere Server

双击挂载VCSA的ISO文件,打开安装文件
输入esxi.mydomain.com,报错error: vimService creation failed: Error: 0,不知道是什么问题,直接填192.168.1.20
去dns管理器添加正向查找:vsphere.mydomain.com->192.168.1.21
正常配置,创建SSO: vsphere.local,创建administrator@vsphere.local,设置密码
进入vSphere Client,设置集群、vApp等,这部分属于vsphere的正常使用,略过

设置FRP反向代理

这部分是这篇文章的核心,也是出发点,网络上基本没有友好的教程,让我来浅弥补一下

设置DNS解析

去自己的域名提供商设置DNS解析
A记录,mydomain.com->VPS的IP

申请SSL证书

可以去自己的域名提供商申请SSL证书
因为我是在aliyun上买的域名,所以自然也就在aliyun上申请证书
申请好之后下载nginx类型的证书即可
PS:可能需要下载根证书,导入到vsphere client中,但我不清楚这样有没有用/需不需要,但我是导入了

设置FRPS和FRPC

这部分参考之前的文章:
https://www.visionwyz.com/?p=1176
frps借助第三方脚本,frpc使用docker
PS:刚开始我希望可以省点钱,就用部署这个blog的VPS,但中间调了很久也没好,一气之下整了个新的VPS,从零开始部署,一下就成功了

frps.ini

frpc.ini

frpc对应的Docker指令
然后就可以去frps dashboard看到几个连接

设置vSphere Client

如果按照上面这样设置,应该是能看到欢迎页面,但无法登录,预期的报错为:
解决办法:vmware官方有一篇文章讲了这个事:https://kb.vmware.com/s/article/71387?lang=en_us
此时直接访问vsphere.mydomain.com应该就可以正常使用了

加速本地访问(可选)

在外面访问慢一点也就算了,回家之后还是希望可以不用额外设置,就能直接走内网访问vsphere client
思路是在本地架设一台frps,用相同的frpc.ini部署一个容器,把win server中的DNS解析记录改一下,并将其设置为本地网络的DNS服务器
应该是可以的,浅试一手

后记

说起来也简单,配置文件给出来了要再部署也很快,但恰恰就是要映射哪几个端口,具体参数怎么写最麻烦
这篇blog也是我在完成部署之后集中回忆了一下写出来的,可能有一些地方会有疏漏,但整体的框架没有问题,如果有一些小的报错请自行解决
网络上大多数文章和教程都停留在把ESXi暴露出来就可以了,也不管SSL也不涉及vsphere client
其实这样部署我也不知道有没有什么安全性上的问题,密码会不会被暴力破解,又或者SSL也不是全链路(局域网内部没有SSL认证,SSL证书的问题也被frp压制了,不知道会不会有啥问题),如果有更专业的建议也欢迎在下面评论指出
希望这篇文章对想要这样部署的朋友一点帮助
基于Windows Server搭建homelab使用IPMI调整Supermicro X11SRM-VF的风扇转速
  • Utterance