2008年,我写了一篇如何设置VMware Workstation虚拟机的双网卡来实现让外网访问虚拟机,此后有不少朋友给我发邮件或是留言,询问单网卡局域网下或是单公网IP下如何实现类似功能。在我一一进行答复后,心里头就想写一篇来解答朋友们的疑问。时隔两年多后,咱们来分享VMware Workstation虚拟机单网卡单公网IP下实现让外网访问虚拟机的方法。
网络拓扑
首先呢,一般情况下,除了机房托管的机器外,单位或是个人家庭等的网络服务器一般会比较少直接分配公网IP,三种网络模式简图如下:
理清思路
知道了以上的网络拓扑结构后,咱们要做的事情就很清晰了。首先,了解VMware三种网络模式的区别在哪里。其次,根据不同的网络环境,使用不同的VMware网络设置:
家用和公司或单位,因为机器处于内部局域网,能用的IP地址比较多,因此可以采用默认的Bridged方式,Bridged方式一般无需设定,建立虚拟机的时候一路next,默认的就是Bridged方式。如果要实现双网卡模式,可以参考我上一篇文章:《VMware Workstation虚拟机实例:让外网访问虚拟机》。
本文重点,也是众多朋友询问过的:机房里单IP的服务器安装虚拟机给外网提供服务的模式。也就是上方图片中的模式3。这种模式下,由于IP地址唯一,无法使用Bridged方式了。Host-Only模式为全封闭的模式,只能访问到宿主(Host),甚至连外网都无法连通,所以Host-Only模式排除掉。于是,我们眼里就剩下NAT模式了。
单网卡机器VMware Workstation的NAT设置
根据上面的分析,咱们的思路很明确。就是使用VMware 的NAT网络模式。那么接下来主要有如下两个要点:
Port Forwarding
- 使用VMware的NAT网络模式后,找到虚拟机的IP地址。虚拟机的网卡为DHCP模式,请进入虚拟机内查到虚拟机的IP地址,比如本文中的例子是Ubuntu的虚拟机,下图中的红圈内的就是虚拟机的IP地址:
- 在VMware Workstation主界面上点“编辑”-“编辑虚拟网络”,如下图:
- 打开VMware Workstation的虚拟网卡编辑界面。
找到模式是NAT的那张虚拟网卡,点中后,再点下面的NAT Settings… 如下图红圈位置:
- 在NAT Settings的标签页中,找到Port Forwarding的内容,按如下图的红圈中的那个Add按钮开始添加:
- 在弹出的标签中,从上到下填写和选择宿主监听的端口、端口协议类型、虚拟机的IP地址、虚拟机监听的端口、描述。设置好后,一路按OK回到虚拟机主界面即可。下图是我虚拟机对外开放HTTP服务的80端口的设置图:
- 需要注意,如此设置的时候,Host port的端口必须是宿主并未监听的端口,否则会出错。
- 设置成功后,使用netstat命令即可看到宿主已经监听了我们填写的端口,监听该端口的程序是vmnat.exe
- 如上设置后,剩下的就是测试了。如果是家庭或是企业,可能还需要在路由器或是防火墙上设置端口映射到宿主
- 经过设置后,外网访问80端口的时候,NAT的Port Forward就会把访问请求转发到虚拟机上,大致如下图:
路由器或是防火墙上设置端口映射
这个比较难说清楚,不同品牌的路由器、防火墙的设置方式都不一样。我这里给出D-Link DI-624的端口映射的截图:
关于这部分的设置,大家可以去百度和google上搜索看看,有很多的教程。至于防火墙,一般都有详细的说明书或是厂家提供技术支持。
网络测试
配置好了之后,还需要进行网络测试。
- 得知目前的外网IP地址(固定IP的用户可以胡略此步骤),打开 ip138这个网站就可以知道自己当前的IP地址。
- 请您网络上的朋友帮忙测试。
- 使用网络上一些免费的网站状态检测服务,这可以从搜索引擎上找到不少。
结束语,时隔两年,炜煜自己电脑中使用的虚拟机已经从VMware Workstation6变为VMware Workstation7了。不少朋友问的就是VMware Workstation7的虚拟网卡设置,其实大家仔细看图的话,会发现虚拟网卡设置这部分变化不大。另外,这篇文章写得很粗浅,目的是为了帮助大家在最短的时间内实现目标,可以说只是一个治标的方法。但是炜煜个人能力有限,工作重心也不是这个,所以面对深层次的东西就无能为力了。如果对于文章内容有任何想法,欢迎留言或是发邮件讨论。
文章作者:施炜煜