VMware虚拟机文件共享:共享文件夹与拖放功能配置详解 📅 2026/8/5 7:33:22 1. 共享文件的需求场景与方案选择在虚拟化环境里折腾主机和虚拟机之间传文件是个绕不开的活儿。无论是开发测试时把代码扔进Linux虚拟机编译还是日常使用中想把Windows主机下载的电影拷贝到虚拟机里看都离不开文件共享。很多人第一反应可能是用U盘来回倒腾或者开个FTP服务但这些方法要么效率低下要么配置繁琐。其实VMware Workstation Pro本身就内置了几种非常成熟且高效的共享方案用好了能极大提升工作效率。最常用的两种方式是“共享文件夹”和“拖放/复制粘贴”。前者相当于在虚拟机里映射一个主机上的目录像访问本地磁盘一样方便后者则适合临时传递少量文件操作直观。这两种方式各有优劣适用于不同场景。比如如果你需要虚拟机持续访问主机上的某个项目文件夹那么设置共享文件夹是首选如果只是偶尔传个文档或图片拖放一下更快捷。但无论哪种背后都依赖于VMware Tools这个“大管家”在中间协调。所以在开始配置之前确保虚拟机里已经安装并运行了最新版本的VMware Tools这是所有共享功能正常工作的基石。2. 基石准备安装与验证VMware ToolsVMware Tools不是个可有可无的组件它是一套驱动程序和实用程序的集合负责提升虚拟机的图形性能、同步时间、启用共享文件夹和剪贴板等功能。没有它很多高级特性都无法使用。2.1 在Windows虚拟机中安装VMware Tools对于Windows虚拟机如Windows 10/11安装过程相对简单。首先确保虚拟机处于开机状态。在VMware Workstation Pro的顶部菜单栏点击“虚拟机” - “安装VMware Tools”。这时虚拟机会自动加载一个虚拟光驱里面包含了安装程序。打开虚拟机的“此电脑”你会看到一个新的DVD驱动器运行里面的setup.exe文件按照向导一步步安装即可基本上就是一路“下一步”。安装完成后系统会提示你重启虚拟机重启后VMware Tools服务就会自动运行。这里有个细节需要注意有时候菜单里的“安装VMware Tools”是灰色的不可点击状态。这通常是因为虚拟机没有正确识别虚拟光驱或者VMware Tools的镜像文件没有成功挂载。你可以尝试手动操作在虚拟机设置里检查CD/DVD设备是否已连接并指向VMware安装目录下的windows.iso文件通常路径类似C:\Program Files (x86)\VMware\VMware Workstation\。手动挂载这个ISO文件也能达到同样效果。2.2 在Linux虚拟机中安装VMware Tools对于Linux虚拟机如Ubuntu、CentOS过程略有不同。同样通过菜单“虚拟机” - “安装VMware Tools”挂载安装镜像。挂载后在Linux系统中这个镜像通常会出现在/media目录下。你需要打开终端进行手动解压和安装。# 1. 创建一个临时目录并进入 mkdir /tmp/vmware-tools cd /tmp/vmware-tools # 2. 解压安装包路径可能因发行版而异通常是 /media/[用户名]/VMware Tools tar -xzf /media/$(whoami)/VMware\ Tools/VMwareTools-*.tar.gz # 3. 运行安装脚本需要root权限 cd vmware-tools-distrib sudo ./vmware-install.pl运行安装脚本时它会问你一系列问题对于大多数情况直接按回车键接受默认设置即可。安装完成后同样需要重启虚拟机。现在更推荐的方式是直接使用开源社区维护的open-vm-tools包这是VMware Tools的开源实现通常通过包管理器就能安装更加方便。例如在Ubuntu上sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop安装open-vm-tools-desktop这个包是为了获得图形界面和拖放等完整功能。2.3 验证VMware Tools运行状态安装完重启后怎么知道它是否在正常工作呢在Windows虚拟机中你可以在任务管理器的“服务”标签页里找到“VMware Tools”服务并确认其状态为“正在运行”。更直观的方法是尝试在主机和虚拟机之间拖放一个文件或复制一段文字如果能成功说明基础功能已就绪。在Linux虚拟机中可以通过命令检查服务状态systemctl status vmtoolsd或者systemctl status open-vm-tools如果看到“active (running)”的字样就说明服务运行正常。这个验证步骤很重要它能避免你在后续配置共享文件夹时因为底层服务没启动而白费功夫。3. 核心方案一配置共享文件夹推荐共享文件夹是VMware提供的最稳定、最像网络映射的共享方式。它会在虚拟机内部将主机的一个目录映射为一个网络驱动器或挂载点实现双向读写。3.1 在VMware Workstation中启用共享首先你需要关闭目标虚拟机虽然某些版本支持热添加但关机操作最稳妥。在虚拟机库列表中右键点击该虚拟机选择“设置”。在弹出的窗口中找到“选项”标签页然后点击“共享文件夹”。你会看到右侧有三个选项始终启用无论虚拟机是否运行都保持共享。适合需要长期、稳定访问的场景。在下次关机或挂起前一直启用临时性共享虚拟机关机后设置失效。已禁用关闭此功能。对于长期使用的共享选择“始终启用”。然后点击下方的“添加”按钮启动添加共享文件夹向导。3.2 添加具体的共享目录在向导中第一步是点击“浏览”选择主机上你希望共享的目录。比如D:\Projects或C:\Users\YourName\Desktop。第二步是为这个共享设置一个“名称”这个名字是虚拟机内部看到的名字可以和主机目录名不同建议使用简单英文避免空格和特殊字符比如host_projects。接下来有两个关键选项启用此共享默认勾选取消则等于没添加。只读如果勾选虚拟机只能读取文件不能修改、删除或创建新文件。这对于提供参考资料或安装包等场景很实用可以防止虚拟机内的误操作影响主机文件。根据你的需求谨慎选择。完成添加后你会在共享文件夹列表中看到新添加的条目。此时可以启动虚拟机了。3.3 在虚拟机中访问共享文件夹虚拟机启动后根据系统不同访问方式也不同。在Windows虚拟机中访问访问非常简单。打开“此电脑”你应该能看到一个新增的网络位置名称就是之前设置的共享名如host_projects。双击即可像访问本地磁盘一样访问主机上的文件夹。如果没立即出现可以尝试在文件资源管理器的地址栏直接输入\\vmware-host\Shared Folders这个特殊路径所有共享的文件夹都会在这里列出。在Linux虚拟机中访问在安装了open-vm-tools或VMware Tools后共享文件夹默认会被挂载到/mnt/hgfs/目录下。你可以打开终端使用ls /mnt/hgfs命令查看所有已共享的文件夹。ls -la /mnt/hgfs/如果能看到以你共享名命名的目录就说明成功了。你可以直接在此路径下操作文件也可以为其创建软链接到更常用的目录比如ln -s /mnt/hgfs/host_projects ~/Desktop/projects_from_host注意有时在Linux中/mnt/hgfs目录下可能是空的即使你正确配置了共享。这通常是因为hgfs内核模块没有正确加载。可以尝试手动加载并重新挂载sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtypevmhgfs-fuse,allow_other或者检查/etc/fstab中是否有相关配置确保开机自动挂载。4. 核心方案二使用拖放与复制粘贴对于临时性的、小文件的传递拖放和复制粘贴功能无疑是最快捷的。它的本质是通过VMware Tools在主机和虚拟机的剪贴板之间建立了一座桥梁。4.1 启用与配置这个功能的开关也在虚拟机的“设置”里。在“选项”标签页下找到“客户机隔离”子项。这里有两个关键的复选框拖放启用后你可以直接按住鼠标将主机上的文件或文件夹拖入虚拟机窗口或者从虚拟机窗口拖出到主机桌面。复制粘贴启用后你可以在主机和虚拟机之间自由地使用CtrlC/V复制粘贴文本、图片等信息。默认情况下安装VMware Tools后这些功能是双向启用的。你可以根据安全需要将其设置为“仅允许从主机到客户机”或“仅允许从客户机到主机”甚至完全禁用。比如在运行不信任的虚拟机时禁用从虚拟机到主机的拖放和粘贴可以防止恶意软件通过此通道窃取数据。4.2 实际应用与限制在实际使用中拖放功能非常直观。例如你在主机浏览器下载了一个PDF文档直接将其拖拽到虚拟机的桌面文件就会开始传输。复制粘贴则更适合代码片段、配置文本、网址等信息的快速同步。然而这个功能有其局限性大文件传输不稳定传输几百MB甚至上GB的大文件时可能会失败或卡住不如共享文件夹稳定可靠。路径与格式问题拖放文件时虚拟机系统接收到的可能是一个临时副本其原始路径信息会丢失。对于编程中需要绝对路径引用的场景这不是最佳选择。依赖图形界面对于没有安装桌面环境的Linux服务器版虚拟机拖放功能无法使用。因此我的经验是小文件、临时传递用拖放大文件、项目协作、需要稳定路径访问的务必用共享文件夹。5. 进阶配置与网络共享备选方案当你熟悉了基本操作后可能会遇到一些更复杂的需求或者基础方法不奏效的情况。这时就需要一些进阶知识和备选方案。5.1 共享文件夹的高级权限管理在“共享文件夹”设置中除了“只读”选项VMware本身不提供更细粒度的权限控制如针对不同用户设置不同权限。权限实际上继承自主机操作系统上该目录的NTFS或文件系统权限。例如如果你在主机上用的是一个标准用户账号而共享的目录需要管理员权限才能写入那么虚拟机里的操作也可能会遇到“拒绝访问”的错误。解决方案在主机上右键点击共享的文件夹 - “属性” - “安全”标签页确保你的主机用户账户或Everyone但不推荐至少拥有“读取和执行”、“列出文件夹内容”、“读取”、“写入”等权限。对于Linux虚拟机访问Windows主机共享的情况有时需要将主机共享文件夹的共享权限在“共享”标签页设置设置为“Everyone”可读写仅限测试环境或可信网络并在高级共享中设置相同的权限。5.2 使用SMB/NFS网络共享备选方案当VMware自带的共享文件夹功能因某些原因如旧版本Linux兼容性问题无法工作时或者你需要让局域网内其他物理机也能访问这些文件时配置一个标准的网络共享是可靠的备选方案。原理将主机上的某个文件夹设置为SMBWindows或NFSLinux共享然后在虚拟机中像访问普通网络驱动器一样去访问它。这完全绕开了VMware的特定功能依赖于标准的网络协议。在Windows主机上设置SMB共享右键点击文件夹 - “属性” - “共享”标签页 - “高级共享”。勾选“共享此文件夹”可以设置共享名和并发连接数限制。点击“权限”添加“Everyone”或特定用户并赋予“更改”和“读取”权限。确保主机防火墙允许“文件和打印机共享”规则通过。在Linux虚拟机中挂载SMB共享# 安装必要的客户端软件 sudo apt install cifs-utils # Ubuntu/Debian sudo yum install cifs-utils # CentOS/RHEL # 创建一个本地挂载点 sudo mkdir /mnt/windows_share # 挂载共享文件夹 sudo mount -t cifs //[主机IP地址]/共享名 /mnt/windows_share -o username[主机用户名],password[主机密码],vers2.0vers2.0指定SMB协议版本根据主机系统调整Win10/11可能需要vers3.0。为了开机自动挂载可以将这行命令添加到/etc/fstab文件中。这种方法的优点是通用性强缺点是配置稍复杂且需要知道主机IP如果主机使用DHCP且IP变动就需要调整配置。5.3 虚拟机网络模式的影响共享文件夹功能对网络模式的依赖性不高它在主机和虚拟机之间建立了一条特殊通道。但如果你使用备选的SMB网络共享方案那么虚拟机的网络模式就至关重要。桥接模式虚拟机会获得一个与主机同网段的独立IP可以直接通过主机IP访问SMB共享就像局域网内另一台电脑。NAT模式虚拟机在一个私有子网中主机充当网关。虚拟机可以访问主机的共享因为主机对虚拟机是可见的但反过来局域网其他机器无法直接访问虚拟机的共享除非做端口转发。仅主机模式虚拟机和主机在一个封闭的私有网络中与外界隔离。SMB共享只能在这两者之间进行。对于绝大多数仅需主机-虚拟机互通的场景默认的NAT模式配合VMware自带共享文件夹是最省心、最安全的选择。6. 常见问题排查与解决心得即使按照步骤操作也难免会遇到一些问题。下面是我在长期使用中总结的几个典型故障及其排查思路。6.1 共享文件夹在Linux中可见但无法写入现象在/mnt/hgfs下能看到共享的文件夹但执行touch test.txt或cp命令时提示“Permission denied”。根因分析这通常是挂载时的权限问题。VMware Tools默认可能以root权限挂载但挂载点的目录权限可能不允许你的普通用户写入。解决方案检查挂载点的所有权和权限ls -ld /mnt/hgfs ls -ld /mnt/hgfs/你的共享文件夹名如果所有者是root可以尝试修改sudo chown -R $(whoami):$(whoami) /mnt/hgfs/你的共享文件夹名如果上述方法不持久重启后失效可以在挂载时指定uid和gid参数。编辑/etc/fstab文件如果存在相关条目或者创建一个systemd挂载单元。更简单的方法是在手动挂载命令中加入参数sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtypevmhgfs-fuse,allow_other,uid$(id -u),gid$(id -g)其中$(id -u)和$(id -g)会自动替换为当前用户的用户ID和组ID。6.2 安装VMware Tools时提示“找不到内核头文件”现象在安装VMware Tools或编译内核模块时终端报错提示找不到kernel headers或kernel source。根因分析VMware Tools中的一些驱动需要针对当前运行的内核版本进行编译这需要内核开发包。解决方案 对于使用open-vm-tools的现代Linux发行版这个问题较少见因为驱动通常已包含在发行版包中。如果遇到需要安装对应内核版本的头文件包。# Ubuntu/Debian sudo apt update sudo apt install linux-headers-$(uname -r) build-essential # CentOS/RHEL sudo yum install kernel-devel-$(uname -r) gcc make安装完成后再重新运行VMware Tools的安装脚本或重启open-vm-tools服务。6.3 拖放功能失效现象已经确认在设置中启用了拖放但无法将文件拖入或拖出虚拟机窗口。排查步骤确认VMware Tools服务运行这是首要条件。检查虚拟机状态虚拟机是否处于“挂起”或“拍摄快照”后的异常状态尝试完全关闭虚拟机再启动。检查VMware Workstation版本兼容性过旧的主机VMware版本与较新的客户机操作系统之间可能存在兼容性问题。尝试将VMware Workstation Pro升级到最新版本。检查客户机操作系统设置某些Linux桌面环境如GNOME的安全或隐私设置可能会阻止拖放操作。检查系统设置中是否有相关选项。尝试重新安装VMware Tools有时驱动文件损坏会导致功能异常。可以尝试在虚拟机设置中移除VMware Tools安装镜像然后重新选择“安装VMware Tools”覆盖安装一次。6.4 主机重启后共享连接丢失现象主机电脑重启后虚拟机里无法再访问共享文件夹。排查步骤检查共享文件夹设置是否为“始终启用”如果是“在下次关机或挂起前一直启用”主机重启后自然就失效了。检查主机目录是否存在确认你共享的主机目录路径在重启后没有变化例如共享的是U盘或移动硬盘上的路径重启后盘符改变。对于Linux虚拟机检查/mnt/hgfs自动挂载如果依赖/etc/fstab或 systemd 自动挂载检查这些配置是否正确以及网络服务是否在文件系统挂载前就启动了可以使用systemctl enable vmware-tools或systemctl enable open-vm-tools确保服务正确启用。我个人最深刻的体会是保持VMware Workstation Pro和VMware Tools或open-vm-tools的版本更新可以避免90%以上的奇怪问题。官方的更新日志里经常会修复一些与特定操作系统版本相关的兼容性Bug。对于生产环境或重要开发环境在升级主版本前最好先在测试虚拟机中验证一下核心功能尤其是文件共享和网络是否正常。