VMware虚拟机与主机共享文件:Tools安装、拖拽、共享文件夹与SMB网络共享
2026/9/16 19:23:22 网站建设 项目流程

很多人第一次玩VMware虚拟机时,最先被劝退的其实不是系统安装,而是文件传不进去。刚装好一个Windows虚拟机,想从电脑主机拖个安装包过去,结果鼠标卡在虚拟机窗口里出不来,文件拖了半天没反应,最后只能干瞪眼。这个场景我太熟了,当年我也是这么折腾过来的。后来把VMware Tools装好、共享文件夹配明白之后才发觉,所谓“电脑主机与VMware虚拟机共享文件”,本质上就那么几条路,每一条都有它的脾气。

这篇教程不扯没用的,直接把我实际试过的几种共享方案全部摆出来,包括VMware Tools拖拽、复制粘贴、共享文件夹、网络SMB共享,以及对应的配置步骤和踩坑点。不管你是刚装好虚拟机的新手,还是正在为“虚拟机里看不到共享盘”发愁的老手,照着操作基本都能解决。

1. 先理清思路:主机和虚拟机之间传文件的几种主流方案

1.1 为什么VMware Tools是共享文件的前提

虚拟机是一个独立完整的系统,默认情况下,电脑主机和虚拟机之间是隔离的。主机看不到虚拟机内部的文件结构,虚拟机也看不到主机的磁盘,它们之间的“物理隔离”很有必要,否则虚拟机的稳定性就无从谈起。但这也带出一个现实问题:我们装虚拟机的目的,往往是要在两个系统之间传递文件,比如把Windows里的安装包传进Linux虚拟机,或者把虚拟机里生成的数据拷贝回主机。

VMware Tools就是打破这层隔离的关键组件。它是一整套驱动和工具,负责实现鼠标平滑进出、屏幕分辨率自适应、剪贴板共享、拖拽复制,以及最核心的Shared Folders共享文件夹功能。换句话说,没有VMware Tools,你就只剩网络共享、ISO镜像、U盘重定向这些“外部通道”可以用;装上VMware Tools之后,才能真正体会到虚拟机“融入主机”的那种顺手感。

我见过有人装了虚拟机半年,都不知道要装VMware Tools,每次传文件都是开一个网盘中转。不是不行,但效率确实低。所以不管你最终打算用哪种方式共享,先把VMware Tools装上,这是后面所有便捷操作的基础。

1.2 几种常见共享方式怎么选

以下是我实际用过的几种共享方式,各有优劣,先放在一起做个对比。

共享方式是否依赖VMware Tools稳定性适合场景
拖拽/复制粘贴依赖一般,大文件容易失败偶尔传小文件、复制文本
共享文件夹(Shared Folders)依赖很稳定大量文件、日常持续共享
网络SMB共享不依赖较稳定,依赖网络和权限配置多虚拟机、跨物理机共享
ISO镜像挂载不依赖很稳定一次性传大安装包、驱动
U盘/USB设备重定向不依赖很稳定临时插U盘传给虚拟机

如果你问我的建议,日常使用优先考虑共享文件夹,这是VMware最推荐、也最符合直觉的方式。少量零碎文件用拖拽就够了,不用开任何额外设置。如果虚拟机里没有安装VMware Tools,或者你想在宿主机和远程服务器之间传文件,那再考虑网络共享。

2. VMware Tools安装:所有共享功能的地基

2.1 安装前的环境确认

安装VMware Tools有几个前置条件需要确认,否则很容易装上之后功能不全或者安装过程报错。

  • 虚拟机电源需要处于开启状态,客户机操作系统必须已经运行到桌面。菜单位置“虚拟机 -> 安装VMware Tools”如果显示灰色,最常见原因就是没有选中虚拟机窗口,或者虚拟机没有真正启动起来。
  • 虚拟机安装介质会自动挂载。VMware会把对应的windows.iso或linux.iso挂到虚拟光驱,进到虚拟机里的“此电脑”能看到一个DVD驱动器。
  • 尽量避免使用过度精简版系统。有些精简版Windows或Linux为了减小体积,会阉割掉Visual C++运行库、.NET Framework等基础组件,导致VMware Tools安装程序跑一半就中断。我之前踩过这个坑,最后老老实实换回官方原版系统镜像才顺利装上。

