,如下:**,本文详细介绍了在Linux环境下,两台虚拟机之间高效拷贝文件夹的五种实用方法,内容涵盖了基础的**SCP**命令、支持断点续传和增量备份的**Rsync**工具、利用管道加速传输的**Tar+SSH**组合、可视化的**SFTP/FTP**服务,以及通过**NFS或共享文件夹**挂载实现的本地复制方式,文章对比了各方案在传输速度、安全性及大文件处理上的优缺点,旨在帮助用户根据实际网络环境和业务需求,选择最优的文件传输策略。
在Linux服务器管理或开发环境中,经常需要在两台虚拟机之间传输文件或文件夹,无论是配置同步、数据备份还是代码迁移,掌握高效的文件夹拷贝方法都能提升工作效率,本文将介绍5种常用的Linux虚拟机文件夹拷贝方式,涵盖命令行工具、网络协议及自动化脚本,适合不同场景需求。
准备工作:确保虚拟机网络互通
在开始拷贝前,需确认两台虚拟机(假设称为VM1和VM2)之间网络连通,具体步骤如下:
- 检查IP地址:分别在两台虚拟机中使用
ip addr或ifconfig命令查看IP(如VM1的IP为168.1.10,VM2为168.1.20)。 - 测试网络连通性:在VM1中执行
ping 192.168.1.20,在VM2中执行ping 192.168.1.10,确保能互相ping通。 - 关闭防火墙(可选):若ping不通,可临时关闭防火墙(如
sudo systemctl stop firewalld),或开放SSH端口(默认22)。
方法一:使用scp命令(安全拷贝,简单直接)
scp(Secure Copy)是基于SSH协议的文件传输工具,支持加密传输,适合小到中等大小的文件夹拷贝。

语法说明
scp -r [用户名@]源虚拟机IP:源文件夹路径 [用户名@]目标虚拟机IP:目标文件夹路径
-r:递归拷贝整个文件夹(必需,否则只能拷贝文件)。[用户名@]:目标虚拟机的用户名(若与当前用户相同,可省略)。
示例
假设VM1(用户名user1,IP168.1.10)的/home/user1/project文件夹要拷贝到VM2(用户名user2,IP168.1.20)的/tmp目录下:
# 从VM1拷贝到VM2 user1@VM1$ scp -r /home/user1/project user2@192.168.1.20:/tmp
执行后会提示输入VM2的user2用户密码,输入后开始传输。
进阶:SSH免密登录(避免重复输入密码)
- 在VM1生成SSH密钥对(若无):
ssh-keygen -t rsa -b 4096 # 一路回车即可
- 将公钥拷贝到VM2的
authorized_keys文件中:user1@VM1$ ssh-copy-id user2@192.168.1.20
- 后续使用
scp时无需输入密码,直接传输。
优缺点
- 优点:无需额外安装,系统自带,传输安全(加密)。
- 缺点:大文件夹传输时速度较慢,不支持增量同步。
方法二:使用rsync命令(增量同步,高效稳定)
rsync(Remote Sync)是Linux下强大的文件同步工具,支持增量传输(只同步变化的文件),适合大文件夹或频繁同步场景。
语法说明
rsync -avz -e ssh [源文件夹路径] [用户名@]目标虚拟机IP:目标文件夹路径
-a:归档模式,保留权限、时间戳等元数据。-v:显示详细传输过程。-z:压缩传输,节省带宽。-e ssh:通过SSH协议传输(默认,可省略)。
示例
将VM1的/home/user1/data文件夹同步到VM2的/backup目录:
user1@VM1$ rsync -avz /home/user1/data user2@192.168.1.20:/backup
若需删除目标文件夹中已不存在的文件(保持完全同步),添加--delete参数:
user1@VM1$ rsync -avz --delete /home/user1/data user2@192.168.1.20:/backup
优缺点
- 优点:增量传输,速度快,支持保留文件属性,适合大文件和频繁同步。
- 缺点:需要安装(部分系统默认无
rsync,可通过sudo apt install rsync或sudo yum install rsync安装)。
方法三:使用sftp命令(交互式传输,灵活可控)
sftp(SSH File Transfer Protocol)是基于SSH的安全文件传输协议,提供交互式命令行界面,适合选择性拷贝文件或查看远程目录。
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

