我在Windows 10主机上运行了一个运行Ubuntu 18.04客户机的VMWare Player(14.1.2 build-8497320)。 Ubuntu guest虚拟机有一个运行一些Web应用程序的LAMP堆栈。我正在使用NAT将Ubuntu guest虚拟机连接到Windows主机的网络。
我可以使用来自Windows主机的guest虚拟机的本地IP地址(例如,http://192.168.80.128/mediawiki)来访问这些应用程序。但我想从我的Windows主机:http://localhost/mediawiki这样访问它。我认为如果我可以将我的Ubuntu guest虚拟机的端口80转发到Windows主机的端口,这应该是可能的。
我该如何做到这一点呢?我无法访问VMWare Workstation及其虚拟网络编辑器。
编辑:我应该添加想要这样做的动机。基本上,我想避免每次访问Web应用程序时都弄清楚虚拟机的IP地址。
(进一步)原因是Ubuntu guest虚拟机的本地IP地址可能(我怀疑)发生了变化,这将影响很多事情,例如webapps配置文件中配置的基本URL(例如,$ wgServer变量)在MediaWiki的LocalSettings.php中)。
例如,您可以使用SSH隧道来完成。 从Windows打开一个隧道从Windows端口80到ubuntu端口80。 你可以在Windows上使用Putty并在ubuntu上运行ssh deamon,我想你应该已经有了。
有很多关于如何做到这一点的教程。我只会添加一个链接,但您可以随时谷歌查找并找到一个适合您的链接。
Portforwarding with SSH (Putty)
对于guest虚拟机的可能更改:
如果您无法在设置中修复IP,那么您可以编辑Windows主机文件并为当前的Ubuntu ip添加主机名。然后使用主机名构建URL。如果ip更改,则在hosts文件中更改它。
VMWare Player本身支持通过NAT进行端口转发:
在文件C:\ProgramData\VMware\vmnetnat.conf
下面的部分[incomingtcp]
一行如下:
80 = 192.168.80.128:80
然后重启VMWare NAT服务:
net stop "VMWare NAT Service"
net start "VMWare NAT Service"
来源/信用:https://hitchhikingtheweb.wordpress.com/2014/09/02/portforwarding-with-vmware-player-and-nat/