
打开虚拟机却发现右上角网络图标带着感叹号浏览器打不开ping外网全不通——这个场景我遇到得太多了。VMware没网这个问题说大不大说小不小有时候重启一下服务就好有时候查了半天却一点头绪都没有。它最磨人的地方在于“症状都一样病因却五花八门”有人是VMnet8虚拟网卡没了有人是NAT服务没启动还有人纯粹是虚拟机里自己配错了IP。这篇内容我就把VMware虚拟机断网的排查思路完整捋一遍从“判断是哪种没网”开始到服务、虚拟网卡、虚拟网络编辑器、虚拟机内部配置逐项排查再附上我实操过程中踩过的坑和解决办法。不管你是刚装VMware的小白还是被虚拟机网络折磨过几次的老手按这个顺序走一遍基本都能把网救回来。1. 先搞清楚“没网”到底是哪种没网1.1 三种网络模式先记住各自分工排查之前先弄明白VMware虚拟机的网络模式。VMware Workstation里虚拟网络交换机一般叫VMnet常见的三个是VMnet0、VMnet1、VMnet8分别对应三种工作模式桥接、仅主机、NAT。很多朋友一上来就在虚拟机里折腾IP最后发现怎么配都不通就是因为根本没搞清自己用的是哪种模式。桥接模式VMnet0虚拟机直接接到物理网络上相当于和宿主机在同一个局域网里别人访问虚拟机虚拟机访问别人走的都是物理网络。NAT模式VMnet8虚拟机通过宿主机共享IP上网外部网络看不到虚拟机虚拟机由VMnet8网段的DHCP分配IP。这是新手和日常测试最推荐的模式因为它不受物理网络环境变化影响。仅主机模式VMnet1虚拟机和宿主机组成一个封闭网络不能访问外网只能跟宿主机互通。这个模式适合做隔离环境测试比如模拟内网靶机。用生活化一点的话说桥接是“直接住进小区”NAT是“住酒店由前台代访”。默认安装VMware之后新建虚拟机一般走NAT模式所以出现没网问题时绝大多数情况都在VMnet8这条链路上。1.2 先做三分钟现场判断接到“VMware没网”的求助时我的第一个动作永远不是急着改配置而是先弄清楚“这个‘没网’到底是哪种没网”。是虚拟机完全没有任何网络连接还是虚拟机跟宿主机能互通但上不了外网这两种问题的排查方向完全不一样混在一起查会非常浪费时间。快速判断方法在虚拟机里打开命令行分别ping网关和外部地址。ping网关通说明虚拟网卡和VMnet8链路正常ping网关通但ping外网域名不通说明DNS或NAT转发有问题连网关都不通那基本上就是虚拟网卡、DHCP或VMnet8虚拟交换机出问题了。在Windows虚拟机里用ipconfig在Linux虚拟机里用ip addr看一眼当前IP。如果发现IP是169.254.x.x那说明DHCP根本没分到地址如果整个网卡不上线那就是驱动或VMware服务层面的问题。这一步做完你基本就能判断出该往哪个方向查比无头苍蝇一样乱试省太多时间。2. 排查顺序从服务到虚拟网卡2.1 VMware联网相关服务必须活着VMware的网络功能不只是虚拟机内部的事它依赖Windows宿主机上的一组系统服务。这几个服务一旦停了虚拟网卡还在但NAT和DHCP都废了虚拟机一样没网。需要重点检查的服务有三个VMware NAT ServiceVMware DHCP ServiceVMware Authorization Service这个虽然不是直接管网络的但经常背锅打开方式很简单WinR输入services.msc找到这三个名字里带VMware的服务看状态是不是“正在运行”。如果停了右键启动。我之前遇到过停掉之后鼠标右键启动报错的情况这时需要用管理员权限命令行来处理。net start VMware NAT Service net start VMware DHCP Service启动完再看服务是否变成了“正在运行”。特别提醒一句如果系统里装过旧版VMware或者卸载不干净服务启动时会提示“依赖的服务不存在或已被标记删除”这就是典型的残留注册表问题。解决思路是先用VMware官方提供的清理工具VMware InstallCleaner清理旧版本残留再重新安装VMware。不要自己手动去注册表乱删删错反而会把系统弄坏。2.2 Windows主机上的虚拟网卡还在不在VMware装好后Windows的网络连接里会出现两块虚拟网卡VMware Virtual Ethernet Adapter for VMnet1和VMnet8。桥接模式不依赖虚拟网卡但NAT和仅主机模式没有VMnet8网卡就彻底没戏。在宿主机命令行里敲ipconfig /all看列表里有没有VMnet1和VMnet8。如果只有VMnet1没有VMnet8或者两块都在但没有获得有效IP那VMnet8虚拟交换机相当于没工作。这种情况怎么处理最常见也最有效的办法是打开VMware的“虚拟网络编辑器”然后点“更改设置”获得管理员权限再点“还原默认设置”让VMware重建虚拟网卡。还原默认设置这个操作会重置VMnet1和VMnet8的IP段同时把服务重新绑一遍。我见过不少人在虚拟网卡显示“网络电缆被拔出”的时候来回禁用再启用网卡其实还不如直接“还原默认设置”来得干净。注意还原之后虚拟机里原来的静态IP可能会失效需要重新按新网段配置。2.3 虚拟网络编辑器里的关键配置“编辑”菜单里的“虚拟网络编辑器”绝对是个宝地也是排查VMware没网问题的核心面板。打开后能看到当前所有VMnet交换机的映射关系比如VMnet8对应的是NAT模式IP段是多少DHCP是否开启。在这个面板里有几个点最容易出事VMnet8这行右侧有没有选中“NAT模式”下方“NAT设置”里的网关IP和子网掩码是否正常那么“使用本地DHCP服务将IP地址分配给虚拟机”这个功能被勾掉没。很多人在VMnet8的配置里意外取消了DHCP虚拟机就永远拿不到IP。如果你确定虚拟机该走DHCP就把这个勾重新加上然后到虚拟机里重启网卡。还有一点容易被忽视如果主机上开了多个VMware产品比如Workstation和Fusion同时存在或者装了Docker Desktop、Hyper-V虚拟网卡之间的网段冲突也可能导致VMnet8“看起来正常但实际不通”。这时可以在虚拟网络编辑器里手动给VMnet8改一个网段比如改成192.168.88.0/24只要能避开宿主机物理网络的同段IP一般都能救回来。3. 核心实现重新配置NAT网络3.1 恢复默认设置这是最有效的操作给VMware没网的虚拟机做网络修复我强烈建议第一步尝试“还原默认设置”而不是手动改这改那。原因很简单VMware网络栈的内部结构很复杂手动改容易漏环节而“还原默认设置”会把VMnet1、VMnet8、NAT服务、DHCP服务一次性重建多数情况下一次就能通。操作步骤关闭VMware里正在运行的虚拟机保留VMware主程序菜单栏选择“编辑”→“虚拟网络编辑器”点击右下角“更改设置”此时会弹出管理员权限确认一定要同意不然很多功能是灰色不可改的点击左下角“还原默认设置”等待约10到20秒系统会自动重建虚拟网卡和网络服务回到虚拟机重启操作系统查看网络是否恢复。还原之后VMnet8默认网段一般是192.168.xxx.0/24网关是192.168.xxx.2DHCP地址池是192.168.xxx.128到192.168.xxx.254。如果你之前手动改过虚拟机内的静态IP这次还原后就对不上了需要进虚拟机再把IP改回来。可能有人会问还原默认设置会不会影响桥接模式桥接模式的VMnet0本质上只是把虚拟机的物理网卡和宿主机的物理网卡做个桥接还原默认设置不会删除物理网卡一般也不会有大影响。不过还原后重新打开VMware时它可能会重新识别一次宿主机物理网卡要是桥接模式还不行就到虚拟网络编辑器里手动把VMnet0桥接到正确的物理网卡上。3.2 手动修改VMnet8的子网和DHCP有时候“还原默认设置”解决不了尤其是VMnet8的IP段跟宿主机当前所在局域网冲突的场景。比如宿主机连的路由器是192.168.1.0/24VMnet8默认也是192.168.1.0/24那虚拟机里的路由就会乱套甚至宿主机自己的网络也会被干扰。这种冲突在宿舍网、公司网里非常常见。正确做法是把VMnet8改成一个不容易冲突的网段比如192.168.88.0/24。具体操作打开虚拟网络编辑器点击“更改设置”选中VMnet8那一行确保模式是“NAT模式”下方“子网IP”改成192.168.88.0子网掩码保持255.255.255.0点击“NAT设置”确认网关是192.168.88.2点击“DHCP设置”把起始IP地址改成192.168.88.128结束IP地址改成192.168.88.254。改完之后VMnet8的虚拟网卡在宿主机里也会自动变成192.168.88.1如果没变就重启一下VMware服务或禁用再启用VMnet8网卡。之后进入虚拟机把网卡改为DHCP获取或者手动设置成192.168.88.x、掩码255.255.255.0、网关192.168.88.2DNS填192.168.88.2或公共DNS都可以。我个人的习惯是只要不涉及复杂组网需求就尽量保留VMnet8的DHCP分配。因为虚拟机总是频繁折腾用静态IP一旦跟其他虚拟机冲突反而更烦。3.3 虚拟机内部固定IP踩坑记录如果虚拟机内部配置了静态IP那么NAT模式下最容易踩的坑有三个。第一个是把网关写错了。VMnet8的网关在NAT模式下默认是192.168.xxx.2不是192.168.xxx.1。为什么是.2因为.1留给了宿主机上VMnet8虚拟网卡而NAT服务挂在.2上。你如果把网关写成.1很多时候也能ping通宿主机但出去外网会走不通。第二个坑是DNS没写好。很多场景下只填网关不填DNS会导致“能ping通IP但打不开网址”。在NAT模式下可以把DNS填成192.168.88.2让NAT服务做DNS代理也可以直接填公共DNS。推荐两者都试以实际能解析为准。第三个坑是Linux虚拟机的网络配置工具没生效。比如在Ubuntu里用netplan配置静态IP写完之后忘了sudo netplan apply或者YAML文件缩进写错网络服务就起不来。排查时先跑sudo netplan apply再用ip addr确认网卡是否真的拿到了地址。Windows虚拟机的静态IP配置相对直观重点还是确认“默认网关”和“DNS服务器”两个字段。配置完成之后先ping网关再ping外网IP再ping域名三步下来问题定位就很清楚了。4. 常见问题与排查技巧实录4.1 DHCP服务一直停/起不来有段时间我的VMware DHCP服务一开机就是“已停止”手动启动后过一会儿又停了。查日志发现是“VMware DHCP Service”和系统里另一个DHCP相关服务的端口发生了会话冲突。这类问题多见于同时安装了多个虚拟化软件比如VirtualBox或Windows自带的Hyper-V。处理办法先以管理员身份运行命令行把VMware DHCP服务设为自动启动再手动拉起。sc config VMware DHCP Service start auto net start VMware DHCP Service如果再启动失败查看“事件查看器”里VMware DHCP的错误日志一般能定位到是端口被占用还是依赖服务缺失。如果是端口占用可以换一个DHCP监听端口比如在NAT设置的DHCP里把DHCP服务器地址从默认的255.255.255.255:67改成其他端口。不过这个操作门槛稍高非必要不推荐。最简单保险的办法还是先把Hyper-V、VirtualBox这类可能占用网络栈的软件停掉再启动VMware服务。4.2 连通主机但上不了外网有朋友遇到过这样的奇怪现象虚拟机ping宿主机通访问VMnet8网关也通但就是上不了外网。这种一般要从三方面排查。第一宿主机本身有没有外网如果物理机也掉线了VMware再厉害也借不到网。先把宿主机的网络确认了再回头看虚拟机。第二Windows防火墙有没有拦住NAT转发。VMware的NAT服务需要依赖Windows的Internet连接共享底层机制如果Windows防火墙策略过于严格虚拟机发出的外网请求可能过不了宿主机这一层。临时测试时可以把Windows防火墙的专用网络配置设为允许确认通了之后再针对性加规则。第三DNS解析问题。如果虚拟机可以ping通114.114.114.114这类公共IP但ping不通baidu.com那就说明DNS解析有问题。在虚拟机里手动把DNS改成公共DNS比如223.5.5.5或119.29.29.29再看是否能正常解析。另外有些朋友用随身WiFi或USB无线网卡给宿主机供网这类设备在Windows下实际上会额外创建一个虚拟网卡。这时候VMware的桥接模式和NAT模式都需要重新检查桥接模式很可能被桥接到了错误的网卡上NAT模式则可能因为网络共享权限被系统限制而失效。我的建议是用随身WiFi这类设备做网络源时优先用NAT模式并且把VMnet8的网段改得跟随身WiFi的内部网段完全不一样减少冲突。4.3 VMware Tools没装导致驱动异常这个问题很隐蔽。很多人装了VMware虚拟机后没装VMware Tools图形界面是能凑合用的但虚拟网卡驱动可能没有正确加载。特别是Linux虚拟机里如果安装时没有选择开启网络安装完系统后网卡可能显示为“未识别的网络”或干脆没有eth0。VMware Tools的作用不只是拖文件方便它还会安装VMware专用的虚拟网卡驱动、SVM显示驱动和鼠标驱动。Windows虚拟机里没有VMware Tools常见现象是网络适配器驱动带黄色感叹号。安装步骤并不复杂在VMware菜单栏点击“虚拟机”→“安装VMware Tools”Windows虚拟机里会弹出光驱运行setup.exe即可Linux虚拟机需要手动挂载光驱然后解压安装。sudo mkdir -p /mnt/cdrom sudo mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom tar zxpf VMwareTools-*.tar.gz -C /tmp cd /tmp/vmware-tools-distrib sudo ./vmware-install.pl -d安装完重启虚拟机再查看网卡状态。很多“装了系统就没网”的问题其实不是VMware的锅而是系统自带驱动在虚拟环境里没被正确激活。装好VMware Tools后虚拟网卡的性能和使用体验都会正常很多。4.4 VMware 17/网络升级后“玄学”掉网VMware Workstation Pro 17发布之后不少人反映升级到17.x之后原本好好的虚拟机突然没网了。我自己也遇到过类似情况升级前Windows 10虚拟机走NAT正常升级后虚拟机开机IP变成169.254.x.x宿主机里VMnet8虽然存在但IP段和之前不一样了。常见原因是升级过程重新初始化了虚拟网络栈导致原来的虚拟网卡配置被覆盖。解决办法是先到虚拟网络编辑器里还原默认设置然后重新配置VMnet8. 如果还原后依然没网把VMware完全卸载并清理再装一次往往能彻底解决。卸载时不要只是用Windows“程序与功能”操作建议用VMware InstallCleaner清除残留避免旧服务和新服务打架。还有一类情况跟虚拟机的硬件兼容性有关。升级后如果不小心把“虚拟机硬件版本”升得太新旧驱动可能跟不上。出现这种情况可以在虚拟机设置里把网卡的“设备状态”取消勾选再勾上强制系统重新枚举一次设备。如果还是不行就把虚拟机的网络适配器删掉重新添加一块“VMware Accelerated AMD PCNet”或“VMware VMXNET3”网卡。VMXNET3性能更好但要求装了VMware Tools如果驱动本身有问题先用PCNet也能凑合。4.5 物理机网络本身出问题排查VMware没网时一定要记住宿主机网络是虚拟机网络的地基。很多新手把精力全放在VMware里最后才发现是宿主机网卡驱动被Win更新搞坏了或者是物理网线松了。建议排查顺序是宿主机浏览器能不能正常打开网页宿主机命令行ping 网关通不通宿主机ipconfig /all看物理网卡IP是否有异常其他电脑连同一个局域网是否正常。如果宿主机连的是WiFi还要看看WiFi是否处于公共网络模式。Windows把网络类型设为“公用”时通常会启用更严格的防火墙规则VMware NAT服务可能存在被阻止的情况。这时可以到“网络和共享中心”里把网络类型改成“专用网络”很多虚拟机没网的问题莫名其妙就好了。如果宿主机本地连接显示“未识别的网络”但实际能上网也可能会干扰VMware的NAT判断。这种情况可以尝试给物理网卡指定一个跟路由器同一网段的静态IP让Windows认为“网络已识别”VMware的桥接和NAT都会更稳定。5. 避坑要点与我的实操习惯5.1 动手之前先拍快照熟悉我的朋友都知道我折腾虚拟机网络之前有个固定习惯先给虚拟机拍快照。这个习惯救了我太多次了因为网络配置改错之后不一定马上出问题可能过几天重启才发现虚拟机里某个服务起不来了。要是没有快照只能凭记忆反推改了什么非常痛苦。拍快照的方法就两步虚拟机开着的时候菜单栏“虚拟机”→“快照”→“拍摄快照”名字写清楚比如“改网络前”关着的时候也可以拍“关机状态快照”。等网络配置全部搞定、业务恢复正常之后再删掉这个临时的快照就行。虚拟机网络折腾成本很低但快照成本更低别省这一步。5.2 网络驱动与硬件设置的几个细节虚拟机的网络硬件设置里有个容易被忽略的选项叫“连接时连接”勾选后启动虚拟机就自动连接网络还有个“打开电源时连接”的设置如果你取消勾选开机后网卡相当于没插线。之前有位朋友说虚拟机没网我远程一看他是在创建虚拟机的时候把“网络连接”选成了“仅主机模式”还取消了“打开电源时连接”——这当然永远没网。另外不同的操作系统对虚拟网卡的支持程度也不一样。Windows 11和较新的Linux发行版用默认的VMware Accelerated网卡通常没问题但老系统如Windows XP或Windows Server 2003在VMware 17下偶尔会出现网卡无法识别的问题。遇到老系统把网卡类型改成e1000之类的老型号往往更稳。在“虚拟机设置”里点开网络适配器右边“设备状态”和“网络连接”各处都检查一遍确认没有遗漏。5.3 用“现象场景”描述问题比贴报错更有效最后给个小建议以后问问题或者搜索资料时别只喊一句“VMware没网”。我平时被人问得最多的就是这句话但回答之前必须先问对方“是NAT模式还是桥接虚拟机是Windows还是Linux宿主机能不能上网IP地址是啥”问题和背景信息越完整解决路径越清晰。我自己排查时习惯把信息整理成一句话比如“VMware Workstation 17Windows 11虚拟机NAT模式虚拟机能ping通192.168.88.2但ping不通外网宿主机网络正常。”这种描述拿到哪儿都好使别人一眼就知道问题大概率在DNS或NAT转发上而不是在那里帮你从头问起。说到底VMware没网本质上就是“虚拟网卡—虚拟交换机—NAT/DHCP服务—宿主机网络”这条链路上某个环节掉链子了。只要按顺序把链路每一环都检查一遍绝大多数问题都能定位。个人经验是先还原默认设置再查服务最后才动手改虚拟机内部的IP这个顺序至今没怎么失手过。