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

我不允许以桥接模式运行我的VMWare客户端,并且我想以某种方式从Mac的外部networking接口上的商定端口隧道到在VMWare融合客户端上运行的Web服务器。

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

任何人都可以给我一些指针吗?

免责声明我没有试过这个,但这是为工作站,但我相信它应该工作

如果您正在计算机上运行虚拟机,则可能需要从另一台计算机访问该虚拟机。 让我们用一个例子:假设你有一个运行在80端口上的Apache的Ubuntu虚拟机,并且你想让networking上的其他人访问你正在托pipe的网站。

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

首先打开pipe理虚拟networking开始菜单项:

替代文字

点击NAT选项卡,然后点击编辑。 你会看到NAT设置对话框:

替代文字

点击Port Forwardingbutton,你会看到这个对话框: 替代文字

现在我们终于可以在屏幕上实际使用了。 我们打算在主机上使用8080端口。 我们inputUbuntu虚拟机的IP地址和端口80.这些端口可以是任何端口。 替代文字

我们应该可以在我们的主机上通过http:// localhost:8080进行testing。 我们可以通过用主机IP地址replacelocalhost来给我们的主机发送url。

编辑:

如果您使用的是NAT,则虚拟机位于您的Internet路由器不了解的主机级NAT地址(172.xyz)之后。 您可以将80端口从路由器转发到您的主机的IP,然后configuration/库/应用程序支持/ VMware Fusion / vmnet8 / nat.conf将端口80请求端口转发到端口80上您的虚拟机的172地址。这需要closuresApache OS X,如果它正在运行,因为这会导致端口冲突。

另外一个select是将虚拟机从NAT更改为桥接,在这种情况下,您的OS X和您的Ubuntu VM将与Internet路由器分配的DHCP地址在同一个子网上。 路由器会将stream量直接转发给虚拟机,无需任何额外的端口转发。

我期待在OSX上做同样的事情(更具体地说,允许手机/平板电脑/设备/人员访问我的虚拟机进行testing),下面的工作是完美的:

我的设置:

Host OSX IP: 192.168.1.72 VM IP: 172.16.67.188 

方法:

1)在VMWare Fusion的“networking适配器”设置中select“NAT”

2) cd到vmnet8目录

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

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

3)编辑nat.conf文件(使用vim / vi等),在[incomingtcp]下面input:

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

就我而言,我进入了:

  [incomingtcp] 8080 = 172.16.67.188:80 

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

5)通过运行重新启动VMWarenetworking:

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

在运行boot.sh ,所有到OSX主机上端口8080的tcpstream量将立即转发到IP 172.16.68.188虚拟机的目标端口80,并使您的虚拟机可用于本地networking192.168.1.72:8080。

注意:如果你已经在OSX上运行web服务器,可能会在端口80上发生冲突,所以使用8080(正如我在这里所示)或其他端口来避免出现问题。