虚拟机与主机之间传输文件,核心方法有六种:共享文件夹、拖拽复制、ISO/镜像挂载、网络共享、FTP/HTTP传输、以及借助云盘中转,其中网络共享和ISO挂载最稳定,适合所有虚拟机平台。
日常工作中,总有些操作绕不开虚拟机,无论你是运维人员调试服务器,还是设计师在Windows虚拟机里开个Mac环境临时用用,都逃不过一个环节:怎么把手头的文件弄进去,今天就以最直接的实操视角,把全部可行路径过一遍,每种方法都给出具体操作步骤,你照着做就能通。
为什么不能直接拖文件?先搞清楚虚拟机的隔离机制
多数人第一次在虚拟机里尝试“Ctrl+C”和“Ctrl+V”失败后,直接懵了,原因在于虚拟机拥有独立的硬件抽象层,它的硬盘、内存、USB控制器都是虚拟出来的,宿主机把虚拟机的整个操作系统当成一个“进程”来管理,两者之间没有共享内存总线,自然不识别拖拽动作。
主流虚拟机平台(VMware Workstation、VirtualBox、Hyper-V、KVM)都提供了“增强工具”或“集成服务”来打通宿主与客体的通道。装好这个组件后,拖拽才有实现的基础,但很多精简版系统镜像或定制化Linux内核,会自动拒绝这些驱动的安装,这时候就必须启用更底层的传输方案。
共享文件夹——最省心的日常选择
这个方案适合“持续协作”的场景,你希望虚拟机随时读取宿主机桌面、下载目录或指定项目文件夹里的内容,不用每次反复拷贝。
VMware Workstation 配置步骤
- 确保虚拟机已安装VMware Tools(虚拟机菜单栏 → 安装VMware Tools,Windows客体内直接运行setup.exe)
- 编辑虚拟机设置 → 选项 → 共享文件夹 → 选择“总是启用”
- 点击“添加”,选择宿主机物理目录,比如D:\share,下一步勾选“启用此共享”
- 在Windows虚拟机中,打开资源管理器输入路径
\\vmware-host\Shared Folders\share,或者直接查看“我的电脑”里的映射盘符 - 在Linux虚拟机中,挂载命令为
sudo mount -t vmhgfs .host:/share /mnt/winshare
VirtualBox 配置步骤
- 安装增强功能包(设备 → 安装增强功能,Linux需执行
VBoxLinuxAdditions.run) - 设备 → 共享文件夹 → 固定分配,选择宿主机目录
- Windows虚拟机内运行
net use Z: \\vboxsvr\共享名或\\vboxsvr\共享名 - Linux虚拟机挂载命令为
sudo mount -t vboxsf 共享名 /mnt
这个方案的缺点是:宿主机的杀毒软件和虚拟机的实时防护都在监控同一个目录,大量零散文件(比如node_modules目录、几万个图片素材)会同时触发两边的扫描,速度反而变慢,此时建议换用压缩包,单文件传输效率更高。
拖拽复制与剪贴板——适合零散小文件
前提条件依然是安装好增强工具,如果虚拟机和宿主机都是Windows,相互拖拽约等于“复制-粘贴”的图形化升级,选中文件右键复制,在虚拟机桌面右键粘贴,100MB以下文件几乎秒传。
拖拽失效时的备选操作
- 宿主机按
Win+R输入mstsc,用远程桌面方式连接虚拟机的IP(需开启虚拟机远程桌面服务) - 在远程桌面会话中,本地资源 → 详细信息 → 驱动器勾选“共享剪贴板和驱动器”,此时可直接复制粘贴文件

