我相信,用过 VMware 开 Ubuntu 虚拟机都遇到网卡无缘无故的丢失的问题,而且还解决不了的那种;
在网上找十个方法都是不起作用的,比如Nmcli 重新启动网络、ifdown 和 ifup 命令重新启动网络、设置静态IP等都没有效果,都是恢复快照或者重装解决。
这次就给我遇到了,按照以往的习惯我肯定会重装或者恢复快照了,但是这次发现竟然没有保存快照,里面又太多环境重装又麻烦;死马当活马医,这次终于找到一个很好用的方法了,能彻底解决这个丢网卡的问题。
问题原因: {#问题原因:}
Ubuntu 虚拟机内无征兆的丢失网卡,导致无法联网,在状态栏以及终端都看不到网卡,ifconfig 查看网卡信息只有本地回环地址的信息,重启N次无用的。
使用 ifconfig
命令查看只有本地回环地址的信息,网卡都不见了:
使用 ip addr
是可以看见网卡(ens33、ens38)信息的,就是没有显示有连接的信息:
好像只有 Ubuntu 出现这种问题,之前使用 Centos、Debian 都没有遇到过,可能是他们的网络配置之前存在差异导致的。
解决方法: {#解决方法:}
需要修改 NetworkManager.state
和 NetworkManager.conf
的配置文件,为了方便直切换 root
用户进行修改:
|-----------|-----------------|
| 1
| sudo -i
|
查看网卡信息:
|-----------|-------------------------|
| 1
| lshw -c network
|
如果这里查看不到任何网卡信息,那就只能重装了。
先把网络服务给停止了:
|-----------|-------------------------------------|
| 1
| service NetworkManager stop
|
把 NetworkManager.state
文件删除,后面会自动重新创建;删除前我们最好先备份,后面出问题还能进行恢复
|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5
| # 备份文件 cp /var/lib/NetworkManager/NetworkManager.state /var/lib/NetworkManager/NetworkManager.state.backup # 删除文件 rm /var/lib/NetworkManager/NetworkManager.state
|
修改 NetworkManager.conf
配置文件:
|---------------|------------------------------------------------------------------------------------------|
| 1 2 3
| vim /etc/NetworkManager/NetworkManager.conf # 将 managed 后面的 false 修改为 true (如下图)
|
修改完成之后进行保存,然后启动网络服务就可以了,网络就重新恢复过来了:
|-----------|--------------------------------------|
| 1
| service NetworkManager start
|
这时候打开设置--》网络,就可以看见已经连接上网络了,Ubuntu 的网络就这么修复回来了
如果上述方法还是恢复不了网络的,可以参考以下文章进行操作: