选虚拟机共享工具,先看三件事:宿主机系统、虚拟机软件、传输量大小,多数情况下 VMware 用户直接用共享文件夹加 SMB,VirtualBox 用户走网络映射,跨设备多系统同步再交给 Syncthing 这类工具。
虚拟机文件共享工具哪个好用?先分清三类方案
很多人一上来就问哪个软件最好,其实这个问题没法直接回答,共享文件的本质是"两个操作系统之间怎么交换数据",方案选错了,再好的工具也卡。
业内专家指出,常见的做法可以归为三类,理解清楚再挑工具会快很多。
共享文件夹:虚拟机软件自带,配置最简单
VMware Workstation 和 VirtualBox 都提供了共享文件夹功能,原理是宿主机开一个目录,通过驱动映射进虚拟机里。
VMware 装完 VMware Tools 后,在虚拟机设置里添加共享目录,Linux 里通常挂载在 /mnt/hgfs,如果没自动挂载,手动执行:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000
VirtualBox 需要先装 Guest Additions,然后执行:
VBoxManage sharedfolder add "Ubuntu" --name share --hostpath /home/user/share --automount sudo mount -t vboxsf share /mnt/share
这套方案优点是零网络配置,缺点是大文件传输速度一般,尤其虚拟机磁盘放在机械硬盘上时,拷贝几十 GB 的数据会明显拖慢。
网络协议:SMB、NFS、SCP、Rsync
不走虚拟化层的通道,直接用网络协议,虚拟机网络模式选桥接或Host-Only,给虚拟机配一个固定 IP,稳定性会好很多。
Windows 共享给 Linux:
sudo mount -t cifs //192.168.1.5/share /mnt/win -o username=user,password=pass,uid=1000,iocharset=utf8
Linux 共享给 Windows,装 Samba:
sudo apt install samba sudo smbpasswd -a user
Windows 资源管理器输入 \192.168.1.20share 就能访问。
批量同步推荐 rsync,支持断点续传和增量传输:
rsync -avz --progress /data/ user@192.168.1.30:/backup/
第三方工具:跨设备、跨系统的通用选择
当你的设备超过两台,或者宿主机和虚拟机系统都很杂,工具类方案更省心,Syncthing 做点对点同步,LocalSend 适合局域网快速传文件,坚果云、Resilio 这类偏向持续同步场景,这类工具多数基础功能免费,付费版主要加容量和高级权限管理。
主机和虚拟机文件互传方法:按系统组合选路径
同一套方法在不同系统组合下体验差很多,下面按实际场景拆。
Windows 主机 + Linux 虚拟机
推荐组合:共享文件夹负责小文件,Samba 负责大文件和目录权限控制。
共享文件夹适合放配置、脚本、临时文档,真要做开发,把代码目录挂在 /mnt/hgfs/project 里跑编译,性能会被拖累,更好的做法是把代码放虚拟机本地磁盘,用 rsync 定期同步回宿主机。
Linux 主机 + Windows 虚拟机
反过来,Windows 虚拟机访问 Linux 宿主机,走 Samba 最顺,虚拟机的网络适配器选桥接模式,防火墙放行 445 端口即可。
如果只是偶尔传文件,用 python3 -m http.server 8000 起一个临时 HTTP 服务,Windows 里浏览器访问 http://宿主机IP:8000,下载完关掉就行,不用装任何东西。
macOS + 虚拟机
macOS 上跑 Parallels Desktop 的用户,共享配置基本是向导式的,选"共享 Mac"即可,VMware Fusion 类似,要注意的是 macOS 的权限模型和 Linux 差异大,文件属主容易乱,建议共享目录单独建,别直接共享整个用户目录。
VMware 和 VirtualBox 共享文件夹对比

| 对比项 | VMware 共享文件夹 | VirtualBox 共享文件夹 |
|---|---|---|
| 挂载路径 | /mnt/hgfs |
自定义,常为 /mnt/share |
| 依赖组件 | VMware Tools | Guest Additions |
| 符号链接支持 | 较差,需额外参数 | 默认不支持,需配置 |
| 大文件速度 | 中等 | 中等偏慢 |
| 自动挂载 | 支持 | 支持,但偶尔失效 |
| 权限控制 | 需 mount 参数指定 uid/gid | 同样需手动指定 |
行业共识认为,两者在共享文件夹这个功能上差距不大,都不是性能优先的设计,如果传输量大,用 KVM/QEMU 的话可以试试 virtiofs,这是目前虚拟机文件共享里性能较优的方案,比 9p 协议快不少。
多系统文件互通方案怎么选?四个判断维度
传输量
- 每天几百 MB 以内:共享文件夹、拖拽、剪贴板足够
- 每天几 GB 到几十 GB:SMB 或 NFS
- 持续双向同步:Syncthing、Unison
是否需要双向写入
共享文件夹默认双向,但两端同时改同一个文件容易冲突,多人协作场景建议加一层 Git 或版本管理,别指望文件共享解决冲突。
权限和属主
跨系统传输最烦的就是权限,Linux 里挂载 Windows 共享,用 uid=1000,gid=1000,file_mode=0644,dir_mode=0755 固定权限,比每次都 chmod 省事。
隔离需求
虚拟机跑测试环境、恶意样本分析这类场景,共享目录等于开了个后门,这种情况建议彻底关闭共享,只在需要时用一次性快照加只读挂载。
常见坑与调优
几个高频问题,遇到可以直接对号入座。

- 共享文件夹看不到内容:先确认 VMware Tools 或 Guest Additions 装没装,再
lsmod | grep vmw或lsmod | grep vbox看内核模块加载状态 - 传输速度只有几 MB/s:多半是虚拟磁盘在机械盘上,或网络模式选了 NAT,换 Host-Only 或桥接试试
- 文件名乱码:mount 时加
iocharset=utf8,Windows 那边尽量别用特殊字符命名 - 开机不自动挂载:把挂载命令写进
/etc/fstab,或者用 systemd 挂载单元,比 rc.local 可靠
顺带提一句,共享剪贴板和文件共享是两套机制,剪贴板走的是虚拟机工具的服务进程,跟挂载目录没关系,排查问题时别混在一起。
关于虚拟机共享工具与多系统文件互通的常见问题
Q:虚拟机共享文件速度慢,换工具能解决吗?
多数情况下瓶颈不在工具,而在存储和网络模式,虚拟磁盘放在 SSD 上、网络改桥接、用 rsync 替代直接拖拽,这三步做完,速度通常能提升一个档次,据公开的虚拟化性能测试资料,virtiofs 相比传统 9p 在顺序读写上有明显优势,但配置复杂度也更高。
Q:免费的跨平台文件共享工具够用吗?
对个人用户基本够用,Syncthing 完全开源免费,LocalSend 走局域网不经过服务器,隐私性也好,免费方案的代价主要是没有集中管理后台,设备多了要逐台配置。
Q:虚拟机和宿主机之间共享文件夹安全吗?
共享目录对虚拟机来说就是一个可读写的外部磁盘,如果虚拟机中了勒索软件,共享目录里的文件同样会被加密,安全的做法是共享目录里只放必要文件,重要数据用快照或异地备份保护,跑不可信环境的虚拟机直接禁掉共享功能。
