VMware 虚拟机无法上网排查解决教程
一、问题现象
在 VMware 虚拟机中,无论选择哪种网络模式(桥接、NAT、仅主机等),虚拟机内部都无法访问互联网,但宿主机可以正常上网。常见表现为:
-
浏览器打不开网页
-
ping外部 IP 或域名超时 -
虚拟机网卡未获取到 IP 地址
二、问题原因分析
虚拟机上网涉及多个层次,任何一个环节出错都可能导致无法联网。主要排查方向包括:
-
宿主机服务:VMware 的相关网络服务未运行。
-
虚拟机内部配置:网卡未启用、IP 未获取、路由错误、DNS 问题等。
-
虚拟网络组件:虚拟交换机(VMnet)配置错误或损坏。
-
权限问题 :执行网络命令时未使用
sudo导致操作被拒绝。
三、详细排查步骤
第一步:检查宿主机 VMware 服务
确保 Windows 宿主机中的 VMware 相关服务已启动。
-
按
Win + R输入services.msc回车。 -
找到以下两个服务,确保状态为"正在运行",启动类型为"自动":
-
VMware NAT Service -
VMware DHCP Service
-
-
如果未运行,右键点击选择"启动"。
第二步:检查虚拟机内部网络配置
进入虚拟机终端,执行以下诊断命令(注意权限)。
1. 查看网卡状态和 IP 地址
bash
ip addr show
-
正常情况应看到
ens33(或eth0)网卡有inet字段,如192.168.x.x。 -
如果只有
lo(回环接口)有 IP,说明网卡未获取地址。 -
如果网卡显示
DOWN,需要启用网卡。
2. 测试基本连通性
bash
ping 127.0.0.1 # 测试本机协议栈,通说明系统网络基础正常
ping 网关IP # 测试与网关的连接,不通说明虚拟网络有问题
ping 8.8.8.8 # 测试外网 IP,通说明路由正常
ping www.baidu.com # 测试域名解析,通说明 DNS 正常
-
网关 IP 可通过
ip route show查看default via后面的地址。 -
如果
ping外网 IP 通但域名不通,是 DNS 问题。
3. 手动获取 IP 地址(DHCP)
如果网卡未获取 IP,可以尝试手动请求:
bash
sudo dhclient # 向 DHCP 服务器请求 IP
sudo dhclient -r # 释放当前租约
-
必须使用
sudo提权,否则会提示Operation not permitted。 -
成功后会输出获取到的 IP,再用
ip addr show确认。
4. 检查路由表
bash
ip route show
-
应该有一条默认路由,例如
default via 192.168.x.2 dev ens33。 -
如果没有默认路由,可以尝试重启网络服务或手动添加。
5. 检查网卡配置文件(永久配置)
不同发行版配置文件位置不同:
-
Ubuntu/Debian(旧版) :
/etc/network/interfaces -
Ubuntu 18.04+(Netplan) :
/etc/netplan/*.yaml -
CentOS/RHEL :
/etc/sysconfig/network-scripts/ifcfg-ens33
确保配置为自动获取 IP(DHCP),例如 Netplan 示例:
yaml
network:
version: 2
ethernets:
ens33:
dhcp4: true
修改后执行 sudo netplan apply 使生效。
第三步:检查 VMware 虚拟网络编辑器
在 VMware 主界面点击"编辑" → "虚拟网络编辑器",点击右下角"更改设置"获取管理员权限。
1. 检查所用模式的虚拟网络
-
NAT 模式 对应
VMnet8:查看子网 IP(如192.168.17.0)和子网掩码,点击"NAT 设置"确认网关 IP(通常为xxx.xxx.xxx.2)。 -
桥接模式 对应
VMnet0:确保"桥接到"下拉框选择了当前正在上网的物理网卡(如无线网卡或有线网卡),不要选"自动"。 -
仅主机模式 对应
VMnet1。
2. 重置虚拟网络
如果配置混乱,可以直接点击"还原默认设置",等待 VMware 重新创建所有虚拟网络。重置后虚拟机可能需要重新配置网络。
第四步:重启网络服务或虚拟机
在虚拟机内重启网络服务:
-
使用
ifupdown的系统:bash
sudo systemctl restart networking -
使用 Netplan 的系统:
bash
sudo netplan apply -
使用 NetworkManager 的系统:
bash
sudo systemctl restart NetworkManager
或者直接重启虚拟机(有时能解决一些顽固问题)。
四、常见问题与解决
1. 执行 dhclient 提示 Operation not permitted
原因 :普通用户无权限修改网络配置。
解决 :使用 sudo dhclient 提权执行。
2. 网卡获取到多个 IP 地址
原因 :多次运行 dhclient 导致。
解决 :先释放所有租约 sudo dhclient -r,再重新获取 sudo dhclient。
3. 能 ping 通 IP 但无法解析域名(ping 域名不通)
原因 :DNS 配置错误或未配置。
临时解决 :编辑 /etc/resolv.conf 添加:
text
nameserver 8.8.8.8
nameserver 114.114.114.114
永久解决:在网卡配置文件或 Netplan 中设置 DNS。
4. 桥接模式下虚拟机无法上网
原因 :桥接到的物理网卡选择错误或宿主机网络环境变化(如切换 WiFi/有线)。
解决:在虚拟网络编辑器中,将 VMnet0 的桥接目标明确指定为当前上网的网卡,而非"自动"。
5. 还原默认设置后仍然无效
可以尝试在 Windows 中卸载并重装 VMware 网络驱动(通常不需要),或重启宿主机。
五、总结
虚拟机上网问题排查可以遵循"由外到内、由硬件到软件"的原则:
-
先确保宿主机服务正常,虚拟网络组件健康。
-
再检查虚拟机内部权限、IP 获取、路由和 DNS。
-
最后考虑重置或重新配置 VMware 网络。
掌握以上步骤后,绝大多数网络故障都能自行解决。记住关键命令和配置文件位置,遇到问题时按部就班地诊断,就能快速定位问题所在。