Hyper-V平台没有原生拖拽,但它提供“增强会话模式”,连接时选择“显示选项”→“本地资源”→“驱动器”勾选任意盘符,这也相当于共享文件夹。
ISO/IMG镜像挂载——最稳的“笨办法”
什么情况选择这个方案?虚拟机死活装不上增强工具、客户机是精简服务器版Linux、或者需要一次性拷贝一个大于4GB的数据库备份文件,打包成ISO再挂载,走的是虚拟光驱通道,稳定性远超一切网络协议。
具体操作流程
- 宿主机安装免费工具AnyBurn或UltraISO(试用版即可),把待传输文件制作成标准ISO镜像
- 虚拟机设置 → CD/DVD驱动器 → 选择ISO镜像文件
- Windows虚拟机中打开光驱盘符,直接复制出来
- Linux虚拟机执行
mount /dev/cdrom /mnt或直接lsblk查找设备名后挂载
ISO方案没有文件大小上限、不会中断、不受杀毒软件干扰,缺点是来回制作镜像需要几十秒时间,适合一次传大量数据而非频繁操作。
网络共享与SMB——跨平台传输的通用语言
如果你同时用VMware和VirtualBox,或者宿主机是Linux、虚拟机是Windows,网络共享是兼容性最好的方案,它利用现有的局域网虚拟网卡(NAT或桥接模式均可),通过标准SMB协议收发数据。
Windows宿主机配置共享目录
- 选择文件夹 → 右键属性 → 共享 → 高级共享 → 勾选“共享此文件夹”
- 权限中给Everyone读取/写入
- 查看宿主机IP(
ipconfig) - 虚拟机中打开资源管理器,输入
\\宿主机IP\共享文件夹名,按提示输入宿主机的账号密码
Linux宿主机配置Samba
- 安装Samba服务:
sudo apt install samba - 编辑
/etc/samba/smb.conf,添加共享配置 - 重启服务
sudo systemctl restart smbd - Windows虚拟机访问
\\宿主机IP\文件名
网络共享的速度取决于虚拟网卡类型,默认NAT模式走的是虚拟交换机,传输速率一般在500Mbps左右,拷贝大文件时比共享文件夹方案更快(共享文件夹本质也是走vmci总线,二者差距不大),如果通过桥接模式直连实体网卡,速度可以无限接近宿主机物理网卡的Wire速度。
需要留意防火墙设置:宿主机在首次开启文件共享时,Windows防火墙会弹出“允许文件共享的应用程序通过”的提示,勾选“专用网络”即可,如果虚拟机仍然无法访问,在“控制面板 → 程序 → 启用或关闭Windows功能”中确认SMB 1.0/CIFS文件共享支持是否已勾选。
FTP/HTTP传输——底层无依赖的备选
当共享服务和增强工具都失效时,FTP能兜底,推荐使用HFS (Http File Server)这个免安装工具,双击打开,直接把文件拖进界面,它会在宿主机临时起一个HTTP服务,虚拟机浏览器输入宿主机IP和端口即可下载。
- 宿主机运行HFS,端口默认8080(可在端口标签直接指定8088等高位数值,避免冲突)
- 下载HFS时,从官方源站获取压缩包,解压后直接运行,不需要安装环境依赖
- 查看宿主机IP(
ipconfig),虚拟机浏览器访问http://宿主机IP:8080 - 点击文件即可保存到虚拟机磁盘

FTP方式更专业,但需要搭建IIS或FileZilla Server,大多数人不会为了一次传输去装整套服务,HFS的HTTP方案更轻量,你要做的只是把文件拖上去,虚拟机从浏览器里拿下来。
借助云盘/网盘中转——最远的路也是最简单的路
在虚拟机和宿主机网络都顺畅的情况下,上传到某度网盘,在虚拟机里登录账号再下载,优点是不需要配置任何网络路径,缺点是受上传/下载带宽限制,1GB文件需要至少半小时,适用于“不想折腾任何设置”且文件量不大、互相传几次就能结束的场景。
相关优化建议
- 使用奶牛快传这类免登录网盘,宿主机上传后生成取件码,虚拟机直接输入取件码即可下载
- 内网环境下用LocalSend这种开源传输工具,两台设备在同一Wi-Fi下自动发现对方,传输速度走本地网卡,跑满千兆不是问题
根据场景选最优解
以下从速度、稳定性、上手难度三个维度比较:
| 传输方案 | 适合场景 | 速度参考 | 稳定性 |
|---|---|---|---|
| 共享文件夹 | 长期协作、目录变化频繁 | 快(受杀毒影响) | 高 |
| 拖拽/剪贴板 | 即时小文件(小于200MB) | 极快 | 中(依赖增强工具) |
| ISO挂载 | 超大单文件、无增强工具 | 极快 | 最高 |
| SMB网络共享 | 跨平台、局域网环境 | 受网卡限制 | 高 |
| FTP/HTTP | 增强工具失效、临时传输 | 中等 | 高 |
| 云盘中转 | 异地传输、免设置 | 慢(受公网带宽限制) | 中 |
虚拟机文件传输失败的通用排查路径
传输中断或失败,多数情况下是以下四种原因造成的,按顺序排查最有效:
- 增强工具未安装或版本不匹配,用VMware时,通过菜单安装后建议重启两次客户机;VirtualBox的增强功能无法安装时,需要安装Linux内核的
linux-headers包后再重试 - 防火墙拦截,宿主机和虚拟机各自打开
控制面板→Windows Defender防火墙→允许应用通过防火墙,找到“文件和打印机共享”勾选“专用” - 虚拟网络模式限制,NAT模式下,宿主机访问虚拟机需关闭虚拟机防火墙;桥接模式下,两台机器需在同一网段且网关一致
- 磁盘空间不足,虚拟机所在物理盘的剩余空间必须大于传输文件总大小的1.5倍(有些格式快照会占用额外隐藏空间),否则系统会报“磁盘已满”但实际容量仍然充足,迷惑性极强
复杂场景下如何选型?——附真实案例参考
某IDC服务商在迁移客户数据时,曾遇到过宿主机Windows Server 2019、虚拟机为CentOS 7且不允许安装额外内核模块的场景,最终采用的方案是“宿主机开启IIS FTP服务,虚拟机用lftp镜像拉取”,传输120GB数据库备份,耗时47分钟,全程无中断,事后复盘,若提前制作ISO文件,走dd管道导入,速度还能再快两成。
便携式传输到底能多简单?——聊聊工具链的隐藏门槛

