VM虚拟机中的centos7好好的重启后突然无法连接网络问题

背景:

         项目遇到问题,给客户临时搭建的测试环境用的windows机器,搭建的vm虚拟机作为服务器环境,然后客户重启之后发现无法连接网络的问题。首先是本机无法与虚拟机中ping通,检查windows环境与centos环境,发现两边网络通讯的问题。

问题1:极少数情况下才会复现这个问题,是虚拟机或主机非正常关闭导致的,如果是虚拟机非正常关闭,大部分情况下vm虚拟机会自动记录下当前状态,下一次启动可以还原当前状态。但是如果重启电脑之后打开vm发现没有历史的虚拟机,通过路径加载虚拟机后提示已经打开了虚拟机无法加载,这个时候把路径下除了这个文件都删掉即可

VM虚拟机中的centos7好好的重启后突然无法连接网络问题

原因:

         虚拟机未正常关闭或者异常关闭,之前的虚拟机默认是打开的,重启电脑后你在此打开虚拟机类似于你打开了一个已经打开的文件,肯定是不允许的,把它的都关闭相当于之前的操作都删除了,这样就可以打开了。如果你做了什么重要操作想要恢复请不要尝试这个步骤,会让你后悔莫及的。

 

问题2:

          也是无法windows机器无法连接vm虚拟机中的centos7操作系统,排查之后发现在外面的windows机器无法ping通里面的centos机器,然后就首先想到查询两个操作系统的ip,这个时候就发现了问题,本地windows的ip地址是正常的,但是虚拟机里面之前设置好的ip地址不见了!!!对,就是不见了,你可能会说重新设置一下不就成了吗?但是你看,如下图:

VM虚拟机中的centos7好好的重启后突然无法连接网络问题

注意左面的图看红框里面的,红框上面的自动忽略是我模拟关闭的一些东西!!!复现情况就是使用ifconfig命令发现网络端口ens33并没有打开!!!然后在右面的网络连接图标已经没有了,打开设置里面点击网络,发现连本地连接的状态什么的都没有了,只有v*n的选项,新增是增加代理。然后尝试启动虚拟机的网络服务器,一直启动失败,原因就在于你的网络端口没有启动——ens33的状态是down而不是up。

解决办法:

     首先是使用命令 ifconfig ens33 up; 这个命令是启动ens33端口,在启动之前可以先使用ifconfig查看一下自己的端口是否为ens33。接着我们输入命令 systemctl NetworkManager stop;(或者 service stop NetworkManager)这个命令是关闭图形化的网络适配器,如下图所示,你会发现无法进入图形化的网络配置界面。然后我们在输入命令 service network restart 或者 systemctl restart network 命令重新启动网络连接即可。如果喜欢使用页面在重新输入命令service start NetworkManager打开即可。

注:只有极少数情况下才会复现这个情况,并且在我尝试设置临时IP和修改ens33配置文件后也无法解决这个问题,原因是因为ip被networkManager所占用导致和ens33的端口冲突了,所以ens33一直无法抢占资源,所以一直尝试重新启动服务也会导致失败,但是我在其他电脑上复现这个问题重启一下网络服务即可解决问题,具体看实际情况。因为项目机器要使用本机与虚拟机脱机使用,所以只能采用NAT模式进行连接,必须要使用配置的网关,ip地址什么的都在项目包中写死的,不好更改,所以最后逼得不得以才找到这个原因解决办法。仅供参考https://www.cnblogs.com/busui/p/10021725.html

VM虚拟机中的centos7好好的重启后突然无法连接网络问题