主机连不了虚拟机(血泪教训)

1、现象

很久本地没玩linux ,今天xshell 连接不通,排查了2、3天,记录一下。

 连接的现象是,Could not connect to '192.168.92.128' (port 22): Connection failed。

2、还原网卡默认配置(不建议,血泪1),VMnet8 、VMnet0配置经验

上网查询后,建议这个(不要听这个建议)

 

我还原后,整个 VMnet8 、VMnet0消失了

 这两个都没了,想复原网卡VMnet8,查了一遍资料,如下(千万别信)

让我打开这两个服务(有点扯),我搞了半天每次都是打开后自动关闭 ,就算打开了也没解决,后来证明跟这个没关系,第二点下载软件,我没试,我觉得不靠谱。

最后重装了VMware解决了问题,所以别轻易还原网卡配置

 3、NAT网络模式

网卡配置好以后,主机还是连不上虚拟机,理解一下这个NAT原理。

原理:VMWare安装后,会给宿主机安装VMNet8网卡,同时虚拟出一套VMNet 8 使用的虚拟路由(包含交换机和虚拟DHCP服务器),主机和虚拟机实际上都是通过虚拟路由通信,虚拟路由通过宿主使得其他虚拟机也可以访问外网

如图

主机连不上虚拟机,若想连上,必须互相ping通

首先确保服务是开启的

4、主机ping虚拟机不通

查看主机Vmnet8,ip 地址192.168.33.3

 查看虚拟机IP

 虚拟机和VMnet8不在一个网段上,一个在192.168.92.网段,一个在192.168.33网段导致不通,

解决:设置成相同网段(不需要重启)

 

 可以ping通。

总结:主机ping虚拟机不通,是主机的Vmnet8 网卡IP网段(此示例192.168.33)与虚拟机IP网段(此示例192.168.92)不在一个网段上,所以必须保持一致,注意一定不能将主机的Vmnet8网卡IP与虚拟机IP设置成一致,否则IP冲突,主机肯定连不上虚拟机了

 5、虚拟机ping主机不通(虚拟机连不上外网的原因)

 cmd 执行,ipconfig

虚拟机ping主机不通,查看NAT模式中VMnet8网卡的子网地址,在网段192.168.22

解决:设置成与虚拟机IP 网段一致(不需要重启)

 

 可以ping 通。

 总结:虚拟机ping主机不通,是虚拟机的Vmnet8 (不同于主机Vmnet8)网卡IP网段(此示例192.168.22)与虚拟机IP网段(此示例192.168.92)不在一个网段上,所以必须保持一致,这样才能连上外网。注意一定不能将虚拟机的Vmnet8网卡IP与虚拟机IP设置成一致,否则IP冲突。

6、互ping通总结

联通的方式肯定是:虚拟机的Vmnet8IP网段=虚拟机的IP网段=主机的Vmnet8IP网段,且IP各不相等。

 如图

1)、虚拟机能上网跟红线有关,与紫线没关系。
2)、主机连接不上(通过xshell SSH)虚拟机,跟紫线有关,跟红线无关。所以网上说的主机连不上虚拟机保证虚拟机连上外网,根本就是扯淡。
3)、建议3者网段保持一致,虚拟机的Vmnet8IP网段=虚拟机的IP网段=主机的Vmnet8IP网段,且IP各不相等。这样虚拟机既能上网,主机又能连接虚拟机。

 7、主机 telnet 虚拟机 22端口不通(血泪教训2)

 我都互相ping通了 理论上主机可以连接虚拟机了,然而还是

Connecting to 192.168.92.128:22...
Could not connect to '192.168.92.128' (port 22): Connection failed.
绝望了,我决定telnet一下,果然telnet不通,要主机能连上虚拟机必须能telnet通。

我就又网上找了一堆方案,说我telnet客户端没开启,我是开启着的,也有说是window自带Hyper-V虚拟服务的干扰,我没有勾选。

 

 依然telnet 不通22 端口,还有让我关闭windows 防火墙的,事后发现没半毛钱关系。

1)、我开始找linux的防火墙问题

关于防火墙,CentOS7用了firewalld ,而不是iptables 我在网上找问题时,还有iptables的命令,我执行发现没有,特地装了iptables(没必要),后来发现那是centos6的命令,真坑啊

 ① 查看状态: systemctl status firewalld (Centos 7的命令)

 

 运行正常,这里推荐常用防火墙命令链接CentOS7使用firewalld打开关闭防火墙与端口 - 莫小安 - 博客园

② 查看所有打开的端口: firewall-cmd --zone=public --list-ports

 没有任何端口,网上建议我 firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效),也有人建议我关闭防火墙,但是其实跟这些没关系,也就是说主机连不上虚拟机跟你防火墙没关系

2)、我开始找linux中的SSH服务问题

① 查看SSH服务是否存在

 ps -ef | grep ssh

 服务是有的

② 查看端口是否正常

etstat -antulp | grep ssh 查看端口

 正常的

③ 还可以去重启ssh 命令: service sshd start

 都是正常的,还是telnet不通,崩溃了。

 8、找到原因(其他软件导致连不上)

还是不能放弃,我在想为什么相互能ping通,就是telnet不通呢,我找了网上很多解决办法,都差不多,没能解决我的问题,我觉得我碰到特殊情况了,而且我笃定是windows的问题,因为我重新建了一个虚拟机还是一样有问题,一切都是有理可循的,我想了很久,想起了前一个星期装了一个代理软件,长这样,我尝试卸载这个,果然就好了。

 telnet 192.168.92.99 22 通了

xshell 也连接成功成功

这个软件要配代理服务器,之前有个项目用到这个软件,万万没想到是这个问题啊。我不甘心,准备重装这个试一下,输入

 在这个软件里找到这么一句话

 telnet.exe 不能走我配的代理地址,读取链接超时。

我相信没有人会碰到我这种奇葩的问题,就是自己搞了自己,但一定要相信的是,一切都有理可循,永不放弃!

  • 23
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值