虚拟机没网路,绝大多数时候不是玄学,而是虚拟网卡、网络模式或防火墙配置出了问题,按顺序排查基本都能解决。
先搞懂虚拟机上网的原理
很多人遇到虚拟机没网路,第一反应是重装系统,其实没必要,虚拟机上网依赖的是宿主机(也就是你的物理电脑)提供的虚拟网络接口,所有流量都得经过宿主机的物理网卡转发,行业共识认为,虚拟机网络故障里,七成以上是配置问题,不是硬件或系统损坏。
虚拟机三大网络模式的区别
VMware Workstation 和 VirtualBox 里常见的有三种网络模式,它们的原理和适用场景差别很大:
- 桥接模式:虚拟机直接接入物理局域网,和宿主机平级,拥有独立IP,能被局域网内其他设备直接访问
- NAT模式:虚拟机通过宿主机共享IP上网,对外表现为宿主机的一个内网设备,外部设备无法直接访问虚拟机
- 仅主机模式:虚拟机只能和宿主机通信,不能访问外网,适合做隔离测试
| 对比项目 | 桥接模式 | NAT模式 | 仅主机模式 |
|---|---|---|---|
| 虚拟机访问外网 | 可以 | 可以 | 不可以 |
| 局域网访问虚拟机 | 可以 | 不可以 | 不可以 |
| 与宿主机互通 | 可以 | 可以 | 可以 |
| 适合场景 | 服务器测试 | 日常上网 | 安全实验 |
NAT模式是虚拟机没网路故障率最低的选项,因为它不依赖局域网IP分配,只要宿主机能上网,虚拟机基本就能上网。
虚拟机没网路怎么解决按步骤排查
如果你已经遇到了虚拟机没网路,别急着百度里搜一堆文章乱试,按下面的顺序来查,每一步都验证完再往下走。
第一步:检查宿主机网络是否正常
虚拟机没网路,先确认宿主机本身能上网,打开命令行,ping一下外网地址:
ping 223.5.5.5
如果这条命令不通,说明宿主机网络就有问题,虚拟机自然也会跟着断网,这时候先解决宿主机的问题,比如重启路由器、检查运营商线路,修好后再看虚拟机。
第二步:检查虚拟网络编辑器配置
这是虚拟机没网路最常见的故障点,以 VMware Workstation 为例,打开菜单栏的 编辑 → 虚拟网络编辑器,查看右下角的 VMnet8(NAT模式)是否正常显示,如果显示异常,或者IP段变成了不认识的地址,直接点击左下角的还原默认设置,重启 VMware 后再启动虚拟机。
VirtualBox 则在 管理 → 全局设定 → 网络 里检查仅主机网络的默认配置,如果发现网卡被禁用,点右键恢复启用即可。
第三步:查看虚拟机内部网络适配器
很多时候宿主机和虚拟化软件都正常,但虚拟机没网路是因为系统内部的网卡被禁用或配置错误,在虚拟机里打开命令行,输入:
ipconfig /all
重点看两个地方:以太网适配器是否处于媒体已断开状态,以及是否拿到了正确的IP地址,IP 是 169.254 开头,说明 DHCP 没有正常分配地址,可以试试手动释放并重新获取:
ipconfig /release
ipconfig /renew
如果这两条命令提示出错,说明网卡驱动可能有问题,在虚拟机里卸载网卡设备,然后点扫描硬件改动重新安装驱动,多数情况下能恢复。
第四步:检查防火墙和安全软件
虚拟机没网路还有一种容易被忽略的情况Windows 防火墙把虚拟机的网络流量拦截了,在宿主机上,打开 控制面板 → Windows Defender 防火墙 → 允许应用或功能通过防火墙,找到 VMware 或 VirtualBox 相关条目,确认专用和公用选项都勾选上了。
虚拟机系统内部的防火墙也可能拦截网络,临时关闭试试,不用装第三方杀毒软件,直接用系统自带的命令:
netsh advfirewall set allprofiles state off
测试通过后再重新打开,然后逐条放行需要的端口。
虚拟机桥接模式没网路怎么回事
桥接模式是虚拟机没网路投诉率最高的场景,尤其是在笔记本上,很多用户按教程选了桥接模式,结果虚拟机依然无法上网,原因往往出在以下三个方面:
无线网卡限制了桥接行为
如果宿主机是通过 Wi-Fi 上网的,桥接模式经常会失效,因为很多无线网卡驱动不支持虚拟机的 MAC 地址接入,导致虚拟机发出的数据包被网卡直接丢弃,业内专家指出,这不是虚拟机软件的缺陷,而是无线网卡硬件层面的限制。
解决方法有两种:
- 改用 NAT 模式,代价是局域网内其他设备无法直接访问虚拟机
- 在虚拟网络编辑器里把桥接目标指定为有线网卡,前提是你插入了网线
虚拟机 IP 与局域网冲突
桥接模式下虚拟机需要自己向路由器申请IP,如果局域网里IP地址分配很满,或者路由器设置了 IP-MAC 绑定,虚拟机会拿不到地址,打开虚拟机的网络设置,检查是否使用了自动获取IP,确认无误后,再进入路由器后台查看当前连接的设备列表,看看虚拟机是否成功加入了局域网。
公司或学校网络做了隔离
不少人在公司或学校用虚拟机时报错桥接模式没网路,这大概率是网络管理员做了端口隔离或开启了 VLAN 划分,这种情况下,同一个物理网口上的多个MAC地址会被视为非法设备,直接断网,这个环境限制没法通过虚拟机设置绕过,只能咨询网络管理员是否开放相关策略。
改了配置还是不通,试试重置网络栈
如果以上所有步骤都排查完,虚拟机没网路的问题依然存在,可以试试重置虚拟化软件的整个网络栈。
VMware 完整卸载重装网络组件
在 Windows 宿主机上,打开 设备管理器,找到 网络适配器,把带有 VMware 字样的所有虚拟网卡右键卸载,然后在控制面板的卸载程序中,选择 VMware Workstation 的修复选项,等它重新安装网络组件后重启电脑。
注意,这个操作不会删除虚拟机文件,只重置网络相关的组件,可以放心操作。
Hyper-V 用户需要额外注意
如果你用的是 Windows 自带的 Hyper-V,虚拟机没网路的排查逻辑不太一样,先在 Hyper-V 管理器 → 虚拟交换机管理器 里,确认是否有名为 Default Switch 的虚拟交换机,如果没创建,新建一个内部虚拟交换机,然后在虚拟机设置中把网络适配器连接到这个交换机上。
Hyper-V 的 NAT 功能和 VMware 不同,它会自动分配 IP,但需要确保 Windows 服务里 Hyper-V 主机计算服务处于运行状态,在服务管理器中找到该服务,如果停止就启动,并设置为自动。
虚拟机没网路常见问题与解答
虚拟机没网路但宿主机能上网,是什么原因?
优先级最高的是虚拟网络编辑器配置异常,先打开虚拟网络编辑器,查看当前模式对应的虚拟网卡是否存在且处于正常状态,用还原默认设置这一步操作能解决大部分异常,如果无效,再检查 VMware 的 DHCP 服务是否开启,因为虚拟机的 IP 分配依赖这个服务。
桥接模式没网路,能不能靠改静态IP解决?
前提是你能找到可用的IP,且这个IP不被其他设备占用,进入虚拟机系统设置,将 IP 设置为局域网同网段的空闲地址,网关指向路由器的管理地址,DNS 填 223.5.5.5 或 114.114.114.114,如果之前拿不到IP是因为 DHCP 服务异常,静态IP 可以解决;但如果问题是网卡驱动层面不转发数据,改静态IP 也没用。
虚拟机恢复了默认设置会影响已装好的系统吗?
不会,还原默认设置只重置虚拟网络的网段和配置,不会触碰虚拟机磁盘上的任何数据,已安装的系统、软件、文件都完好无损,但虚拟机内的静态IP地址可能需要重新设置,因为在恢复默认设置后,虚拟网络IP段通常会更改为其他地址。
虚拟机没网路,核心思路永远是从宿主机到虚拟网络再到虚拟机内部逐层排查,不要跳过任何一步直接重装系统,大多数情况下,找到断网的那一层,修复它,虚拟机就能恢复网络连接。