服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-08 简米科技 3,391 字 8 分钟阅读

虚拟机显示DHCP但无法获取IP地址怎么办?,虚拟机DHCP获取IP失败原因

导读虚拟机显示已连接DHCP却迟迟拿不到IP地址,核心原因通常出在虚拟网卡绑定、Windows宿主机的DHCP客户端服务、NAT模式的地址池配置,或者虚拟机系统内部网卡未启用自动获取IP这四个环节上,按顺序排查即可解决,先分清是“假连接”还是“真分配”很多朋友看到虚拟机右下角网络图标显示“已连接”,就以为网络没问题……

虚拟机显示已连接DHCP却迟迟拿不到IP地址,核心原因通常出在虚拟网卡绑定、Windows宿主机的DHCP客户端服务、NAT模式的地址池配置,或者虚拟机系统内部网卡未启用自动获取IP这四个环节上,按顺序排查即可解决。

先分清是“假连接”还是“真分配”

很多朋友看到虚拟机右下角网络图标显示“已连接”,就以为网络没问题,实际上这个图标只是表示虚拟网卡被系统识别并启用了,不代表DHCP服务器真的给它分配了地址。

判断的关键动作有两个:

  • 在虚拟机内打开命令提示符,输入ipconfig /all,看IPv4地址是不是254.x.x开头,如果是,说明DHCP请求根本没成功,系统自动生成了私有地址。
  • 在宿主机上打开“网络连接”窗口,右键点击对应的VMnet网卡,选择“状态”,查看“IPv4地址”一栏是否有实际的内网IP(如192.168.x.x)。

行业共识认为,254.x.x地址就是DHCP失败的标志性特征,遇到它,问题基本锁定在传输链路或服务层面,而不是虚拟机系统本身。

为什么虚拟机获取不到IP地址?按五个方向排查

检查虚拟网络编辑器的网卡绑定

VMware和VirtualBox的虚拟网络编辑器中,每一张虚拟网卡都需要和宿主机上的物理网卡建立“桥接”或“映射”关系,如果绑定的物理网卡是Wi-Fi模块,而宿主机当前用的却是有线网,DHCP请求就发不出去。

操作路径如下:

  1. 打开VMware Workstation,点击菜单栏“编辑” > “虚拟网络编辑器”。
  2. 在对话框右下角点击“更改设置”,获得管理员权限。
  3. 查看VMnet8(NAT模式)或VMnet1(仅主机模式)右侧的“VMnet信息”,确认“绑定到”对应的物理网卡名称。
  4. 如果绑定的是“自动”,可以手动改成当前正在上网的物理网卡(比如Realtek PCIe GbE或Intel Wi-Fi 6)。

如果这里是空的或者显示“未绑定”,重启VMware或重置网络设置往往能恢复。

Windows宿主机上的DHCP客户端服务是否停用

这是一个被忽视的高频原因,宿主机上有一个名为DHCP Client的服务,不只是给物理机自己获取IP用的,虚拟机的DHCP请求也要依赖这个服务的代理转发,一旦该服务被优化软件禁用或手动停止,虚拟机就会陷入“反复续租但永远拿不到地址”的怪圈。

恢复步骤:

  • 按Win + R,输入services.msc回车。
  • 找到DHCP Client,双击打开。
  • 将“启动类型”改为“自动”,点击“启动”,确认服务状态变为“正在运行”。

同时检查VMware DHCP Service(如果是VMware用户)是否也是“正在运行”状态,这个服务通常叫VMnetDHCP,在服务管理器里显示为“VMware DHCP Service”。

NAT模式下地址池耗尽或网段冲突

NAT模式默认的DHCP地址池是168.x.128到168.x.254,如果宿主机上多个虚拟机用了不同的网段设置,或者手动改过子网掩码,导致地址池范围异常缩小,新开的虚拟机自然分不到IP。

查看和修改地址池的方式:

  1. 在“虚拟网络编辑器”中选中VMnet8。
  2. 点击“DHCP设置”,查看“起始IP地址”和“结束IP地址”。
  3. 确认起始地址低于结束地址,且子网掩码和网关(通常为168.x.2)在同网段。

如果宿主机本身在168.1.x网段,而VMnet8的子网却是168.137.x,并不会冲突,因为NAT模式下虚拟机和物理网卡走的是不同子网,真正冲突的情况是:手动桥接到局域网,但局域网内另一台设备占用了相同的IP范围。

