我有一台运行 ESXi v5.0.0 的家庭服务器,其中 VM 客户操作系统(linux)已启动并正在运行。
我已经安装了 apache 2.x 并在我的计算机上提供服务(即,当我转到http://本地主机)
我也可以通过我的内部 IP 192.168.1.X(对我的路由器来说是静态的)访问它。ESXi 主机也有一个 IP(也是静态的),但当然与 VM 不同。在我的路由器中,我将端口 80 转发到 GUEST OS 内部 IP,但这似乎不允许外部访问来宾操作系统上的 Web 服务器。
我已经验证了 ESXi 配置中的网络已将虚拟机置于 VM Netowrk 上并连接到主机的 NIC。(来宾操作系统可以访问外部世界)。
我已经验证我有正确的外部 IP 地址(并且我可以从外部访问主机 [通过临时将端口转发到主机端口])
注意:主机上只有1张NIC卡。
底线是,我如何让客户操作系统能够接受来自外界的流量?
这是我第一次尝试使用 ESXi,因此如果有任何相关信息可以帮助我解决此问题,请告诉我。
答案1
我会采取的一个步骤是查看数据包是否到达了你的客户机。在你的 Linux 主机上运行
tcpdump -i eth0 tcp dst port 80
用“eth0”替换您的接口名称。运行该程序后,尝试访问您的页面(我建议使用“网络外部”主机,例如使用运营商互联网而不是 wifi 的手机)。当您请求页面时,如果您的客户操作系统正在接收数据包,您应该会看到 tcpdump 吐出的数据包。如果是,请尝试检查防火墙或您的 Web 服务器配置。如果您没有看到 tcpdump 的任何输出,那么我会开始查看路由器或主机。