外网访问vm虚拟机
一、准备
-
外网ip:39.189.8.5
- 访问https://www.ip138.com 可以查询外网ip
-
内网主机ip:192.168.1.6
- win+r,cmd->ipconfig 得到内网ip
-
虚拟机ip:192.168.3.11
二、外网访问主机电脑
- 本例以访问本机远程桌面为例
- 远程桌面端口3389
1、防火墙添加3389端口
- 控制面板->系统和安全->Windows Defender 防火墙->高级设置->入站规则
- 查看是否有开放3389端口,如果没有,点击右上角的新建规则进行添加
2、配置远程桌面
- 计算机->右键属性->远程设置
3、配置路由器(本例为水星路由器)
- 高级设置->高级用户->虚拟服务器
- 添加一条内映射到内网主机的地址
4、测试访问
- 在别的电脑上远程连接测试下
- 输入外网ip:39.189.8.5
三、外网访问VM虚拟机
- 本例在vm虚拟机上安装了yapi做测试
- 虚拟机ip:192.168.3.11
- 测试访问虚拟机web:192.168.3.11:3000,可以访问
- 思路:路由器的虚拟服务器只能添加本网段的ip,所以需要将vm虚拟机的应用映射成192.168.1.6:3000能访问才行,然后再通过路由器将192.168.1.6的3000端口映射到外网,这样就可以通过外访问vm虚拟机了
1、配置虚拟机
- 设置->网络适配器->NAT模式
- 编辑->虚拟网络编辑器->VMnet8->NAT设置->添加端口
2、测试本机访问3000端口
- 本机ip:3000
3、防火墙增加3000端口
4、路由器映射
5、测试访问
- 外网ip:3000
四、域名配置
-
经过以上配置,已经可以通过外网ip来访问虚拟机上的web了,但是光猫重启ip地址就会变,所以我们可以配置一个域名,这样访问域名即可
-
我们使用免费的花生壳来做域名访问,在路由器中配置花生壳帐号,如下图,(没有帐号可以去官网注册,https://hsk.oray.com/)
-
通过域名加端口号即可以代替以上的ip地址访问了
-
最好不要使用客户端的花生壳来做穿透,除非你有很多钱,该软件默认可以映射2个端口地址,而且有流量、带宽等限制,通过以上路由器的配置,只是将域名解析下,无任何限制,可以设置N个访问
五、遇到的坑
1、路由器wan地址和外网ip不一致
- 这是遇到最大的坑,困扰了我一天,由于我用的是移动公司的宽带,通过拨号,移动公司分配给我的是他们内网的ip,
因此我用外网ip访问始终不行,不管我设置防火墙还是配置路由器,都不行 - 解决方案:打电话给10086,经过3轮沟通终于同意将我的ip改为外网ip
- 验证问题:打开路由器找到常用设置->上网设置->ip地址,查看该ip是否和外网ip一致
2、注意防火墙
- 开放的端口需要在防火墙入站规则中添加端口