跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Shell / Bash

解决 Linux/Windows 宿主机与 VMware 虚拟机间网络互通问题

对 VMware 虚拟机在 Windows 和 Linux 宿主机下的网络互通问题提供排查方案。涵盖防火墙阻挡、NAT 端口转发失效、桥接模式 IP 获取失败等常见场景。通过重置网络服务、配置静态路由、调整 Host-Only 模式及 DNS 设置等方法解决连通性问题。同时提供高级调试工具如 Wireshark 及诊断脚本,并给出快照备份与最佳实践建议以确保环境稳定。

Elasticer发布于 2026/3/16更新于 2026/5/519 浏览
解决 Linux/Windows 宿主机与 VMware 虚拟机间网络互通问题

通用排查流程图(先按这个顺序来)

1. 检查虚拟机状态 → 2. 确认网络适配器模式 → 3. 检查 IP 配置 → 4. 测试基础连通性
是否开机?桥接/NAT/仅主机?同网段?ping 通?
是 → 下一步 确认模式正确 否 → 调整IP 是 → 检查服务端口 是 → 下一步 否 → 检查防火墙

一、Windows 宿主机常见问题及解决

问题 1:虚拟机能上网,但宿主机 ping 不通虚拟机

原因:Windows Defender 防火墙阻挡 解决:

# 管理员权限运行 PowerShell
# 1. 允许 ICMP(ping)通过
New-NetFirewallRule -DisplayName "Allow VM Ping" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow
# 2. 或直接关闭防火墙(测试用,生产环境不推荐)
netsh advfirewall set allprofiles state off
# 3. 检查 VMware 服务是否运行
Get-Service | Where-Object {$_.Name -like "*VMware*"} | Select-Object Name, Status
# 确保以下服务运行:
# - VMware NAT Service
# - VMware DHCP Service
# - VMware Authorization Service
问题 2:NAT 模式下端口转发失效

解决步骤:

  1. 打开 VMware 虚拟网络编辑器
    • 开始菜单 → VMware → Virtual Network Editor
    • 选择 VMnet8 (NAT 模式) → NAT Settings
  2. 添加端口转发规则
示例:将宿主机的 8022 端口转发到虚拟机的 22 端口
Host Port: 8022 Type: TCP Virtual IP: 192.168.xxx.xxx (虚拟机 IP) Port: 22
  1. 检查 Windows 路由表
# CMD 管理员模式
route print
# 应看到类似:
# 网络目标 网络掩码 网关 接口
# 192.168.xxx.0 255.255.255.0 在链路上 192.168.xxx.1
问题 3:桥接模式获取不到 IP

解决:

  1. 检查物理网卡选择
    • 虚拟机设置 → 网络适配器 → 桥接模式
    • 点击'桥接到:'选择正确的物理网卡(有线选以太网,无线选 WLAN)
  2. 重置网络
# CMD 管理员模式
# 重置 Winsock
netsh winsock reset
# 重置 TCP/IP
netsh int ip reset
# 重启 VMware 服务
net stop VMnetDHCP
net start VMnetDHCP
net stop VMnetNAT
net start VMnetNAT

二、Linux 宿主机常见问题及解决

问题 1:虚拟机无法上网(NAT 模式)

解决:

# 1. 检查 iptables 规则(CentOS/RHEL)
sudo iptables -L -n -v | grep -i vmware
# 如果没有相关规则,添加
sudo iptables -I INPUT -i vmnet8 -j ACCEPT
sudo iptables -I OUTPUT -o vmnet8 -j ACCEPT
# 2. 检查 NAT 转发(Ubuntu/Debian)
sudo sysctl net.ipv4.ip_forward
# 如果返回 0,启用转发
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 3. 重启 VMware 网络服务
sudo systemctl restart vmware-networks
问题 2:桥接模式失效

解决:

# 1. 检查网络接口
ip link show
# 确认有 vmnet0(桥接接口)
# 2. 创建桥接(如果缺失)
sudo brctl addbr vmnet0
sudo brctl addif vmnet0 eth0 # eth0 改为你的物理网卡名
sudo ip link set vmnet0 up
# 3. 配置虚拟机使用桥接
# 编辑虚拟机.vmx 文件
echo 'ethernet0.connectionType = "bridged"' >> ~/vmware/your_vm/your_vm.vmx
echo 'ethernet0.vnet = "vmnet0"' >> ~/vmware/your_vm/your_vm.vmx
问题 3:USB 网络适配器桥接问题

解决:

