从宿主机拷贝文件到Linux虚拟机
方法1:共享文件夹(推荐)
- 适用场景:频繁传输中小文件,需虚拟机安装增强工具。
- VMware:
- 宿主机:VMware菜单 → 虚拟机 → 设置 → 选项 → 共享文件夹 → 添加宿主机目录。
- 虚拟机:挂载共享目录
vmware-hgfsclient # 查看共享名 mkdir ~/share sudo mount -t fuse.vmhgfs-fuse .host:/共享名 ~/share -o allow_other
- VirtualBox:
- 虚拟机设置 → 共享文件夹 → 添加宿主机路径(固定分配)。
- 虚拟机挂载:
sudo mount -t vboxsf 共享名 ~/share
- VMware:
方法2:SCP/SFTP(跨平台通用)
- 步骤:
- 虚拟机开启SSH服务:
sudo apt install openssh-server # Debian/Ubuntu sudo systemctl start sshd
- 宿主机使用SCP命令(以宿主机为Windows为例):
scp C:\宿主文件.txt 虚拟机用户名@虚拟机IP:~/目标路径/
- 或使用SFTP工具(如FileZilla、WinSCP)连接虚拟机IP。
- 虚拟机开启SSH服务:
方法3:拖放/复制粘贴(仅小文件)
- VMware/VirtualBox:
安装增强工具后,直接拖拽文件或复制粘贴(VirtualBox需在设备菜单启用双向粘贴)。
从Linux虚拟机拷贝文件到宿主机
方法1:SCP反向操作
方法2:共享文件夹
虚拟机将文件保存到已挂载的共享目录(如 ~/share
),宿主机直接访问对应文件夹。
Linux虚拟机之间拷贝文件
方法1:SCP命令(需SSH互通)
# 在源虚拟机执行: scp 文件.txt 目标虚拟机用户名@目标虚拟机IP:~/目标路径/
方法2:Rsync(增量同步大文件)
rsync -avzP 文件.txt 目标虚拟机用户名@目标虚拟机IP:~/目标路径/ # -a:归档模式 -v:详细输出 -z:压缩传输 -P:显示进度
方法3:共享存储(NFS/Samba)
- 搭建NFS服务器:
# 服务端(虚拟机A): sudo apt install nfs-kernel-server sudo echo "/共享目录 *(rw,sync,no_subtree_check)" >> /etc/exports sudo exportfs -a
- 客户端(虚拟机B)挂载:
sudo mount -t nfs 虚拟机A_IP:/共享目录 ~/local_mount
注意事项与安全建议
- 权限问题:
- 使用
sudo
提权操作挂载目录。 - 检查文件权限:
chmod
修改权限,chown
修改所有者。
- 使用
- 网络配置:
- 确保虚拟机网络为 桥接/NAT模式 并获取正确IP(
ip a
查看)。 - 关闭防火墙或放行端口(如SSH的22端口):
sudo ufw allow 22 # Ubuntu
- 确保虚拟机网络为 桥接/NAT模式 并获取正确IP(
- 安全传输:
- 优先使用SCP/SSH而非FTP(明文传输风险)。
- 用
rsync
替代cp
避免数据损坏。
- 大文件处理:
- 压缩后传输:
tar -czvf file.tar.gz 大文件
。 - 用
rsync -P
支持断点续传。
- 压缩后传输:
总结建议
- 日常小文件:共享文件夹(VMware/VirtualBox)或拖放操作。
- 跨平台/远程传输:SCP/SFTP(安全可靠)。
- 虚拟机间同步:Rsync(高效增量)或NFS(持续共享)。
- 避免使用:未加密的FTP/Telnet协议。
引用说明:
- VMware官方文档:Configuring Shared Folders
- VirtualBox手册:Shared Folders
- OpenSSH指南:SCP Command
- Rsync最佳实践:Rsync Tutorial
操作基于主流Linux发行版(Ubuntu 20.04/CentOS 7)验证,请根据实际环境调整命令。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9755.html