VMware中Ubuntu无法上网。Ubuntu 20.04.1 Activation of network connection failed No Wi-FI Adapter Found
本文记录了在VMware中使用Ubuntu 20时无法上网的问题,并提出了相应的解决方案。最开始虚拟机中一直提示:Connection Failed Activation of network connection failed,最后通过给VMware中的虚拟机添加IP地址的方式,从而解决了使用NAT无法上网的问题。
最近在VMware 16中安装了Ubuntu 20.04.1 LTS桌面版,网络使用的是NAT模式,但是一直无法上网。最开始一直纠结于No Wi-FI Adapter Found
这个问题,后来发现真正的问题所在其实和这个没关系,最后通过手动配置VMware中虚拟机的IP地址解决了NAT无法上网的问题。
No Wi-FI Adapter Found
最开始一直纠结这个问题:No Wi-FI Adapter Found
。
一直以为虚拟机里面上不了网是因为没有WIFI Adapter
。然后就以No Wi-FI Adapter Found
作为问题的关键词疯狂查找,试了各种方法,包括查本机的无线网卡,然后去找相应的驱动,然后想尽办法弄到VMware中的虚拟机中去安装。结果都不行。
什么是Wi-FI Adapter?Wi-FI Adapter就是无线网卡。VMware的虚拟化技术是虚拟出一台计算机,看起来和真实的一台机器也差不多,但是VMware无法将主机的硬件也虚拟化。主机有200G的空间,现在这个虚拟机的运行也要占用空间,假设这个虚拟机运行占用了10G空间,这是主机实打实的分配给虚拟机的,不是凭空虚拟出来的,这个硬件是不能共享的,如果当主机自身的空间都不够的时候,VMware还能成功虚拟出一台虚拟机吗,显然是不能的。同样的:我的主机有无线网卡,但是无线网卡只有一个,是我的主机在用,那就没有多余的无线网卡分配给虚拟机,因此虚拟机是没有无线网卡的。Vmware虚拟出一个虚拟机的时候,无法按照我主机的无线网卡配置给虚拟机也虚拟出一个真正可用的无线网卡。
说到底就是:虚拟机中根本就没有安装无线网卡,自然会出现No Wi-FI Adapter Found
这个问题,除非我们往真实的笔记本上再插一个无线网卡,然后使用这个空闲的网卡来作为虚拟机的无线网卡,这样虚拟机才可以使用无线上网功能。
当我们使用NAT模式的网络时,Vmware会虚拟出一个以太网网卡,这个能说明Vmware可以虚拟硬件吗?
当然是不能。VMware虚拟出来的这个Adapter并不是真正意义上的网卡,虚拟出来的网卡不能提供真实网卡所具有的全部功能,它主要是提供地址转换的作用,虚拟机通过虚拟出来的以太网网卡来连接主机的真实网络,这个虚拟出来的以太网网卡只提供一个地址转换的作用。
来看看NAT网络转换的一个原理示意图。图片来源
通过NAT地址转换,虚拟机内也能上网。虚拟机看起来好像是连接上了VMnet8这个虚拟的以太网网卡,但实际上这根本不是网卡,我们的真实的主机能通过安装的以太网的网卡来连接互联网,这个虚拟的以太网卡能让虚拟机连接上我们的电脑,然后将我们的电脑的网络进行转换供虚拟机使用,说到底虚拟机还是在使用我主机的网络,虚拟机并不是通过这个虚拟的以太网卡来直接上网的。
问题以及解决方案
那为什么我用NAT模式无法上网呢?
最开始连不上网的时候一直这么提示:Activation of network connection failed
虚拟机中也一直提示:Activation of network connection failed
然后回到Vmware中的虚拟机,通过ifconfig
命令可以查看到如下内容。
下面的usb0是我通过USB线连接手机,然后再连接虚拟机,通过USB来共享手机的网络。认真看了一下这张图,我发现了问题所在。通过usb共享网络,我能正常上网,然后发现usb的这个网络的ip地址,子网掩码这些都是有的,但是ens33这个无线网卡却没有,只有一个Mac地址,连IP地址都没有,ens33显然无法上网。
然后我查看了一下我配置的VMnet8的IP地址以及子网掩码。
在我的Windows电脑上查看了一下VMnet8这个网络连接。
点击VMware Virtual Ethernet Adapter for VMnet8的属性,可以看到VMware Virtual Ethernet Adapter for VMnet8的IP地址。
在VMware的网络设置中还可以看到VMnet8的网关地址等内容
然后尝试着给我的虚拟机手动配上IP地址以及子网掩码,网关地址这些内容。这些操作都可以在虚拟机的命令行中进行操作,但是我下面是在ubuntu的图形化界面中进行配置的。
打开设置,在网络这一栏点击如下内容。
IPv4 Method由DHCP修改为手动。然后在IPv4这一栏进行如下配置。由于我在VMnet8中配置的IP地址是192.168.76.1
,连接VMnet8的虚拟机都必须与这个IP地址处于同一子网下,也就是说应该配置成192.168.76.x
的形式,我这里将虚拟机的IP地址设置为192.168.76.10
。DNS
服务器的IP地址设置为和网关
(Gateway)相同就可以,均设置为VMware中配置的192.168.76.2
.
为了以防万一,我还是使用了reboot
命令重启了一下虚拟机。然后再次使用ifconfig
命令查看,会发现ens33的IP地址已经配置好了。
图标这个地方也显示网络连接成功了。
然后ping一下百度,发现也可以ping通。
主机和VMware中的虚拟机也可以ping通了。
我的这个问题终于解决了!
验证VMnet并不是真正的网卡
我关闭了一切需要上网的应用。然后在VMware的虚拟机中ping百度这个网站。
然后打开我主机的任务管理器,查看性能状况。
会发现VMware Virtual Ethernet Adapter for VMnet8
没有发生过任何数据的发送与接收,也就是说这个虚拟的网卡
根本就没有连接上互联网,或者是说它根本就没有使用过网络。
只有我真实主机的无线网卡这里才有数据的接收,也就是说明我主机的那块真正意义上的物理网卡才是作为网卡在时刻工作着的,虚拟网卡也是使用的我主机的网络,它本身并不承担任何上网
的工作。
更多推荐
所有评论(0)