当前位置:首页 » 《关于电脑》 » 正文

彻底解决VM ubuntu在虚拟机找不到网卡无法上网的问题

12 人参与  2024年09月09日 18:01  分类 : 《关于电脑》  评论

点击全文阅读


? 作者简介:大家好,我是Zeeland,开源建设者与全栈领域优质创作者。? CSDN主页:Zeeland?? 我的博客:Zeeland? Github主页: Undertone0809 (Zeeland)? 支持我:点赞?+收藏⭐️+留言??介绍:The mixture of software dev+Iot+ml+anything?

Introduction

本文将介绍如何解决VM ubuntu在虚拟机找不到网卡无法上网的问题,并给出一些排查思路,旨在帮助读者快速定位问题。

最近 vm ubuntu 用的比较多,因为 ubuntu 里面要跑一个 k8s,需要比较大的内存,于是给 VM 分配了 30G 的内存,分配完内存后,发现 VM 里面的 ubuntu 无法上网了,于是就有了这篇文章。Ubuntu 网卡消失的问题我不是第一次遇到了,之前已经预见过好几次了,有的时候重启 ubuntu 就没网卡了,有时候分配完内存就没网卡了,触发机制十分奇怪,我至今也没搞懂。之前各种遇到这个问题之后每次的处理方案都不一样,有点头疼,正好很久没写文章了,趁此机会好好总结一下问题。

Problem

在此,重新描述一下问题:VM ubuntu 无法上网,这是问题的表征,问题的本质是 VM ubuntu 找不到对应的网卡,从而导致无法上网。

网络环境:

VM ubuntu 22.04 LTS宿主机: windows 11内存分配: 30G网络连接: NAT

在我实践中,该问题的发生有两种原因:

给 VM Ubuntu 分配的内存大小发生改变时,可能会触发该问题VM Ubuntu 重启时,可能会触发该问题

Solution

该问题的解决方式比较多样,因为每个人的发生问题不唯一,因此下面将从最简单的解法开始介绍,读者可以根据自己的情况,逐步尝试,直到解决问题为止。

方法一

遇事不决先重启,重启电脑重启 VM,接着再进行下一步的排查。

在这个问题下,可以再尝试重启一下 Ubuntu 的 network-manager 服务,命令如下:

sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start

如果你是使用 systemd 进行管理,可以使用下面的命令:

sudo systemctl restart NetworkManager

有的时候 vmware 找不到网卡不一定是没有网卡,可能只是因为你禁用了,所以用上面的方式可以解决。

Restart 之后,你可以 curl 一下百度或者 google(if you can),看看能不能上网了,如果不能,那么就需要进一步排查了,命令如下所示。

curl www.baidu.com# curl www.google.com

方法二

笔者有一次网络无法使用,就是因为 windows 下把 vmware 的 nat 服务给关闭了,导致无法上网,然而这个服务当初是我手动关闭的,因为当初对其没有概念,因此,如果你没有手动对 vmware 的 nat 服务进行关闭,那么这个方法就不适用于你了。

检查一下 windows 下是否运行了 vmware 的 nat 服务,在任务管理器中可以查看到,如果没有运行,可以手动运行一下,如下图所示:

最后重启 ubuntu 即可。

方法三

如果上面两种方法都不行,那么就需要进一步排查了,首先,我们需要查看一下 ubuntu 的网卡信息,命令如下所示:

ifconfig

如下所示:

(base) zeeland@zeeland-virtual-machine:~$ ifconfigbr-d53b2b57ad37: ...docker0: ...lo: ...utun: ...veth214b03a: ...

可以看到,当前运行的网卡,基本上都是给我的 docker 用的,并没有看到如 eth0, ethe33, enp0s3 这样的网卡信息,那么就说明物理网络接口没有启动,因此没有显示在ifconfig输出中。

ifconfig 并没有显示所有的网络接口。虚拟机被配置为仅使用虚拟网络接口,要获得所有网络接口的完整列表,包括关闭的网络接口,可以使用 ip link 命令:

ip link show
(base) zeeland@zeeland-virtual-machine:~$ ip link show1: lo: <LOOPBACK,UP,LOWER_UP>...2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000    link/ether 00:0c:29:fa:5a:57 brd ff:ff:ff:ff:ff:ff    altname enp2s13: br-d53b2b57ad37: ...4: docker0: ...6: veth214b03a@if5: ...7: utun: ...

可以看到,在我的 Ubuntu 中,ens33 这个网卡应该是我 NAT 服务所需要使用的网卡,但是它的状态是 DOWN,因此,我们需要手动启动它,命令如下所示:

每个人的网卡名字可能不一样,eth0, ethe33, enp0s3 等等,因此,需要根据自己的情况进行调整。

sudo ip link set ens33 up

启动接口后,您可能还需要将其配置为通过DHCP获取IP地址或设置静态IP地址,具体取决于您的网络设置。如果使用DHCP,则可以使用dhclient命令:

sudo dhclient ens33

重启一下 NetworkManager 服务,命令如下所示:

sudo systemctl restart NetworkManager# sudo service network-manager restart

这个时候,你可以再次使用 ifconfig 命令查看一下网卡信息,正常状态下,你应该可以看到对应的 ens33 网卡信息了,尝试 ping 或者 curl 一下。

curl www.baidu.com

至此,问题应该已经解决了。

Conclusion

本文介绍了 VM ubuntu 无法上网的问题,以及对应的解决方案,希望能够帮助到读者,如果你有更好的解决方案,或者没有解决问题,欢迎留言讨论。


点击全文阅读


本文链接:http://zhangshiyu.com/post/157502.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 李成功金嘉兰(产子第二天,月嫂哄我儿子喊她妈)最新章节免费在线阅读_李成功金嘉兰(产子第二天,月嫂哄我儿子喊她妈)全章节在线阅读(笔趣阁)
  • 热推《程辰许清何泽》程辰许清何泽~小说全文阅读~完本【已完结】笔趣阁
  • 被全家害死在哀牢山后,我杀疯了尤向兰赵小燕最新好看小说推荐_最新全本小说被全家害死在哀牢山后,我杀疯了_(尤向兰赵小燕)免费小说在线阅读
  • 免费小说《尤向兰赵小燕》已完结(尤向兰赵小燕)热门小说大结局全文阅读笔趣阁
  • 被全家害死在哀牢山后,我杀疯了尤向兰赵小燕完结版小说全文免费阅读_免费完本小说被全家害死在哀牢山后,我杀疯了(尤向兰赵小燕)完本热门小说
  • 《被负心渣男欺骗后,灵魂互换的我彻底杀疯了》(郑江明明)在哪看免费小说_完整版免费全文阅读《被负心渣男欺骗后,灵魂互换的我彻底杀疯了》郑江明明 -
  • 《我服婚役后,帝君他四海八荒抢新娘!》(金乌昊天泽)免费小说免费阅读_免费完整版小说《我服婚役后,帝君他四海八荒抢新娘!》(金乌昊天泽) -
  • 零基础Java第十九期:认识String(一)
  • C++ —— 以真我之名 如飞花般绚丽 - 智能指针
  • JavaScript 读取及写入本地文件
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.21——动态内存管理
  • 前端流式播放TTS语音:技术细节与实现

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1