确认完这些之后,就可以开始安装了。

2.2 Windows虚拟机里安装VMware Tools的完整步骤

在Windows虚拟机里安装VMware Tools,流程其实很常规:

  1. 启动虚拟机并登录到Windows桌面。
  2. 在VMware菜单栏点击“虚拟机” -> “安装VMware Tools”。如果此前装过旧版本,这里会显示“更新VMware Tools”。
  3. 虚拟机的光驱会自动挂载Tools安装盘,打开“此电脑”,能看到一个带有VMware图标的DVD驱动器,双击进入,找到setup.exe或64位系统的setup64.exe,右键以管理员身份运行。
  4. 安装程序启动后,选择“典型安装”,一路下一步。除非你需要自定义安装路径,否则不用动其他选项。
  5. 安装完成后会提示重启虚拟机,建议立即重启,确保驱动完全生效。

这里有一个容易被忽略的细节:安装过程中杀毒软件可能会拦截VMware Tools写驱动文件。如果你电脑上装了第三方安全软件,建议先把实时防护临时关掉,等Tools安装完再打开。不要问我怎么知道的,我曾经在一个企业版安全软件管控的机器上装Tools,前前后后试了五次都提示脚本失败,关了防护之后一次通过。

2.3 Linux虚拟机里安装VMware Tools的两种方式

Linux虚拟机装VMware Tools有两条路,我更推荐第一种。

  • 使用系统自带的open-vm-tools包。这是从VMware Tools衍生出来的开源版本,已经集成到大多数Linux发行版的软件源里。Debian/Ubuntu用sudo apt install open-vm-tools,CentOS/RHEL用sudo yum install open-vm-tools。安装完成后重启虚拟机即可。它的好处是不需要自己编译,更新跟着系统源走,省心。
  • 使用VMware自带的官方Tools包。在VMware菜单栏点击“安装VMware Tools”,在Linux虚拟机内挂载光驱,然后解压VMwareTools-x.x.x-xxxx.tar.gz,进入解压目录后执行sudo ./vmware-install.pl,全程按提示输入yes回车。这种方式在老系统上可能遇到内核头文件缺失的问题,需要先安装kernel-devel和gcc编译器,相对折腾。

我现在的习惯是能装open-vm-tools就尽量用它,只有遇到个别特殊情况,比如某发行版源里没有这个包,才会用官方Tools包。

2.4 安装后怎么确认Tools生效

Tools装完,不要急着关页面,先确认它真的生效了。

Windows虚拟机可以在“控制面板 -> 程序和功能”里看到VMware Tools的条目,任务栏右下角也会出现VMware Tools的图标。更直接的办法是同时按Ctrl+Alt,鼠标如果能自动从虚拟机窗口里“跑”回主机,说明驱动已经正常加载。

Linux虚拟机可以运行vmware-toolbox-cmd -v查看Tools版本,或者运行systemctl status vmtoolsd查看服务状态。如果之前用open-vm-tools,还能看到vmtoolsd服务处于active状态。

如果发现Tools装完但仍然不能拖拽或共享文件夹不生效,别急着卸载重装,先重启一下虚拟机。很多时候驱动没完全加载,重启就好了。

3. 共享文件夹功能配置:最稳定的方式

3.1 在虚拟机设置里添加共享文件夹

共享文件夹是VMware里最稳定的文件共享方式,它的原理不是模拟U盘,而是通过VMware Tools提供的hgfs文件系统驱动,让虚拟机直接访问主机上的某个目录。配置步骤如下:

  1. 在VMware工作台左侧选中目标虚拟机,点击“编辑虚拟机设置”。
  2. 切换到“选项”选项卡,找到“共享文件夹”。
  3. 将文件夹共享策略选择为“总是启用”。这里要特别注意,不要选“下次关机或挂起前启用”,否则虚拟机重启后共享就失效了。
  4. 点击“添加”按钮,弹出添加共享文件夹向导。
  5. 在“主机路径”中点击浏览,选择电脑主机上要共享的目录。在“名称”中填写一个共享名称,比如share
  6. 勾选“启用此共享”,然后完成。

