• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

ESXi 配置公网访问 

最近花费大价钱购入了一台工控软路由,打算来做迷你服务器,安装了 VMWare ESXi 做虚拟化。由于家里光纤没有公网,便用frp来做内网穿透,中间折腾许久踩了不少坑,顺便就记录一下笔记。

ESXi

安装采用 VMWare ESXi 6.7,默认自动生成了一个不受信任的证书,内网使用IP访问虽然浏览器有提示不过也不影响使用:

满满都是坑

首先我们使用 frp 来做内网穿透,在 esxi 上开一个虚拟机来跑 frpc,简单配置如下:

由于服务器上使用的是Nginx做 Web Server,我们还需要配置一下 nginx 来对外访问:

尝试通过外网域名访问一下,提示 502 Bad Gateway……

查看Nginx日志,发现报错:

upstream prematurely closed connection,也就是说我们内网的 ESXi 过早的关闭了这个连接。

一番排查之后,怀疑是因为 ESXi 要求使用 https 访问,但是证书却又不受信任导致的。

那有没有什么办法可以忽略 https 么?

Haproxy 二次转发

看了 frp 的配置文档,似乎并没有提供什么解决方法,于是便想是否可以尝试 haproxy 来再做一次转发,并忽略 ssl 校验。

果然,haproxy 的文档中:

于是,我们增加 haproxy 转发:

并修改 frpc 配置:

如此一顿骚操作下来,发现果然可以在外网通过域名访问了,简直想要来个双击666

Nginx配置Https

然鹅……登录的时候竟然发现又出问题了(黑人问号???)

查看了 Chrom 的网络请求,发现登录的时候会自动跳转到 https:

看来服务器上Nginx还是需要配置 https 访问,通过 letencrypt 申请免费的 https 证书,然后修改 nginx 配置:

这下子终于可以正常在外网通过域名访问我们内网的ESXi服务器了。

VMWare远程连接

上面的所有配置最后使得我们能够正常通过浏览器访问,但我们知道除了Web访问,其实ESXi也支持通过 VMWare Fusion(macOS)或VMWare Workstations(Windows)直接连接访问:

在内网的情况下,我们直接填写 ESXi 服务器的IP地址即可顺利连接并访问到虚拟机。不过如果是通过公网域名访问,却会发现正常打开虚拟机,提示:

看来除了前面web端口需要设置内网穿透,还是多配置902端口:

果然一切都正常了。

码字很辛苦,转载请注明来自ChenJiehua《ESXi 配置公网访问》

评论