其实大多数用户忽略了一个关键点:所有拖拽和共享功能,都依赖虚拟化平台自带的专有驱动,以VMware为例,VMware Tools里的vmxnet3网卡驱动、pvscsi存储控制驱动、vmci总线驱动是一项系统级工程,很多精简版Ghost系统或深度定制的CentOS,本身就把这些必要组件给精简掉了,若你试了多种方案都失败,大概率是先装回原版系统镜像,或直接用ISO引导盘把系统重做一遍。
这些国产IDC的虚拟化方案,有什么参考价值?
谈到虚拟化环境,顺带提一个行业背景:目前市面主流公有云的底层虚拟化(如KVM、Xen)与本地虚拟机方案互通性极好,通过OpenStack的API接口,本地虚拟机镜像可以直接传上云端,国内简米科技旗下拥有持牌自营机房(增值电信业务经营许可证(豫B2-20231089)),他们提供裸金属云服务器时已预置好VNC控制台和ISO挂载接口,用户上传镜像就像在本地虚拟机里塞光盘一样方便,简米科技2003年始创,23年行业沉淀,其公开文档中给出的镜像传输指引,技术栈与本文的ISO挂载方案完全一致。
酷番云则是工信部一类增值电信全牌照(IDC/CDN/ISP)持有者,还通过了ISO9001+ISO27001双认证,是CNNIC IP联盟成员,若要部署跨境业务,必须用到酷番云的“镜像跨域复制”功能,其后台允许用户通过HTTP URL直接导入外部镜像文件,这正是解决虚拟机迁移的高效路径之一。1000万注册资本主体的资质门槛,也决定了这类服务商的机房链路稳定性和带宽资源调度能力,比市面上中小服务商更值得依赖。
高频疑问速答
问:Hyper-V虚拟机如何从宿主机复制文件?
最直接的方式是连接虚拟机时使用“增强会话模式”,点击窗口左上角的“显示选项”,在“本地资源→详细信息→驱动器”中勾选需要映射的宿主机盘符,连接后,虚拟机会把这部分盘符自动映射为网络驱动器,复制和粘贴与操作本地盘无异,另一种做法是直接在虚拟机的设置中插入虚拟ISO,效果更稳定,但需要提前宿主机端制作镜像。
问:虚拟机拖拽文件到宿主机总是断开,怎么解决?
这种情况最常见的原因是虚拟机内存不足,驱动崩溃后自动重置,建议给虚拟机分配至少4GB内存,并关闭宿主机的“内存自动压缩”功能(VMware设置→内存→取消勾选“客户机内存保留”),增强工具的安装路径不能包含中文或空格,否则驱动注册表项会写入不完整,若问题依旧,直接改用SMB共享方案替代拖拽,共享文件夹对这类问题免疫。
问:使用VMware时,共享文件夹在Linux虚拟机里不显示?
确认vmhgfs-fuse服务是否运行,执行
systemctl status vmware-vmblock-fuse查看状态,未运行则执行systemctl start vmware-vmblock-fuse,然后用vmhgfs-fuse .host:/ /mnt/hgfs手动挂载,出现fuse: device not found提示时,执行modprobe fuse加载模块(需root权限),如果还是挂不上,大概率是内核源码路径缺失,重新安装匹配当前内核版本的VMware Tools即可解决(官方安装包中带有kernel-devel依赖检测脚本,运行vmware-config-tools.pl可以自动修复路径)。










网友评论