添加完成后,可以在共享文件夹列表中看到这一项。如果“共享文件夹”设置页整体是灰色不可点,基本可以确定是VMware Tools没有装好,回头先把Tools搞定再说。

关于共享路径的选择,我个人的建议是不要在主机上共享系统盘里的一整个目录,比如C:\Users\xxx\Desktop这种。一方面权限容易出幺蛾子,另一方面也不安全。最好单独建一个专门用于虚拟机的共享目录,比如D:\Share,然后给虚拟机一个独立的盘符访问它,这样两边都清爽。

3.2 在Windows虚拟机里访问共享文件夹

共享文件夹配置好之后,Windows虚拟机里最直接的访问方式是在文件资源管理器地址栏输入:

\\vmware-host\Shared Folders\共享名称

比如你刚才设置的共享名称是share,就输入\\vmware-host\Shared Folders\share,回车就能看到主机上对应的目录内容。

这样每次手动输地址毕竟麻烦,我更推荐把它映射成一个网络驱动器。操作方式是:

  1. 打开“此电脑”,点击顶部菜单的“映射网络驱动器”。
  2. 选择一个磁盘驱动器,比如Z盘。
  3. 在“文件夹”输入框中填写\\vmware-host\Shared Folders\share
  4. 勾选“登录时重新连接”。
  5. 点击完成。

之后在虚拟机的“此电脑”里就会多出一个Z盘,使用起来跟本地磁盘没什么区别。很多程序员喜欢把代码工程放在这个共享盘里,主机和虚拟机共用一套文件,主机改代码,虚拟机里编译,非常方便。

3.3 Linux虚拟机里共享文件夹的挂载方式

Linux虚拟机访问共享文件夹和Windows不太一样,默认挂载路径通常是/mnt/hgfs/共享名称。如果安装的Tools正常,进入/mnt/hgfs就能看到你配置的共享目录。

但我在实际使用中发现,某些Linux发行版下/mnt/hgfs不会自动出现,或者出现目录但里面是空的。这时候需要手动挂载。对于使用vmhgfs-fuse的现代版本,可以执行:

sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000

如果你的系统还在使用传统的vmhgfs模块,也可以写成:

sudo mount -t vmhgfs .host:/ /mnt/hgfs

挂载之后,/mnt/hgfs下面就能看到你添加的共享名称。如果开机之后不想每次手动挂载,可以把挂载命令写入/etc/fstab,但具体写法因发行版而异,新手可以先用手动挂载方式,确认功能没问题再考虑开机自动挂载。

3.4 共享文件夹的权限和常见坑

共享文件夹在配置时有几个坑,都是我自己遇到过或者帮别人排查时碰到的。

  • 你添加共享文件夹时,如果向导里勾选了“只读”,虚拟机里就只能读不能写。很多人配置完说虚拟机没法往共享目录里保存文件,十有八九是这个“只读”勾上了。
  • “启用此共享”复选框一定记得勾选。不勾选的话,虽然列表中能看到共享项,但虚拟机里实际访问不到。
  • 主机上的共享目录如果放在UAC保护的特殊目录下,虚拟机中的普通程序可能因为权限问题无法正常写入。尽量把共享目录放在非系统盘根目录下的普通文件夹里。
  • 如果虚拟机里某些程序以管理员身份运行,而映射的网络驱动器是普通权限下映射的,可能会出现程序看不到Z盘这种情况。解决办法是用完整UNC路径\\vmware-host\Shared Folders\share直接访问,或者修改注册表开启EnableLinkedConnections来让管理员和普通进程共享登录凭据。
  • 主机上的安全软件可能会把虚拟机对共享目录的写入当成外部进程访问,特别是开启“受控文件夹访问”功能的Windows安全中心,有时候会拦截。如果发现主机上无法正常生成虚拟机写入的文件,可以检查一下安全中心的保护记录。

4. 拖拽复制与剪贴板共享:最方便但需要调教

4.1 打开拖拽复制功能的两个开关

安装好VMware Tools后,正常情况下VMware默认就开启了拖拽和复制粘贴。但也有例外,有些虚拟机配置文件或者组策略会禁用这个功能,所以需要手动检查两个地方。

