情景:
物理机外网为IP为A
虚拟机的NAT 内网ip为B
现在想通过ip A访问内网ip为B的虚拟机。
原理:
web服务器使用80端口,所以只要做80端口的映射就好了。
SSH的默认端口是22,也要做映射才能SSH登陆。
两者均是基于TCP协议。
先查看虚拟机的内网ipB:
ifconfig
![](https://i-blog.csdnimg.cn/blog_migrate/b4fa806fdc25fd1f42937e592b57b212.png)
然后编辑VM的虚拟网络:
编辑->虚拟网络编辑器
1.点击更改设置
2.选中NAT模式后,点击NAT设置
![](https://i-blog.csdnimg.cn/blog_migrate/1e79cb39c1608ed00faee9fdaf41d06a.png)
添加端口转发:
![](https://i-blog.csdnimg.cn/blog_migrate/304ff9e51f633602403941f148e67352.png)
主机端口:物理机的端口
做80和22端口的映射
![](https://i-blog.csdnimg.cn/blog_migrate/9f0bf8b538ea978d85614a3ede43a1f0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/292d261f7af1c94dd110d1f9dc11ce1d.png)
这里虚拟网络就设置好了。
然后在windows防火墙添加入站规则,开启这两个端口的访问权限。
打开防火墙,高级设置>入站规则>新建规则:
![](https://i-blog.csdnimg.cn/blog_migrate/38296f78e2fdf5ddc4fe496e5b6d786f.png)
然后选择按端口>用于TCP>特定本地端口>输入刚刚映射的端口。就完成了!
现在就可以从外网IP A访问到虚拟机了!
但是这样做会导致物理机的80端口被映射到虚拟机上,所以物理机上通过80端口的web服务器就不可用了。这样可以带来一定的便利,如果还想使用物理机的80端口,那么可以将其他端口映射到虚拟机的80端口上。