我不允许以桥接模式运行我的 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(如我在此处所示)或其他端口以避免问题。