第一个地方是“编辑虚拟机设置 -> 选项 -> 客户机隔离”,里面会看到“启用拖拽”和“启用复制粘贴”两个复选框。勾选之后,主机和虚拟机之间的拖拽、复制粘贴才被允许。

第二个地方是VMware全局偏好设置,点击菜单栏“编辑 -> 首选项 -> 输入设备”(具体版本可能叫法不同),里面也有关于拖放和复制粘贴的全局选项。如果你发现只有某一台虚拟机不能拖拽,先看虚拟机设置;如果所有虚拟机都不行,再看全局偏好。

开启之后,直接从主机桌面选中一个文件,按住鼠标拖到虚拟机窗口内松开,文件就会自动复制到虚拟机的桌面或者当前打开的文件管理器目录。文本内容也可以双向复制粘贴,非常方便。

4.2 大文件拖拽容易失败的原因与补救

拖拽复制虽然方便,但它不是万能的,尤其传大文件的时候经常翻车。原因是VMware Tools的拖拽功能在后台会把源文件先复制到一个临时目录,再由目标系统移动到指定位置。这个临时目录一般位于系统盘,如果文件很大、系统盘空间又紧张,就很容易在复制过程中卡住,甚至直接报错无响应。

我实际测试下来的经验是,几百MB以内的小文件拖拽基本上没问题,偶尔传一个一两百MB的安装包也能跑完。但超过1GB的大文件,或者包含几千个小文件的文件夹,拖拽就非常吃力。这种情况下老老实实走共享文件夹通道,速度和稳定性都会好很多。

还有一个经验之谈:如果你是在虚拟机里通过UAC弹出的管理员窗口拖拽文件,很可能会失败。因为UAC权限隔离的存在,普通权限的Shell窗口里的拖拽操作无法传递到管理员进程。遇到这种情况,先把文件放到桌面,再从桌面拖一次。

4.3 拖拽失效的排查清单

我整理了一份拖拽失效时的排查清单,按顺序执行,基本能覆盖大多数问题。

  1. 确认VMware Tools已经安装并且版本和VMware Workstation对应。Tools版本过老,容易出现拖拽协议不兼容。
  2. 检查“虚拟机设置 -> 选项 -> 客户机隔离”的“启用拖拽”和“启用复制粘贴”是否勾选。
  3. 在虚拟机内重启VMware Tools服务。Windows虚拟机打开任务管理器,找到vmtoolsd.exe,右键结束进程,VMware Tools会自动拉起来一个全新的进程。Linux虚拟机可以运行sudo systemctl restart vmtoolsd
  4. 如果上述都不行,卸载VMware Tools后重新安装一次,安装时选择“修复”模式也可以。
  5. 如果虚拟机里运行的是Windows 7这种老系统,注意先打系统补丁,否则Tools安装完功能不完整。
  6. 偶尔是VMware Workstation版本自身的Bug,可以考虑升级到最新版。特别是17.x的用户,新版本在拖拽传输上做了不少修复。

5. 主机与虚拟机网络共享:另一种思路

5.1 什么时候需要走网络共享

如果不想装VMware Tools,或者你的虚拟机只是临时用一下,又或者你需要让多台虚拟机、多台物理机之间共享同一个目录,那就可以考虑走标准网络共享这条路。它不依赖VMware Tools,完全是系统层面的文件共享协议,最常用的是Windows的SMB/CIFS。

这种方式的缺点是配置相对繁琐,涉及网络连通性、防火墙、共享权限、账号凭据等,不像共享文件夹那样一键搞定。但优点也很明显:没有VMware版本限制,同样一套共享方法不仅能用在主机和虚拟机之间,还能用在虚拟机和其他局域网设备之间。

5.2 Windows主机设置共享文件夹的关键步骤

在电脑主机上设置共享文件夹,以Windows 10/11为例:

  1. 选择你要共享的文件夹,比如D:\Share,右键 -> 属性 -> 共享 -> 高级共享。
  2. 勾选“共享此文件夹”,点击“权限”,默认会把Everyone账户加进去。要想让虚拟机读写,就把Everyone的权限设为“读取和写入”。
  3. 到“控制面板 -> 网络和共享中心 -> 更改高级共享设置”,确保当前网络配置文件中“网络发现”和“文件和打印机共享”都处于启用状态。
  4. 如果想要免密访问,在“所有网络”里选择“无密码保护的共享”。否则访问时需要输入主机的用户名和密码。
  5. 在主机上打开命令行运行ipconfig,记下当前网卡的IPv4地址,比如192.168.1.100

