news 2026/9/14 5:23:00

虚拟机文件传输:SCP、SFTP与Rsync实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
虚拟机文件传输:SCP、SFTP与Rsync实战指南

1. 虚拟机文件传输需求背景

在重邮的计算机相关课程实验中,我们经常需要在本地主机和虚拟机之间传输实验代码、数据文件或配置文档。传统U盘拷贝方式不仅效率低下,还容易造成版本混乱。掌握高效的文件传输方法,是每个计算机专业学生的必备技能。

以Linux虚拟机为例,常见的传输场景包括:

  • 将本地编写的Python脚本上传到虚拟机测试
  • 从虚拟机下载实验生成的日志文件
  • 同步课程项目代码到本地进行版本管理
  • 共享大型数据集用于机器学习训练

2. 基础传输方案:SCP命令详解

SCP(Secure Copy Protocol)是基于SSH的安全文件传输协议,适合快速传输单个文件或小规模文件集。

2.1 基本传输操作

上传文件到虚拟机:

scp /本地/文件路径 用户名@虚拟机IP:/目标路径

从虚拟机下载文件:

scp 用户名@虚拟机IP:/远程文件路径 /本地/保存路径

传输目录(添加-r参数):

scp -r /本地/目录 用户名@虚拟机IP:/目标路径

2.2 实用参数说明

  • -P 端口号:指定非默认SSH端口
  • -C:启用压缩传输
  • -l 限速值:限制带宽(单位Kbit/s)
  • -i 密钥文件:使用密钥认证

注意:传输大量小文件时,建议先打包成tar.gz再传输,效率可提升5-10倍

3. 交互式文件管理:SFTP实战

当需要频繁操作远程文件时,SFTP比SCP更高效。它提供了类似FTP的交互式界面。

3.1 连接与基本操作

建立连接:

sftp 用户名@虚拟机IP

常用命令:

ls # 查看远程目录 lls # 查看本地目录 cd # 切换远程目录 lcd # 切换本地目录 put # 上传文件 get # 下载文件 mkdir # 创建远程目录

3.2 断点续传技巧

大文件传输中断后:

reput 本地文件 # 续传上传 reget 远程文件 # 续传下载

4. 高级同步方案:Rsync深度应用

Rsync是专业级的文件同步工具,特别适合需要定期同步的场景。

4.1 基础同步命令

本地到虚拟机:

rsync -avz /本地/目录/ 用户名@虚拟机IP:/目标目录/

虚拟机到本地:

rsync -avz 用户名@虚拟机IP:/远程目录/ /本地/目录/

4.2 生产级参数配置

典型企业级同步方案:

rsync -avz --delete --exclude='tmp/' \ --bwlimit=5000 -e "ssh -p 2222" \ /项目目录/ user@host:/备份目录/

参数说明:

  • --delete:保持严格同步
  • --exclude:排除特定文件
  • --bwlimit:限速保护网络
  • -e:指定SSH端口

5. 常见问题排查手册

5.1 连接类问题

症状:Connection refused

  • 检查虚拟机SSH服务状态:sudo systemctl status sshd
  • 确认防火墙放行22端口:sudo ufw allow 22

症状:Host key verification failed

  • 清除已知主机记录:ssh-keygen -R 虚拟机IP

5.2 传输类问题

大文件传输中断

  • 使用rsync的--partial参数
  • 或改用SFTP的reget/reput命令

传输速度慢

  1. 检查网络模式:NAT模式性能优于桥接
  2. 添加-C参数启用压缩
  3. 避免WiFi使用有线连接

5.3 权限类问题

报错:Permission denied

  • 确保目标目录有写入权限:chmod 777 /目标目录
  • 检查SELinux状态:setenforce 0(临时关闭)

6. 性能优化实践

6.1 网络配置优化

修改SSH配置文件(/etc/ssh/sshd_config):

UseDNS no GSSAPIAuthentication no MaxSessions 10

6.2 传输预处理技巧

对于10,000+小文件:

# 发送端 tar czvf archive.tar.gz 源目录/ # 接收端 tar xzvf archive.tar.gz

6.3 自动化脚本示例

每日备份脚本(backup.sh):

#!/bin/bash DATE=$(date +%Y%m%d) rsync -avz --delete \ --exclude={'cache/','temp/'} \ -e ssh /data/ user@host:/backups/${DATE}/

设置定时任务:

crontab -e # 添加: 0 2 * * * /path/to/backup.sh

7. 安全加固方案

7.1 密钥认证配置

生成密钥对:

ssh-keygen -t rsa -b 4096

部署公钥:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

7.2 传输加密验证

检查文件完整性:

# 生成校验和 md5sum 文件名 # 传输后验证 ssh user@host "md5sum 远程文件"

7.3 安全审计方法

查看传输日志:

# 客户端 grep scp /var/log/auth.log # 服务端 journalctl -u ssh --since "1 hour ago"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 5:22:33

用TensorFlow实现LeNet-5:从MNIST手写数字识别入门卷积神经网络

简介:这是一份基于TensorFlow构建LeNet-5卷积神经网络的手写数字识别项目,网络结构包含卷积层、池化层、全连接层等典型模块,面向毕业设计、课程设计、工程实训和大作业等场景。资源内含MNIST数据集压缩文件、Python训练脚本、多轮迭代后的模…

作者头像 李华
网站建设 2026/9/14 5:21:46

新闻推荐系统实战:协同过滤双路召回与用户画像构建

简介:基于用户行为与内容的个性化新闻推荐系统毕业设计项目,内置协同过滤推荐算法,面向计算机相关专业学生、教师及企业开发者,可直接用于毕业设计、课程设计、大作业或阶段立项演示。代码经过测试运行、功能可用,也可…

作者头像 李华
网站建设 2026/9/14 5:21:41

SSRFScanner:从设计到实战,构建高效SSRF检测扫描器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 5:19:34

HiFox vs Jira:AI智能体如何夺取开发工作流主权

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 5:18:47

解析ThreeUI开源组件库:Open Core模式与社区贡献实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 5:18:42

NPU加速CV任务:Ops-CV算子库优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华