我如何从子网的其余部分访问在我的 NATed VMware Fusion 客户机上运行的 Web 服务器?

我如何从子网的其余部分访问在我的 NATed VMware Fusion 客户机上运行的 Web 服务器?

我不允许以桥接模式运行我的 VMWare 客户机,并且我想以某种方式从 Mac 外部网络接口上的约定端口通过隧道连接到在 VMWare fusion 客户机上运行的 Web 服务器。

我的猜测是,我可以以某种方式在 Mac 上运行的 ipfw 中建立一个隧道来支持这一点。

有人可以给我一些指点吗?

答案1

免责声明我还没有尝试过这个,但这是用于工作站,但我相信它应该可以工作

如果您在计算机上运行虚拟机,您可能希望从另一台计算机访问该虚拟机。让我们举个例子:假设您有一个 Ubuntu 虚拟机,Apache 在端口 80 上运行,并且您想让网络上的其他人访问您托管的网站。

我们假设虚拟机正在使用 NAT,并且已分配 IP 地址 192.168.23.128。

首先打开管理虚拟网络开始菜单项:

替代文本

单击 NAT 选项卡,然后单击编辑。您将看到 NAT 设置对话框:

替代文本

单击端口转发按钮,您将看到此对话框: 替代文本

现在我们终于可以看到一个可以实际使用的屏幕了。我们将使用主机上的端口 8080。我们输入 ubuntu 虚拟机的 ip 地址和端口 80。这些端口可以是任何端口。 替代文本

我们应该能够通过以下方式进行测试:http://本地主机:8080在我们的主机上。我们可以通过将 localhost 替换为主机 IP 地址来将 URL 提供给我们的主机。

编辑:

如果您使用 NAT,则虚拟机位于主机级 NAT 地址 (172.xyz) 后面,而您的 Internet 路由器对此一无所知。您可以将端口 80 从路由器转发到主机的 IP,然后配置 /Library/Application Support/VMware Fusion/vmnet8/nat.conf 以将端口 80 请求转发到端口 80 上的虚拟机 172 地址。这需要在 OS X 上关闭 Apache(如果它正在运行),因为这会导致端口冲突。

您的另一个选择是将虚拟机从 NAT 更改为桥接,在这种情况下,您的 OS X 和 Ubuntu VM 将位于同一子网中,DHCP 地址由 Internet 路由器分配。路由器将直接将流量转发到 VM,而无需任何额外的端口转发。

答案2

我希望在 OSX 上执行相同操作(更具体地说,允许手机/平板电脑/设备/人员访问我的 VM 以进行测试目的),并且以下操作完美运行:

我的设置:

Host OSX IP: 192.168.1.72
VM IP:       172.16.67.188

方法:

1)在 VMWare Fusion 上的“网络适配器”设置中选择“NAT”

2)cd 到 vmnet8 目录

    cd /Library/Application\ Support/VMware\ Fusion/vmnet8/

笔记:如果找不到 vmnet8 目录,请尝试运行locate nat.conf,该目录通常是文件所在的位置。

3)编辑nat.conf文件(使用 vim/vi 等)并在下面[incomingtcp]输入以下内容:

    EG: <external port number> = <VM’s IP address>:<VM’s port number>

就我而言,我输入的是:

    [incomingtcp]
    8080 = 172.16.67.188:80

4)保存并退出nat.conf文件

5)运行以下命令重启 VMWare 网络:

    /Library/Application\ Support/VMware\ Fusion/boot.sh --restart

运行时boot.sh,所有到 OSX 主机上端口 8080 的 tcp 流量将立即转发到 IP 为 172.16.68.188 的虚拟机的目标端口 80,并使您的虚拟机可在 192.168.1.72:8080 上的本地网络上使用。

注意:如果您已经在 OSX 上运行 Web 服务器,则端口 80 上可能会发生冲突,因此请使用 8080(如我在此处所示)或其他端口以避免问题。

相关内容