资讯动态

VMware虚拟机与宿主机网络互通:从Ping通到SSH/Samba配置全解析

发布时间:2026/8/5 22:03:04 来源:尧图企业网站定制
1. 项目概述为什么虚拟机与宿主机需要互Ping刚接触虚拟化技术的新手在VMware里装好Ubuntu后第一件想验证的事往往就是网络通不通。一个简单的ping命令背后却可能藏着从“请求超时”到“网络不可达”的各种拦路虎。虚拟机Guest和宿主机Host之间无法互Ping是学习路上一个非常典型且恼人的起点。这不仅仅是网络连通性的问题更直接影响到后续的文件共享、远程调试、服务部署等一系列关键操作。比如你想在Ubuntu里搭个Web服务器然后在Win10上用浏览器访问或者想用Win10上的工具连接Ubuntu的SSH服务如果底层网络都不通一切高级应用都无从谈起。这个问题的核心在于理解VMware提供的几种网络连接模式——桥接、NAT和仅主机——的工作原理以及如何在两种不同的操作系统Windows 10和Ubuntu上进行正确的网络配置。很多人照着教程一步步做虚拟机自己能上网但就是和宿主机“老死不相往来”问题往往出在细节的配置偏差或理解误区上。本文将从一个资深运维的角度手把手带你拆解VMware虚拟机以Ubuntu为例与Windows 10宿主机之间实现双向Ping通的完整流程不仅告诉你每一步怎么做更会深入解释每一步背后的原理和设计意图让你彻底弄懂虚拟网络的来龙去脉从此告别网络配置的玄学。2. 核心网络模式原理与选型决策实现互Ping的第一步不是急着去敲命令而是要为你的虚拟机选择一个正确的“网络身份”。VMware Workstation主要提供三种网络适配器模式它们决定了你的虚拟机在网络世界中以何种方式存在。2.1 三种主流网络模式深度解析桥接模式 (Bridged Networking)这是最直观的模式。你可以把虚拟机的网络适配器想象成一根虚拟的网线直接插在了你宿主机物理网卡所在的同一个物理交换机上。在这种模式下网络地位虚拟机会从你所在局域网的DHCP服务器通常是路由器获取一个IP地址这个地址和你的宿主机Win10的IP地址处于同一个网段。例如你的Win10 IP是192.168.1.100那么Ubuntu虚拟机获取的IP可能就是192.168.1.101。通信范围虚拟机就像一台真实存在的、新接入局域网的电脑。它不仅可以和宿主机通信还可以和局域网内的其他设备如另一台电脑、你的手机、打印机通信并且通常也能直接访问互联网。适用场景需要虚拟机作为独立网络节点存在的场景比如搭建一个需要被局域网内其他设备访问的服务器Web、文件共享。潜在问题如果局域网IP地址紧张DHCP地址池有限或者网络管理员有绑定MAC地址等安全策略可能会导致虚拟机获取不到IP或无法上网。NAT模式 (Network Address Translation)这是VMware默认且最常用的模式尤其适合个人开发和学习环境。网络地位VMware会为宿主机构建一个私有的虚拟网络通常是192.168.xxx.0/24网段。虚拟机在这个私有网络内获得IP例如192.168.137.101而宿主机则充当这个私有网络的“网关”和“路由器”。当虚拟机访问外网时数据包经由宿主机进行网络地址转换NAT以宿主机的IP身份发出。通信特性虚拟机 - 宿主机/外网默认畅通。虚拟机可以Ping通宿主机也能上网。宿主机 - 虚拟机默认也是畅通的。因为宿主机是虚拟网络的网关它“知道”如何找到网络内的虚拟机。局域网其他设备 - 虚拟机默认不通。因为虚拟机处于宿主机创建的私有NAT网络之后对外部网络是不可见的。这实际上提供了一层简单的网络隔离增加了安全性。适用场景绝大多数个人开发、测试环境。虚拟机可以方便地上网、与宿主机交互同时又不会干扰到物理局域网。仅主机模式 (Host-Only)这是最封闭的模式创建了一个完全独立的私有网络仅包含宿主机和虚拟机。网络地位虚拟机与宿主机通过一个纯粹的虚拟网络连接该网络与外部物理网络完全隔离。虚拟机无法访问互联网也无法被局域网内其他设备访问。通信特性宿主机和虚拟机之间可以互相通信但仅此而已。适用场景需要绝对隔离的网络测试、安全研究或者构建一个纯粹的内部实验环境。注意VMware的“仅主机模式”网络对应一个特定的虚拟网卡如VMnet1而“NAT模式”对应另一个虚拟网卡如VMnet8。你可以在Windows的“网络连接”设置里看到它们。2.2 模式选择与实战建议对于“实现Ubuntu与Win10互Ping”这个目标NAT模式是首选也是我们后续配置演示的基础。理由如下开箱即用性高在大多数情况下新建虚拟机选择NAT模式启动后就能实现虚拟机到宿主机的单向Ping通宿主机到虚拟机有时需要额外检查防火墙。配置最简单无需关心物理局域网的状况如路由器设置、IP冲突。安全性好虚拟机被隐藏不影响公司或家庭网络。满足绝大部分需求开发、学习、服务测试虚拟机与宿主机的双向通信足以覆盖。因此除非你有明确需求要让虚拟机像真机一样暴露在局域网中否则请优先将虚拟机的网络适配器设置为NAT模式。3. 宿主机Windows 10侧关键配置详解很多人配置了半天虚拟机结果问题出在宿主机上。Win10系统尤其是较新的版本其防火墙策略比以往更为严格。3.1 防火墙规则配置放行ICMP协议Windows防火墙默认会阻止来自外部的Ping请求ICMP Echo Request这是导致“宿主机能Ping通虚拟机但虚拟机Ping宿主机超时”的最常见原因。我们需要手动创建一条入站规则。操作步骤在Win10搜索框输入“高级安全 Windows 防火墙”并打开它。在左侧面板点击“入站规则”然后在右侧操作面板点击“新建规则...”。规则类型选择“自定义”然后点击“下一步”。程序保持“所有程序”点击“下一步”。协议和端口“协议类型”选择ICMPv4。点击下方的“自定义...”。在弹出的“自定义ICMP设置”窗口中选择“特定ICMP类型”。在列表中找到并勾选“回显请求”Echo Request。点击“确定”。点击“下一步”。作用域可以保持默认任何IP地址如果你希望更安全可以将“远程IP地址”设置为你的虚拟机所在网段例如192.168.137.0/24。点击“下一步”。操作选择“允许连接”点击“下一步”。配置文件根据你的网络环境勾选域、专用、公用。通常至少勾选“专用”如果你在家庭或工作网络。点击“下一步”。名称给规则起一个易于识别的名字例如“允许虚拟机PingICMPv4”。点击“完成”。原理与注意事项Ping命令使用的是ICMPInternet控制消息协议协议而非TCP或UDP。因此在TCP/UDP端口上放行是无效的必须针对ICMP协议本身创建规则。创建规则后建议立即测试而不要等到所有配置完成。可以在Ubuntu虚拟机里直接尝试Ping宿主机的IP看是否依然超时。如果宿主机安装了第三方安全软件如360、火绒、McAfee等它们可能也有自己的防火墙。你需要同样在这些软件中寻找相关设置放行ICMP入站请求或者暂时退出这些软件以排除干扰。3.2 确认宿主机的虚拟网卡与IP地址在NAT模式下宿主机与虚拟机通信使用的是VMware创建的虚拟网卡VMnet8的IP地址而不是你连接Wi-Fi或网线的那个物理网卡的IP地址。查看方法在Win10中按Win R输入ncpa.cpl打开“网络连接”。找到名为“VMware Network Adapter VMnet8”的连接。这就是用于NAT模式的虚拟网卡。双击它点击“详细信息”。查看其“IPv4地址”。这个地址通常是192.168.xxx.1例如192.168.137.1。这个地址就是你在Ubuntu虚拟机中需要Ping的宿主机地址同时它也是虚拟机的默认网关。重要检查点确保这块虚拟网卡是“已启用”状态。记下这个IP地址后续在Ubuntu中配置静态IP或测试时要用到。4. 虚拟机Ubuntu侧配置与优化Ubuntu侧的配置相对直接核心是获取正确的IP地址并确保其网络服务正常运行。4.1 网络配置DHCP与静态IP方法一使用DHCP推荐初学者这是默认方式。启动Ubuntu后系统会自动从VMware的虚拟DHCP服务器集成在NAT服务中获取IP地址、网关和DNS。查看IP在Ubuntu终端中执行ip addr show或ifconfig如果未安装net-tools则用前者。找到主要网卡通常是ens33或eth0查看其inet字段后的地址。它应该和宿主机VMnet8的IP在同一网段如宿主机192.168.137.1虚拟机192.168.137.128。测试此时尝试ping 192.168.137.1宿主机VMnet8 IP应该能通。再尝试ping 8.8.8.8测试外网连通性。方法二配置静态IP适合需要固定IP的环境如果你讨厌IP地址变动或者要配置一些依赖固定IP的服务可以设置静态IP。编辑网络配置文件。对于Ubuntu 18.04及以上版本通常使用Netplan。配置文件位于/etc/netplan/目录下文件名可能是01-netcfg.yaml或50-cloud-init.yaml。sudo nano /etc/netplan/01-netcfg.yaml将内容修改为如下示例请根据你的实际网络信息调整network: version: 2 ethernets: ens33: # 你的网卡名称用 ip addr show 查看 dhcp4: no addresses: [192.168.137.100/24] # 静态IP和子网掩码 gateway4: 192.168.137.1 # 网关即宿主机VMnet8的IP nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器应用配置sudo netplan apply验证配置再次使用ip addr show查看IP是否已变更为你设置的静态IP。实操心得在实验环境我强烈建议先使用DHCP确保基础网络是通的。在能Ping通宿主机和外网之后再考虑改为静态IP。这样可以有效隔离问题如果DHCP都不通那很可能是VMware服务或虚拟机网络模式设置的问题如果DHCP通而静态IP不通那问题肯定出在静态IP的配置上。4.2 Ubuntu防火墙UFW管理Ubuntu默认安装了UFWUncomplicated Firewall但默认是禁用状态。这是一个好消息意味着通常它不会阻止Ping。检查状态sudo ufw status。如果显示inactive则防火墙未启用无需额外操作。如果启用了UFW需要放行ICMP。UFW默认的allow规则已经包含了ICMP回应。但如果你修改过默认策略可以显式允许sudo ufw allow in proto icmp。不过更常见的问题是UFW完全阻断了所有入站连接你可以先用sudo ufw disable临时关闭它来测试是否是防火墙问题。5. 双向Ping测试与深度诊断流程配置完成后需要系统性地进行测试以定位问题究竟出在哪一环。5.1 系统性测试步骤请严格按照以下顺序进行每一步都是下一步的基础虚拟机内部回环测试在Ubuntu终端执行ping 127.0.0.1。这测试虚拟机自身的TCP/IP协议栈是否正常。必须成功。虚拟机Ping宿主机虚拟网卡IP在Ubuntu终端执行ping 192.168.xxx.1你的VMnet8地址。这测试虚拟机到宿主机虚拟网络的连通性。如果这一步失败问题大概率在虚拟机网络配置或VMware NAT服务上。虚拟机Ping外网在Ubuntu终端执行ping 8.8.8.8。这测试虚拟机的NAT网关和DNS解析如果ping域名是否工作。如果第2步通而第3步不通可能是宿主机本身无法上网或VMware NAT服务故障。宿主机Ping虚拟机在Win10命令提示符CMD或PowerShell中执行ping 192.168.xxx.xxx你的Ubuntu虚拟机IP。这测试宿主机防火墙是否放行了ICMP入站请求。如果第2步通而第4步不通问题几乎可以锁定在Windows防火墙或第三方安全软件上。宿主机Ping外网在Win10中ping 8.8.8.8确保宿主机自身网络正常。5.2 高级诊断命令与工具当Ping不通时除了看“请求超时”还可以利用更多工具进行诊断traceroute(Ubuntu) /tracert(Windows)追踪数据包路径看是在哪一跳丢失的。例如在Ubuntu上traceroute 192.168.137.1如果第一跳就是*说明根本没出虚拟机。arp -a(Windows)查看ARP缓存表。在宿主机上执行此命令看是否能找到虚拟机IP对应的MAC地址。如果找不到说明二层通信就有问题。检查VMware虚拟网络编辑器在VMware Workstation的“编辑”菜单中打开“虚拟网络编辑器”。确保“VMnet8NAT模式”是存在的并且其子网IP、子网掩码与你的虚拟机IP匹配。可以尝试点击“还原默认设置”注意这会重置所有VMware网络配置。6. 常见问题排查与终极解决方案清单根据多年经验我将互Ping失败的问题归纳为以下几类并提供排查思路。6.1 问题分类与排查矩阵问题现象可能原因排查步骤优先级从高到低Ubuntu Ping不通宿主机1. 虚拟机网络适配器未设置为NAT。2. Ubuntu未获取到IPDHCP失败。3. VMware NAT服务未运行。4. 虚拟机网卡被禁用。1. 检查VMware虚拟机设置 - 网络适配器 - NAT。2. 在Ubuntu中运行ip addr show查看网卡是否有inet地址。若无尝试sudo dhclient -v ens33。3. 在Win10服务中services.msc确保VMware NAT Service和VMware DHCP Service处于“正在运行”状态。4. 在Ubuntu中尝试sudo ip link set ens33 up假设网卡是ens33。宿主机Ping不通Ubuntu1. Windows防火墙阻止ICMP入站。2. 第三方安全软件阻止。3. 宿主机的VMnet8虚拟网卡被禁用或IP不对。4. 虚拟机防火墙如UFW启用并阻止。1. 按本文3.1节创建防火墙入站规则或临时完全关闭防火墙测试。2. 暂时退出或配置第三方安全软件。3. 在“网络连接”中确保VMnet8已启用并确认其IP是192.168.xxx.1。4. 在Ubuntu中执行sudo ufw status检查若启用则sudo ufw disable临时关闭测试。双方均无法Ping通且虚拟机无法上网1. VMware虚拟网络服务异常。2. 宿主机的网络连接共享设置冲突。3. 系统网络栈异常。1. 重启所有VMware相关服务NAT, DHCP, Authd等。2. 检查物理网卡的属性确保没有在“共享”标签页下启用Internet连接共享给VMnet8这会引起冲突。3.终极大招在VMware虚拟网络编辑器中点击“还原默认设置”。注意这会清除所有自定义网络设置。然后重启VMware Workstation和虚拟机。能Ping通IP但Ping不通主机名DNS解析问题。1. 在Ubuntu中检查/etc/resolv.conf文件确认nameserver设置正确如192.168.137.1或8.8.8.8。2. 在宿主机和虚拟机上分别检查hosts文件Windows:C:\Windows\System32\drivers\etc\hosts; Linux:/etc/hosts看是否有错误条目。6.2 两个极易忽略的“坑”虚拟机快照或挂起状态如果你是从一个网络不通状态的快照恢复或者虚拟机处于挂起状态后恢复有时网络配置会“卡住”。尝试完全关闭虚拟机关机然后在VMware中将其网络适配器先断开连接再重新连接最后启动虚拟机。多网卡环境如果宿主机有多个物理网卡如有线无线或者安装了Docker、Hyper-V等创建了虚拟网卡的软件可能会造成路由混乱。在命令提示符下用route print命令查看路由表确保发往虚拟机网段如192.168.137.0的数据包是通过VMnet8接口跃点数较低发送的而不是被错误地导向了其他网卡。7. 超越Ping网络连通后的进阶应用当双向Ping通之后虚拟机和宿主机之间的协作大门才真正打开。这里分享几个立刻就能用上的实战应用。7.1 使用SSH进行安全远程管理这是最常用的功能。在Ubuntu上安装并启动SSH服务后你就可以在Win10上使用PuTTY、MobaXterm或Windows Terminal直接通过命令行安全地管理虚拟机。Ubuntu侧操作sudo apt update sudo apt install openssh-server sudo systemctl enable --now ssh安装后使用ip addr查看Ubuntu的IP地址。Windows侧操作打开PowerShell或命令提示符使用SSH命令连接ssh usernameubuntu_ip_address例如ssh zhangsan192.168.137.100。首次连接需要确认主机密钥。7.2 配置Samba实现文件共享在虚拟机和宿主机之间拖拽文件有时并不方便通过Samba协议建立网络共享文件夹是最稳定的方式。Ubuntu侧操作安装和配置Samba服务器sudo apt update sudo apt install samba编辑Samba配置文件/etc/samba/smb.conf在文件末尾添加类似如下配置[ubuntu_share] path /home/yourname/shared_folder browseable yes read only no guest ok yes # 允许匿名访问生产环境建议设为no并配置用户 create mask 0775创建共享目录并设置权限mkdir ~/shared_folder sudo chmod -R 777 ~/shared_folder # 简单测试用实际应按需设置重启Samba服务sudo systemctl restart smbdWindows侧操作在文件资源管理器的地址栏输入\\ubuntu_ip_address如\\192.168.137.100即可访问共享文件夹。7.3 端口转发与内网服务访问在NAT模式下外部网络无法直接访问虚拟机的服务。但VMware提供了端口转发功能可以将宿主机的某个端口映射到虚拟机的某个端口。设置方法在VMware虚拟机设置中打开虚拟机设置 - 网络适配器 - NAT设置 - 端口转发。添加一条新规则主机端口8080在Win10上访问的端口虚拟机IP地址192.168.137.100虚拟机端口80假设Ubuntu运行了Web服务这样当你在Win10浏览器访问http://localhost:8080时流量就会被转发到Ubuntu虚拟机的80端口。这个功能对于开发Web应用、数据库服务等非常有用让你能在宿主机上用熟悉的浏览器和工具直接测试虚拟机内的服务。网络是虚拟化技术的血脉而Ping通则是血脉畅通的第一个信号。从理解三种网络模式的本质出发到在宿主机和虚拟机两侧进行精准的配置与排查这个过程本身就是一次对网络基础的巩固。记住那个系统性的测试流程它不仅能解决Ping的问题也是诊断任何网络连通性问题的通用框架。当绿色的小点开始跳动数据包往返无阻时你拥有的不仅仅是一个能用的虚拟机更是一个完全受控、可供你随意构建和实验的沙盒环境。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价