Vmware虚拟机无网络的排查思路

文章访问量:

网卡/DHCP/NAT

第一次碰vmware,大概率会在“怎么才能给虚拟机联网”这个问题上栽跟头。

我非常清楚的记得,自己几个月前用虚拟机的时候还是有网的。然而前几天再用的时候就没网了。经过我半个小时的一阵捣腾之后网络成功恢复。但在虚拟机重启之后又没网了。

本文主要是讲讲什么会导致虚拟机没网,等自己碰到这种问题的时候可以考虑从这个角度入手。不过像虚拟机没网这种问题,如果不想百度,而是想自己排查的话,那么除了基础的计网知识,还得懂点基础的Linux指令。

我直接起手就是一个输入

ip a

可以看到我的虚拟机只有一张网卡且无IP。至于你网卡的名字是eth还是ens,这个问题不大。主要在于要看它的状态是UP还是DOWN,以及它是否有IP地址。

正常的网卡应该是图中这样

当然你也可以验证一下这是不是导致你没网的问题所在。验证的方法也很简单,先通过ifconfig启用网卡

ifconfig ens33 up

再ip a看一看网卡状态,可以看到ens33网卡的状态是UP

接下来试试通过dhclient来获取IP地址。

dhclient -v

可以看到能正常获取到IP,获取到的IP为192.168.37.131。

这个时候再打开浏览器,诶,能访问成功了。说明问题就出在网卡这块。

不过这只能解一时之急。ifconfig的操作不会保留,在重启之后网络又会恢复原状。当然,知道了问题出在哪之后,解决方法也有很多。如果你装了network-manager的话,可以直接用nmcli指令来托管虚拟机的网络状态。

apt-get install network-manager #安装
nmcli #查看网卡状况
nmcli n on #启用托管

如果你没装network-manager……最省事的还是先手动DHCP获取IP连上网然后安装。如果你实在不想安装,也可以自己配置静态IP。需要注意的的是Ubuntu23.04和之前的Ubuntu版本相比,网卡配置文件的路径在/etc/netplan,而非/etc/network/interfaces路径下。

理解虚拟机是如何联网的,能更好的排查网络不通问题。这里讲讲比较麻烦的NAT模式。

在NAT模式下,虚拟机由一个虚拟DHCP服务器分配IP,并按照以下顺序与互联网进行通信。

虚拟网卡(ens33)->虚拟交换机(VMnet8)->虚拟NAT设备->主机网卡

当然,在主机上你还可以在“网络适配器”中找到一个名为“VMware Network Adapter VMnet8“的虚拟网卡。不过该网卡不是拿来联网的——该网卡直接与虚拟交换机VMnet8相连,相当于主机与虚拟机间的数据通信口。

网络拓扑图的话大致如下,画的比较简便。

要验证“VMware Network Adapter VMnet8“不用于联网也很简单。先禁用掉它再在虚拟机上访问网站,可以发现没有影响。但主机无法ping通虚拟机。

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x