为什么虚拟机连不上网:排查顺序
为什么虚拟机连不上网,优先按网卡模式、虚拟网卡服务、宿主机防火墙、虚拟机IP、网关DNS这几项排查,桥接模式适合和宿主机同局域网互通,NAT模式适合虚拟机单向访问外网,仅主机模式只能虚拟机和宿主机互访,无法访问外网,该排查流程适合VMwareWorkstation、VirtualBox,不适用于服务器端ESXi、KVM裸机虚拟化场景,这类平台需要额外核对虚拟交换机配置。你先确认虚拟机网卡模式,再去宿主机开启对应虚拟网卡服务,接着关闭宿主机里拦截虚拟机流量的防火墙规则,进入虚拟机系统查看IP是否正常获取,没有IP就切换DHCP,有IP打不开网页就更换公共DNS,多数网络故障可以在这几步内定位。
虚拟机网卡模式与网络不通的关联
网卡模式选错是高频故障原因,三种模式的通信能力差异明显,选错后再怎么修改IP都无法联网。NAT模式依靠宿主机做地址转换,虚拟机可以访问外网,局域网里其他设备默认不能主动访问虚拟机;桥接模式虚拟机直接接入物理局域网,会从路由器获取独立IP,和宿主机、局域网设备对等通信,路由器开启MAC地址过滤时,桥接模式容易直接断网;仅主机模式只在宿主机和虚拟机之间建立私有网络,没有外网转发通道,无论怎么设置都不能访问互联网。
| 网卡模式 | 访问外网 | 局域网设备访问虚拟机 | 适用场景 |
|---|---|---|---|
| NAT模式 | 支持 | 默认不支持 | 日常上网、测试软件 |
| 桥接模式 | 支持 | 支持 | 局域网调试、搭建服务 |
| 仅主机模式 | 不支持 | 不支持 | 隔离测试、内网调试 |
宿主机虚拟网卡服务未启动,就算模式设置正确也会失效。VMware需要检查VMwareDHCPService、VMwareNATService两项服务,VirtualBox要确认VirtualBoxHost-OnlyNetwork适配器处于启用状态,你打开Windows服务面板,找到对应服务,启动类型设置为自动,服务停止时点击启动,服务启动失败,大概率是虚拟网卡驱动损坏,需要重装虚拟化软件的网卡组件。
防火墙拦截流量,是容易被忽略的一环。宿主机的安全软件、系统防火墙会拦截虚拟机和宿主机之间的转发数据包,你可以临时关闭防火墙测试,连通后再新建放行规则,放行虚拟化软件对应的程序和虚拟网卡网段。不要长期关闭防火墙,临时测试完成后及时恢复防护策略。
虚拟机内部IP分配异常,会出现网卡已连接但无网络的现象。你进入虚拟机系统,打开终端或者网络设置页面,查看IP地址,如果是169.254开头的自动私有地址,代表DHCP服务器没有分配IP,NAT和桥接模式都可能出现这个情况,桥接模式下是路由器DHCP故障,NAT模式下是虚拟化软件自带DHCP服务异常。切换为静态IP时,网关、子网掩码、DNS必须和模式匹配,NAT模式网关不能直接填写路由器网关。
DNS解析故障,表现为能ping通IP地址,但是打不开网页。你可以把DNS改为223.5.5.5或者114.114.114.114,测试域名解析,pingbaidu.com返回请求超时,ping180.101.49.11直接通,就能确定是DNS问题,部分企业内网环境会限制公共DNS,需要使用内网指定DNS。
网卡被禁用,是最简单的故障。
虚拟机设置里的网络适配器勾选“已连接”“启动时连接”,虚拟机系统内的网卡开关不能关闭,很多用户只改软件配置,忽略虚拟机系统内网卡被手动禁用的状态,导致反复排查无效。桥接模式还有一个特殊限制,无线网卡做桥接时稳定性偏弱,部分无线网卡驱动不支持桥接转发,这种情况换成有线网卡或者改用NAT模式,网络稳定性会明显提升。
虚拟化软件版本和宿主机系统版本不匹配,也会造成虚拟网卡驱动异常,新装系统或者更新Windows大版本后该问题更容易出现。你可以更新虚拟化软件到稳定版本,修复虚拟网络编辑器,重置NAT、DHCP网段,重置之后原有静态IP配置会失效,需要重新填写,重置前可以记录好网段参数。
该排查流程的适用边界是桌面端Windows宿主机运行的桌面虚拟化软件,Linux宿主机、服务器虚拟化平台不受这套逻辑约束,服务器虚拟化环境依赖虚拟交换机、端口组、上行链路配置,不能直接套用桌面版的NAT、桥接排查逻辑。
