VMware 虚拟机无法上网排查解决教程

VMware 虚拟机无法上网排查解决教程

一、问题现象

在 VMware 虚拟机中,无论选择哪种网络模式(桥接、NAT、仅主机等),虚拟机内部都无法访问互联网,但宿主机可以正常上网。常见表现为:

  • 浏览器打不开网页

  • ping 外部 IP 或域名超时

  • 虚拟机网卡未获取到 IP 地址

二、问题原因分析

虚拟机上网涉及多个层次,任何一个环节出错都可能导致无法联网。主要排查方向包括:

  1. 宿主机服务:VMware 的相关网络服务未运行。

  2. 虚拟机内部配置:网卡未启用、IP 未获取、路由错误、DNS 问题等。

  3. 虚拟网络组件:虚拟交换机(VMnet)配置错误或损坏。

  4. 权限问题 :执行网络命令时未使用 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 网络。

掌握以上步骤后,绝大多数网络故障都能自行解决。记住关键命令和配置文件位置,遇到问题时按部就班地诊断,就能快速定位问题所在。

相关推荐
历程里程碑2 小时前
Linux 46 HTTPS(协议原理)安全通信全流程解析
linux·网络·c++·网络协议·http·https·排序算法
00后程序员张2 小时前
iOS 应用的 HTTPS 连接端口在网络抓包调试中有什么作用
android·网络·ios·小程序·https·uni-app·iphone
m0_738120722 小时前
网络安全编程——PHP基础Session详细讲解
android·网络·windows·安全·web安全·php
阿成学长_Cain2 小时前
Windows IP 配置查看器 ipconfig 详解
开发语言·php
Yupureki2 小时前
《C++实战项目-高并发内存池》2.ObjectPool构造
linux·服务器·c语言·开发语言·jvm·c++
电子科技圈2 小时前
BANF与芯科科技携手推出智能轮胎监测解决方案实现“最后的模拟领域”的数字化转型
网络·人工智能·嵌入式硬件·物联网·车载系统·智能硬件·交通物流
XiYang-DING2 小时前
【Java SE】Java中的static关键字总结
java·开发语言
格林威2 小时前
工业相机图像高速存储(C++版):内存映射文件(MMF)零拷贝方案,附堡盟 (Baumer) 相机实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
沐知全栈开发2 小时前
正则表达式入门教程
开发语言