# 识别 USB 网卡
lsusb | grep -i network
# 或 ip link show | grep -i usb
# 创建专用桥接
sudo nmcli connection add type bridge ifname br-usb con-name br-usb
sudo nmcli connection add type ethernet ifname enx0c5b8f279a04 master br-usb
sudo nmcli connection up br-usb

三、跨平台通用解决方案

方案 1:重置所有 VMware 网络
# Linux
sudo vmware-networks --stop
sudo vmware-networks --start
# Windows(管理员 CMD)
"C:\Program Files (x86)\VMware\VMware Workstation\vmnetcfg.exe" -R
方案 2:使用 Host-Only 模式 + 静态路由

步骤:

  1. 虚拟机设置为 Host-Only(VMnet1)
  2. 宿主机配置静态路由:
# Windows
route add 192.168.10.0 mask 255.255.255.0 192.168.1.1
# 192.168.10.0 是虚拟机网段,192.168.1.1 是宿主机网关
# Linux
sudo ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0
  1. 虚拟机设置静态 IP:
# Linux 虚拟机
sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    ens33:
      addresses: [192.168.10.10/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
方案 3:DNS 解析失败问题
# 在虚拟机内执行
# 检查 DNS 配置
cat /etc/resolv.conf
# 临时修改
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
# 永久修改(Ubuntu)
sudo nano /etc/systemd/resolved.conf
# 添加:DNS=8.8.8.8 114.114.114.114

四、高级调试工具

工具集使用:
# 1. 网络扫描(找 IP)
# Windows: Advanced IP Scanner
# Linux: sudo nmap -sn 192.168.1.0/24
# 2. 抓包分析
# 跨平台 Wireshark,过滤 VMware 流量:
# 过滤器:eth.src == 00:0c:29:xx:xx:xx 或 ip.addr == 192.168.xxx.xxx
# 3. 路由跟踪
# Windows: tracert 192.168.10.10
# Linux: traceroute 192.168.10.10
# 虚拟机内反向 trace:traceroute 192.168.1.100 # 宿主机 IP
一键诊断脚本(Linux 宿主机)
#!/bin/bash
# vm_network_diagnose.sh
echo "=== VMware 网络诊断开始 ==="
echo "1. 检查服务状态..."
systemctl status vmware-networks --no-pager -l
echo -e "\n2. 检查虚拟接口..."
ip addr show | grep -A 5 vmnet
echo -e "\n3. 检查 NAT 转发..."
sudo iptables -t nat -L -n -v | grep -A 5 -B 5 MASQUERADE
echo -e "\n4. 测试虚拟机连通性..."
read -p "输入虚拟机 IP: " vm_ip
ping -c 4 $vm_ip 2>/dev/null && echo "Ping 成功!" || echo "Ping 失败!"
echo -e "\n5. 建议操作:"
echo "如果 Ping 失败,尝试:"
echo " sudo systemctl restart vmware-networks"
echo " 检查虚拟机防火墙:sudo ufw status"
echo " 确认 IP 在同一网段"
echo "=== 诊断结束 ==="

五、预防措施与最佳实践

配置清单:
  • 快照备份:修改网络前创建快照
  • IP 规划表:
宿主机:192.168.1.100/24
虚拟机 NAT:192.168.10.10/24 (网关:192.168.10.1)
虚拟机桥接:192.168.1.101/24
虚拟机 Host-Only:192.168.20.10/24
  • 防火墙规则:提前放行必要端口
  • 文档记录:记录每个虚拟机的网络配置
快速恢复命令:
# Windows 恢复脚本
Stop-Service -Name "VMware*" -Force
Start-Service -Name "VMware NAT Service"
Start-Service -Name "VMware DHCP Service"
Start-Service -Name "VMware Authorization Service"
# 重启虚拟机网络
& "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" reset "[虚拟机路径.vmx]"

特别提醒

版本兼容性:

  • VMware Workstation 17+ 对 Windows 11/WSL2 支持更好
  • Linux 内核 5.15+ 可能需要重新编译 vmnet 模块:
sudo vmware-modconfig --console --install-all

安全注意事项:

  • 桥接模式下虚拟机暴露在物理网络
  • NAT 模式下端口转发需谨慎
  • 定期更新 VMware Tools 驱动

目录

  1. 通用排查流程图(先按这个顺序来)
  2. 一、Windows 宿主机常见问题及解决
  3. 问题 1:虚拟机能上网,但宿主机 ping 不通虚拟机
  4. 管理员权限运行 PowerShell
  5. 1. 允许 ICMP(ping)通过
  6. 2. 或直接关闭防火墙(测试用,生产环境不推荐)
  7. 3. 检查 VMware 服务是否运行
  8. 确保以下服务运行:
  9. - VMware NAT Service
  10. - VMware DHCP Service
  11. - VMware Authorization Service
  12. 问题 2:NAT 模式下端口转发失效
  13. CMD 管理员模式
  14. 应看到类似:
  15. 网络目标 网络掩码 网关 接口
  16. 192.168.xxx.0 255.255.255.0 在链路上 192.168.xxx.1
  17. 问题 3:桥接模式获取不到 IP
  18. CMD 管理员模式
  19. 重置 Winsock
  20. 重置 TCP/IP
  21. 重启 VMware 服务
  22. 二、Linux 宿主机常见问题及解决
  23. 问题 1:虚拟机无法上网(NAT 模式)
  24. 1. 检查 iptables 规则(CentOS/RHEL)
  25. 如果没有相关规则,添加
  26. 2. 检查 NAT 转发(Ubuntu/Debian)
  27. 如果返回 0,启用转发
  28. 3. 重启 VMware 网络服务
  29. 问题 2:桥接模式失效
  30. 1. 检查网络接口
  31. 确认有 vmnet0(桥接接口)
  32. 2. 创建桥接(如果缺失)
  33. 3. 配置虚拟机使用桥接
  34. 编辑虚拟机.vmx 文件
  35. 问题 3:USB 网络适配器桥接问题
  36. 识别 USB 网卡
  37. 或 ip link show | grep -i usb
  38. 创建专用桥接
  39. 三、跨平台通用解决方案
  40. 方案 1:重置所有 VMware 网络
  41. Linux
  42. Windows(管理员 CMD)
  43. 方案 2:使用 Host-Only 模式 + 静态路由
  44. Windows
  45. 192.168.10.0 是虚拟机网段,192.168.1.1 是宿主机网关
  46. Linux
  47. Linux 虚拟机
  48. 方案 3:DNS 解析失败问题
  49. 在虚拟机内执行
  50. 检查 DNS 配置
  51. 临时修改
  52. 永久修改(Ubuntu)
  53. 添加:DNS=8.8.8.8 114.114.114.114
  54. 四、高级调试工具
  55. 工具集使用:
  56. 1. 网络扫描(找 IP)
  57. Windows: Advanced IP Scanner
  58. Linux: sudo nmap -sn 192.168.1.0/24
  59. 2. 抓包分析
  60. 跨平台 Wireshark,过滤 VMware 流量:
  61. 过滤器:eth.src == 00:0c:29:xx:xx:xx 或 ip.addr == 192.168.xxx.xxx
  62. 3. 路由跟踪
  63. Windows: tracert 192.168.10.10
  64. Linux: traceroute 192.168.10.10
  65. 虚拟机内反向 trace:traceroute 192.168.1.100 # 宿主机 IP
  66. 一键诊断脚本(Linux 宿主机)
  67. vmnetworkdiagnose.sh
  68. 五、预防措施与最佳实践
  69. 配置清单:
  70. 快速恢复命令:
  71. Windows 恢复脚本
  72. 重启虚拟机网络
  73. 特别提醒
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Go 命令行 AI 对话客户端开发:环境部署与核心代码解析
  • 无人机植物病害目标检测数据集(1500 张已标注图片)
  • 从零开始学编程:五种最适合新手的入门语言
  • Java Map 和 Set 数据结构详解与对比
  • Ubuntu 22.04 安装 VMware Workstation Pro 实战指南
  • Flutter 三方库 bavard 的鸿蒙化适配指南:语义化聊天协议与机器人逻辑
  • Whisper.cpp 完整使用指南
  • 一卡通核心交易平台国产数据库实践:架构迁移与高可用落地
  • VSCode AI Copilot 代码文档自动生成指南
  • 前端消息提示组件设计与最佳实践
  • Python 爬虫进阶:API 接口逆向与无浏览器高效爬取
  • AI 时代前端设计稿生成实战:三种高效工具流
  • C++ 哈希表底层原理与实现:从散列函数到冲突处理
  • Python 趣味小游戏代码示例:吃金币、打乒乓等 13 款
  • Windows 7 系统下 Git 安装与配置指南
  • AI 辅助 Python 毕业设计项目架构搭建与实现
  • C++ 基础语法与算法初步:从循环到递归
  • AirSim 无人机仿真入门:实现无人机的起飞与降落
  • Python 反向循环的 3 大核心方法:[::-1] 详解
  • Python 使用 PIL 库生成五彩斑斓的黑色图像

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online