这一步的难点往往不是配置本身,而是Windows的网络共享被各种因素干扰。很多人在“两台电脑之间共享文件出现无法访问需要共享的电脑”这个问题上卡住,大部分原因是网络发现没开、防火墙拦截了“文件和打印机共享”,或者当前网络类型被识别成了“公用网络”。把这些全部理顺之后,问题基本消失。

还有一些细节值得注意:Windows默认关闭了SMB1.0协议。如果你的共享访问对象是老旧的Windows 7或者更早的设备,可能会报错,需要手动在“可选功能”里开启SMB1.0/CIFS文件共享支持。但如果不是为了兼容旧设备,我建议保持关闭,毕竟SMB1.0安全性差,容易成为勒索软件攻击入口。

5.3 虚拟机访问主机共享路径

虚拟机和主机的网络连通性决定了你用哪个IP来访问主机。

  • 如果虚拟机的网络模式是桥接模式,虚拟机与主机在同一局域网内,直接访问主机的局域网IP即可。
  • 如果虚拟机的网络模式是NAT模式,虚拟机的默认网关是VMware虚拟网卡VMnet8的IP,这个IP通常也是主机在虚拟机里的“入口”,也就是主机IP。可以在主机上运行ipconfig,找到VMware Network Adapter VMnet8的IPv4地址,比如192.168.x.1,然后在虚拟机里访问\\192.168.x.1\Share

在虚拟机里打开文件资源管理器,地址栏输入\\192.168.x.x\Share,回车后会弹出凭据输入框,填主机的用户名和密码,建议勾选“记住我的凭据”。下次再访问就不用反复输入了。

这里我遇到过最多的问题是“找不到网络路径”或者“0x80070035”。排查时先在虚拟机里ping一下主机IP,能通说明网络没问题,然后重点看主机防火墙有没有放行文件共享,以及网络发现是否开启。如果ping不通,先查VMware虚拟网络编辑器的NAT设置,把VMnet8网段和虚拟机网卡网段调成一致。

5.4 反向共享:主机访问虚拟机里的文件

反过来,如果电脑主机想读取虚拟机内的文件,也可以采用同样的思路,在虚拟机系统里配置文件共享,然后从主机访问虚拟机的IP。

以Windows虚拟机为例,在虚拟机里把某个文件夹设置为共享,查看虚拟机当前IP,在主机文件资源管理器地址栏输入\\虚拟机IP\共享名即可。前提是两台机器网络互通、防火墙放行,和上面讲的流程基本对称。

不过说实话,如果你只是想从虚拟机里拷文件出来,完全没必要这么绕。共享文件夹功能天然支持双向访问,主机共享的目录虚拟机能看到,虚拟机放到共享目录里的文件主机也能看到。除非你是在用别人做好的虚拟机模板,里面没有VMware Tools,才能用到这种反向网络共享。

6. 常见问题与排查技巧实录

6.1 菜单里“安装VMware Tools”是灰色的

这个问题在VMware论坛上被问烂了。修复方式很简单:在VMware左侧列表里单击选中目标虚拟机,确保它处于开机状态,并且虚拟机的操作系统已经完成启动,再点击“虚拟机 -> 安装VMware Tools”。如果虚拟机开机时卡在启动画面,菜单也会是灰色的。还有一种情况是你打开了全屏模式,菜单栏被自动隐藏,按Ctrl+Alt把鼠标切出来,恢复窗口模式再操作。

6.2 VMware Tools安装提示“继续运行脚本未能在虚拟机中成功运行”

这个问题是热词,说明遇到的人不少。我在安装过程中也遇到过。它的出现通常有三个原因:

  • 杀毒软件拦截了Tools进程写系统目录。
  • 系统缺少必要的运行库,比如Visual C++ Redistributable。
  • 安装时没有以管理员权限运行。

解决办法:先关闭虚拟机里的杀毒软件实时防护,然后右键setup.exe选择“以管理员身份运行”。如果提示已经在系统里安装过旧版本,先到“程序和功能”中卸载干净,再重新安装。也可以从VMware安装目录里手动找到windows.iso,解压后单独运行目录里的安装程序,往往能绕过一些权限问题。

