最近在实习项目中遇到一个问题。因测试需要,本人在win7上安装VMWare后在启动两台ubuntu服务器。两台主机的网络配置全部采用NAT方式实现连接。之后一路畅通,主机ping通虚拟机和外网,虚拟机之间互相ping通,且ping通主机和外网。由于需要外部客户端访问ubuntu服务,需要访问其特定端口跑的程序,可却一直ping不通...请求了师兄和谷哥度娘后,采用下面方法解决了,分享方案。
![](https://img-blog.csdn.net/20150714175220419?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714175354825?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714175736716?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714175849196?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714183750789?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714183813190?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714183942907?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714184024784?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714184458667?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714184248219?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150714184437935?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
分析原因
由于虚拟机采用NAT方法,其网络地址为主机子网网络,访问外部网络自然先走网关然后踩着主机的肩膀可大大咧咧随便访问外网,可是外网找不到虚拟机网络端口,可是我们找得到win7主机。所以,我们采用借助主机win7来做代理进行端口转发。解决方法
(1)打开VMware软件,选择“编辑”→“虚拟网络编辑器”
(2)选择NAT模式后,点击VMnet信息中的“NAT设置(S)..”进行NAT配置
(3)进入NAT设置后,点击“添加”添加端口转发
(4)进入添加页面后填写转发信息
图中填写的信息场景为:当外网想要访问“192.168.204.129:3000”的内容的时候,由于访问不到192.168.204.129,所以访问“<主机IP>:<5050>”来代替。也意味着主机上5050的端口暴露的内容实际上会链接到虚拟机的内容。
(5)成功添加端口转发,可进行访问
按照上述的做法,一般是可以成功访问到虚拟机上的程序的。但是有些主机由于防火墙的限制可能导致外网访问不到资源,因此我们可以采取以下的做法。
(1)打开“控制面板”→“Windows防火墙”,点击“高级设置”
(2)点击左上角“入站规则”,然后点击右上角“新建规则”
(3)选择“端口”,点击“下一步”
(4)选择“TCP”(根据实际情况),在“特地给本地端口(S)”写上需要访问的端口,点击“下一步”
(5)默认选择“允许连接”,点击“下一步”,之后继续“下一步”
(6)填写“名称”、“描述”,点击“完成”
至此完成所有配置工作。