解决NAT模型下使用Xshell连接虚拟机显示22端口connection failed问题
- [1. 问题说明](#1. 问题说明)
- [2. 问题解决](#2. 问题解决)
- [3. 总结](#3. 总结)
1. 问题说明
在使用VM创建虚拟机时,往往进行课程学习时候会按照视频中讲师的操作进行手动的虚拟机ip地址的设置,比如下面课程视频中的设置

此时虚拟机的ip信息就被强制更改过来了,如下

然后自己也是按照相同的操作进行设置,在使用xshell进行连接时候总是显示无法连接,如下

2. 问题解决
问题的关键在于,自己的设置的网络ip与创建的本身的VM中自带的虚拟网络配置的ip网段是不一致的

从上图中可以看到VM中的NAT设置的子网ip为192.168.10.0,而按照教学视频中的设置的ip地址为192.168.79.10。显然,两者之间的网段是不一致的,也就导致了始终无法连接。
视频中的老师的子网ip就是192.168.79.2,所以他设置第三位数值为79没有问题,而自己的虚拟机上的子网ip第三位是10,因此需要根据自己的情况进行设定,所以就将ip地址重新修改一下就行,如下

修改完后,进行应用保存,然后再次查询自己虚拟机的ip地址,如下

在终端中进行查询,如下

此时,ip地址核实无误,再次回到Xshell中,将ip信息进行修改后确认连接,此时就会跳出一个SSH安全警告窗口,如下

点击接受并保存后,就可以正常连接虚拟机了。如果设置的有验证密码,还需要进一步进行验证身份(这个就是在创建虚拟机时候的密码),如下

此时Xshell的窗口终于不再是connection failed的提醒了,而是connection failed啦。

3. 总结
这个Xshell连接虚拟机,往往是大数据入门的第一课,这个过程出问题对学员的心态和积极性打击会很大,很多课程中的讲师都没有提及到这个问题,连接不上就是防火墙,ssh没有,ping能不能接通,巴拉巴拉一大堆的,实际上最重要的就是核实自己的VM虚拟机的子网ip是不是和创建的自定义ip在同一个号段。
梳理完结,撒花✿✿ヽ(°▽°)ノ✿