Linux虚拟机如何共享文件夹
小樊
44
2025-12-31 20:53:50
Linux虚拟机共享文件夹实操指南
一、方法总览与选择
- 虚拟机增强工具共享文件夹:在VMware或VirtualBox中开启共享文件夹,Linux 内挂载访问,适合日常开发、频繁互传。
- 网络共享:用Samba/CIFS(跨平台)或NFS(Linux/Unix 间)通过局域网共享,适合多机、跨系统或容器化场景。
- SSH/SCP 与 Rsync:基于 SSH 的安全拷贝与同步,配置简单、稳定,适合脚本化与临时传输。
- SSHFS:通过 SSH 挂载远程目录为本地文件系统,轻量、加密、易用。
以上方式在不同网络与权限模型下各有优势,可按“是否同机、是否跨平台、是否需开机自动挂载”来选型。
二、VMware 共享文件夹步骤
- 安装增强工具:在 Linux 客户机安装open-vm-tools(推荐)或 VMware Tools。
- Debian/Ubuntu:sudo apt-get install -y open-vm-tools
- RHEL/CentOS:sudo yum install -y open-vm-tools
- 在 VMware 设置共享文件夹:选中虚拟机 → VM → Settings → Options → Shared Folders → 添加主机目录,命名共享名,勾选Always enabled(或 Enabled until next power off/suspend)。
- 在 Linux 中挂载:
- 传统方式:sudo mount -t vmhgfs .host:/<共享名> /mnt/hgfs
- FUSE 方式(推荐,便于普通用户访问):sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
- 验证:ls /mnt/hgfs 应看到共享目录。
说明:若未安装增强工具或未启用共享,挂载会失败;FUSE 方式配合 allow_other 可避免权限受限。
三、VirtualBox 共享文件夹步骤
- 安装增强功能:虚拟机菜单 Devices → Insert Guest Additions CD Image,在客户机中运行安装程序并重启。
- 在 VirtualBox 设置共享文件夹:选中虚拟机 → Settings → Shared Folders → 添加主机目录,填写共享名称(如:shared),按需勾选Auto-mount与Make Permanent(固定分配)。
- 在 Linux 中挂载:
- 手动挂载:sudo mount -t vboxsf <共享名称> /mnt/shared
- 自动挂载:勾选 Auto-mount 后,通常会自动出现在 /media/sf_<共享名称>;若未自动挂载,可手动执行上条命令。
- 权限与便捷访问:
- 将当前用户加入 vboxsf 组以访问共享目录:sudo gpasswd -a $USER vboxsf,然后重新登录或 newgrp vboxsf。
- 可选:创建软链方便访问,例如:ln -s /media/sf_shared ~/shared。
提示:共享名称是“名称”而非主机路径;若提示权限拒绝,多半是未加入 vboxsf 组或未使用 sudo。
四、网络方式与 SSH 传输
- Samba/CIFS(跨平台,Windows 主机常用)
- 主机或虚拟机安装 Samba,配置共享目录(如:/shared),在 Linux 客户机挂载:
- sudo mount -t cifs //<主机IP>/shared /mnt/smb -o username=<用户>,password=<密码>[,vers=3.0]
- NFS(Linux/Unix 间高性能)
- 服务端(主机或某台 Linux):安装 NFS 服务,编辑 /etc/exports 导出目录,启动服务;
- 客户端(虚拟机):安装 NFS 客户端后挂载:sudo mount <服务器IP>:/shared /mnt/nfs
- SSH/SCP 与 Rsync(最简便、加密)
- 在 Linux 客户机启用 SSH 服务:sudo apt-get install -y openssh-server && sudo systemctl start ssh
- 拷贝与同步:
- SCP:scp /local/file user@<vm_ip>:/remote/
- Rsync:rsync -avz /local/dir/ user@<vm_ip>:/remote/dir/
以上方式不依赖虚拟化增强工具,适合网络可达的任意主机与客户机组合。
五、常见问题与排查
- 挂载失败或目录为空
- 确认已安装VMware Tools/open-vm-tools或VirtualBox Guest Additions;
- 检查共享名、挂载点路径是否正确;VMware 用 .host:/<共享名>,VirtualBox 用 vboxsf <共享名称>;必要时创建挂载点(如 /mnt/hgfs 或 /mnt/shared)。
- 权限被拒绝
- VirtualBox:将用户加入 vboxsf 组并重新登录;必要时用 sudo 挂载;
- VMware FUSE:挂载时加 -o allow_other;检查宿主机共享目录的读写权限。
- 自动挂载不生效
- VirtualBox 勾选Auto-mount与Make Permanent;VMware 选择Always enabled;也可在 /etc/fstab 添加条目实现开机挂载(注意使用正确的文件系统类型与挂载选项)。
- 网络方式不通
- 确认虚拟机与主机网络可达(桥接/NAT 均可),关闭或放行相关防火墙端口(如 NFS 2049 等);Samba/CIFS 可按需指定 vers=2.0/3.0 以兼容旧主机。