6.3 共享文件夹设置后虚拟机里还是看不到

这种情况我排过很多次,原因一般集中在几个地方:

  • 虚拟机设置里的共享方式没有选择“总是启用”,而是选了“下次关机或挂起前启用”。
  • 添加共享文件夹时没有勾选“启用此共享”。
  • 虚拟机里的VMware Tools未正常启动。
  • Linux虚拟机里没有挂载hgfs目录,或者挂载点权限不对。

解决方法也很简单:逐一检查上述配置。Windows虚拟机可以用\\vmware-host\Shared Folders\共享名称直接访问,看是否报错。Linux虚拟机优先检查/mnt/hgfs目录,如果不存在先mkdir -p /mnt/hgfs,再手动挂载。如果仍然不行,重启虚拟机后再试。

6.4 虚拟机开机后拖拽和复制粘贴失效

拖拽功能正常用了一阵子,某天重启虚拟机后突然失效,这是典型的VMware Tools服务没有随系统启动。Windows虚拟机按下Win+R输入services.msc,在服务列表里找到“VMware Tools”或“VMware Tools Service”,把启动类型改为“自动”,并确保服务状态是“正在运行”。然后再去“虚拟机设置 -> 选项 -> 客户机隔离”里把“启用拖拽”关闭再重新打开,很多时候就能恢复。

如果服务已经是自动状态但启动后仍然失效,那可能是Tools版本和虚拟机系统不匹配。直接把VMware Workstation升级到最新版,一般能解决这类玄学问题。

6.5 无法访问主机上的网络共享(Windows错误码速查)

网络共享访问失败时,Windows会弹出一堆让人摸不着头脑的错误码。我整理了一份常见错误速查表,遇到问题时直接对照排查。

错误码/提示可能原因解决办法
0x80070035 找不到网络路径防火墙拦截、网络发现关闭、相关服务未启动启用网络发现和文件和打印机共享,放行防火墙规则,启动Function Discovery等依赖服务
0x80070043 找不到网络名共享名输入错误、共享已被删除确认共享路径和主机IP大小写是否正确,重新共享目标文件夹
提示没有权限访问用户名密码错误、没有相关权限检查主机登录凭据;在共享权限中添加Everyone或指定用户并给予读写权限
提示网络错误,指定的网络名不再可用主机重启后IP变化、网络状态不稳定重新查看主机IP,尽量使用静态IP或者主机名访问

另外也提醒一句,如果你在手机或其他设备上连Windows共享失败,比如“iphone smb连接电脑共享文件失败”,很多时候和虚拟机遇到的SMB问题同源,无非是协议版本不兼容、访客访问被禁用、防火墙拦截这几个原因,排查思路可以通用。

6.6 其他容易被问到的周边问题

热词里还有两个问题虽然不直接属于共享文件,但经常和VMware使用混在一起,顺带说两句。

一是“WSL2无法启动,因为此计算机上未启用虚拟化”。这个情况在虚拟机里嵌套WSL2比较典型,需要先确保物理机BIOS中开启了Intel VT-x或AMD-V。如果是Windows虚拟机里用WSL2,还要在虚拟机设置中开启“虚拟化Intel VT-x/EPT”或“虚拟化AMD-V/RVI”,否则嵌套虚拟化不会生效。

二是“如何删除虚拟机目录”。在VMware库中右键虚拟机选择“从库中移除”,只是把虚拟机从列表中去掉,不会删除磁盘文件。要彻底清理,需要手动到虚拟机所在目录把整个文件夹删掉。注意先把虚拟机从库中移除,否则文件可能被占用删不干净。

共享文件这个事,说难其实不难,说简单也有一堆细节。我个人的习惯是:主力用共享文件夹并映射成Z盘,拖拽只用来传小文件和复制文本。这样既稳又方便,还不容易被临时文件占满系统盘。还有个小建议,共享目录不要直接选整个硬盘分区,单独做一个D:\Share这种目录,归属清晰,后面备份虚拟机时也好排除。按照上面操作走一遍,主机和虚拟机之间的文件传递就能彻底顺畅起来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询