共享文件夹法(推荐给VMware/VirtualBox用户)
适用场景:主机与虚拟机频繁交换文件,无需网络配置。
步骤:
- 配置共享文件夹
- VMware:虚拟机设置 → 选项 → 共享文件夹 → 启用并添加主机目录(如
D:\share
)。 - VirtualBox:设置 → 共享文件夹 → 添加路径(勾选“自动挂载”和“固定分配”)。
- VMware:虚拟机设置 → 选项 → 共享文件夹 → 启用并添加主机目录(如
- Linux挂载目录
- 启动虚拟机,共享目录通常自动挂载到
/media/sf_共享文件夹名
(需替换实际名称)。 - 手动挂载(可选):
sudo mkdir /mnt/share # 创建挂载点 sudo mount -t vboxsf 共享文件夹名 /mnt/share # VirtualBox sudo mount -t vmhgfs .host:/共享文件夹名 /mnt/share # VMware
- 启动虚拟机,共享目录通常自动挂载到
- 访问文件
- 终端查看:
ls /mnt/share
- 图形界面:文件管理器进入
/media
或/mnt
目录。
注意:将用户加入vboxsf
组(VirtualBox)或vmware
组(VMware)以解决权限问题:sudo usermod -aG vboxsf $USER # VirtualBox sudo reboot # 重启生效
- 终端查看:
SCP命令法(命令行首选)
适用场景:通过SSH安全传输文件,适合远程或本地虚拟机。
前提:虚拟机已开启SSH服务(检查命令:sudo systemctl status sshd
)。
步骤:
- 从主机复制到虚拟机
scp /主机/文件路径 用户名@虚拟机IP:/目标目录/ # 示例:scp ~/test.txt user@192.168.1.10:/home/user/
- 从虚拟机复制到主机
scp 用户名@虚拟机IP:/虚拟机文件路径 /主机/目标目录/ # 示例:scp user@192.168.1.10:/var/log/syslog ~/Downloads/
关键参数:
-P 端口号
:指定非默认SSH端口(如-P 2222
)。-r
:传输整个目录(如scp -r my_folder user@IP:/path
)。
SFTP客户端法(图形化操作)
适用场景:可视化管理文件,适合大文件或多文件传输。
工具推荐:FileZilla(免费跨平台)、WinSCP(Windows)。
步骤(以FileZilla为例):
- 打开FileZilla → 顶部输入栏填写:
- 主机:虚拟机IP(如
sftp://192.168.1.10
) - 用户名/密码:虚拟机登录凭证
- 端口:22(默认)
- 主机:虚拟机IP(如
- 连接后:
- 左侧(本地主机)拖拽文件到右侧(虚拟机目录)。
- 支持断点续传和批量传输。
HTTP/FTP临时服务法(无SSH时备用)
适用场景:虚拟机无法开启SSH,需快速传输小文件。
步骤:
- 在虚拟机启动HTTP服务
cd /目录/含文件 # 进入目标目录 python3 -m http.server 8000 # Python3启动服务(端口自选)
- 主机下载文件
- 浏览器访问
http://虚拟机IP:8000
→ 点击文件名下载。 - 或终端下载:
wget http://虚拟机IP:8000/文件名
替代方案:
- 浏览器访问
- 使用FTP服务(安装
vsftpd
,配置较复杂)。
云存储/网盘中转法
适用场景:大文件或跨网络传输。
步骤:
- 主机上传文件到网盘(如Google Drive、OneDrive、百度网盘)。
- 虚拟机内:
- 命令行下载:
wget 文件直链 # 需获取直链(如使用transfer.sh)
- 或安装网盘客户端(如Nextcloud、rclone)。
- 命令行下载:
远程桌面拖放法(带图形界面)
适用场景:虚拟机已安装桌面环境(如Ubuntu Desktop)。
步骤:
- 启用远程桌面
- 安装xrdp:
sudo apt install xrdp # Debian/Ubuntu sudo systemctl enable xrdp
- 安装xrdp:
- 主机连接
- Windows:用“远程桌面连接”输入虚拟机IP。
- macOS/Linux:使用Remmina或Vinagre。
- 直接拖放:连接后,在远程桌面中拖拽文件到虚拟机窗口。
USB设备直通法(物理设备传输)
适用场景:U盘/移动硬盘中的大文件传输。
步骤:
- VirtualBox/VMware设置:
虚拟机 → 设置 → USB设备 → 添加主机设备。
- Linux挂载U盘:
sudo mkdir /mnt/usb # 创建挂载点 sudo mount /dev/sdb1 /mnt/usb # sdb1需替换为实际设备名(用lsblk查看)
- 操作完成后卸载:
sudo umount /mnt/usb
总结与注意事项
方法 | 优势 | 适用场景 |
---|---|---|
共享文件夹 | 无需网络,双向实时同步 | VMware/VirtualBox本地虚拟机 |
SCP/SFTP | 安全加密,跨平台通用 | 远程或本地SSH可用环境 |
HTTP临时服务 | 无需安装额外服务 | 快速传输小文件 |
远程桌面拖放 | 图形化操作直观 | 带桌面的虚拟机 |
云存储/USB | 突破网络限制 | 大文件或物理设备中转 |
安全提示:
- 使用SCP/SFTP时,建议禁用SSH密码登录,改用密钥认证。
- 临时HTTP服务仅限内网使用,暴露公网有风险。
- 共享文件夹权限问题可通过用户组解决(如
vboxsf
)。
引用说明:本文参考Linux官方文档、VMware/VirtualBox手册及SSH协议规范,方法经Ubuntu/CentOS实测验证。
根据需求选择方法:开发调试首选共享文件夹,远程管理用SCP/SFTP,临时传输走HTTP服务,遇到权限问题,终端命令加
sudo
并检查用户组归属。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6931.html