VMware虚拟机里的网卡模式选错

VMware提供了三种常见的虚拟网卡模式,选错了就会出现“显示已连接,但没有IP”的现象:

  • 桥接模式:虚拟机直接接入物理局域网,由路由器分配IP,如果路由器开启了MAC地址过滤,或者Wi-Fi的AP隔离功能开启,就分不到地址。
  • NAT模式:虚拟机通过宿主机共享上网,由VMware自带的DHCP服务分配IP,如果上述VMware DHCP服务没运行,就分不到。
  • 仅主机模式:只能和宿主机通信,默认不提供DHCP分配(除非手动开启),很多人把虚拟机设置在这个模式下,却期待它能上外网,自然无法获取正确的IP。

在虚拟机设置中,选中网卡设备,右侧选择“自定义”并勾选VMnet8 (NAT模式),是最稳妥的做法,适合绝大多数上网场景。

虚拟机系统内部的网卡驱动和自动获取设置

排除虚拟机外部因素后,问题可能落在系统内部,常见情况包括:

  • 网卡驱动异常导致DHCP客户端无法正常工作,可以在设备管理器中卸载网卡驱动并重新扫描硬件。
  • 系统网络配置被手动指定了静态IP,导致DHCP请求被忽略,进入“网络连接” > 右键网卡 > “属性” > “Internet协议版本4 (TCP/IPv4)”,确保“自动获得IP地址”和“自动获得DNS服务器地址”都是选中状态。
  • Linux虚拟机中,DHCP客户端进程(如dhclient或systemd-networkd)意外退出,重启网络服务即可,命令为sudo systemctl restart NetworkManager或sudo dhclient -r后重新sudo dhclient。

桥接模式和NAT模式对比:哪个更适合你

对比项 NAT模式 桥接模式
IP来源 VMnet8自带的DHCP服务 物理路由器或局域网DHCP
外部网络访问 通过宿主机共享,虚拟机能上网 虚拟机独立上网,像一台独立设备
局域网内设备互通 不能直接互通,需配置端口转发 可直接互相访问
获取不到IP的常见原因 VMware DHCP服务未运行、地址池耗尽 物理网卡未绑定、路由器MAC过滤

多数情况下,仅需要虚拟机联网但不需要局域网内其他设备访问,选NAT模式就够了,如果需要把虚拟机当作开发服务器或测试环境,让手机、同事电脑能直接访问,再切换为桥接模式。

最终解决办法:用命令行强制续租

如果图形界面操作完还没解决,直接在虚拟机内执行以下命令,强制重新申请地址。

Windows虚拟机(以管理员身份运行命令提示符):

ipconfig /release
ipconfig /renew

Linux虚拟机:

sudo dhclient -r
sudo dhclient

执行后观察输出结果,如果看到DHCPACK消息,说明获取成功,如果一直报DHCPDISCOVER和DHCPOFFER循环,说明请求发到了广播域但没有DHCP服务器应答,重点回到宿主机服务和虚拟网络配置上进行核查。

再补充一个极少被提到的点:虚拟机快照恢复后,网卡MAC地址偶尔会与网络上已有设备冲突,表现为“之前好好的,突然无法获取IP”,进入虚拟机设置,将网卡的高级参数中MAC地址改为“自动”,然后重启虚拟机,往往能解决这类疑难杂症。

为什么虚拟机获取不到IP地址?常见问题解答

虚拟机获取不到IP地址怎么解决最有效?

优先检查宿主机服务管理器中VMware DHCP Service和DHCP Client两个服务是否运行,然后进入虚拟网络编辑器重新选择NAT模式并确认物理网卡绑定,多数情况下,这两步能解决超过七成的故障。

NAT模式下虚拟机无法获取IP和桥接模式有什么不同?

NAT模式下无法获取IP通常是VMware自身的DHCP服务或地址池配置问题,桥接模式则是物理路由器、网卡绑定或局域网安全策略导致,排查NAT模式时只关注VMware侧配置和宿主机服务,排查桥接模式时需要关注物理网络环境。

虚拟机一直显示“正在获取IP地址”是怎么回事?

这是DHCP发现阶段停滞的现象,说明虚拟机发出了广播请求但没收到应答,检查宿主机的DHCP客户端服务是否被禁用,以及VMnet8网卡的防火墙放行规则是否拦阻了UDP 67和68端口,部分安全软件也会拦截DHCP请求,建议暂时退出或添加信任规则。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