赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 实例
  6. 连接实例
  7. 上传或下载文件
  8. 通过sftpscprsync向Linux实例传输文件

通过sftpscprsync向Linux实例传输文件

  • 上传或下载文件
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

当本机为Linux或macOS系统时,目标实例为Linux系统且具有公网IP时,您可以参考本文通过sftp、scp、rsync等工具进行文件上传下载的操作。

工具介绍&对比

特性

SCP

SFTP

Rsync

功能

快速上传/下载单个文件或目录。

  • 交互式文件传输。

  • 支持文件管理。

  • 支持断点续传。

增量同步(仅传输差异部分)。

交互

命令行一次性操作。

支持交互式命令(类似FTP客户端)。

命令行或脚本化操作。

场景

  • 简单快速传输少量文件。

  • 临时传输且无需保留传输进度(如配置文件更新等)。

  • 需要进行文件管理操作。

  • 网络不稳定,需要断点续传功能。

  • 定期备份、大规模数据同步等场景。

  • 需增量传输以节省带宽和时间。

使用限制

本地系统限制

实例网络限制

文件大小限制

传输速度限制

文件数量限制

Linux或macOS

需要开通公网IP或EIP

无

无

无

准备工作

  • 检查实例状态:只有运行中的实例支持本文操作。

    检查实例运行状态

    实例运行状态可以在ECS控制台中的实例模块查看,运行中的实例如图所示:

    查看实例状态的操作说明,请参见查看实例信息。

    image

  • 获取实例的公网IP地址:在本文操作中需要使用实例的公网IP连接实例。

    获取实例公网IP信息

    实例的公网IP地址可以在ECS控制台的实例模块查看,如图所示:

    查看实例信息的操作说明,请参见查看实例信息。如何开通公网,请参见开通公网。

    image

  • 检查实例所在安全组:使用本文工具向实例传输文件时,需要检查安全组是否已经放通对应工具服务的连接端口(默认22)。

    本文操作所需安全组设置

    使用配置安全组规则的具体操作,请参见添加安全组规则。

    授权策略

    优先级

    协议类型

    端口范围

    授权对象

    允许

    1

    自定义TCP

    配置为您对应文件传输服务的端口(默认为22)。

    配置为您本地计算机的公网地址或IP地址段。

    警告

    使用0.0.0.0/0,代表所有IP地址均可以连接远程服务端口,该配置存在安全风险,请谨慎使用。

    您可以通过https://cip.cc/获取您的本机IP地址。

    例如本地计算机IP为118.xxx.xxx.xx8,需完成以下配置。

    image

通过SCP工具传输文件

SCP(Secure Copy Protocol)是一种基于SSH(Secure Shell)协议的文件传输协议,它提供了安全的文件传输、复制和管理功能。基本用法如下:

  • 上传文件

    需要上传文件或文件夹到实例时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    # 上传单个文件到实例
    scp <本地文件路径> <云服务器登录名>@<云服务器公网IP地址>:<实例目录>
    
    # 上传本地目录到实例
    scp -r <本地目录> <云服务器登录名>@<云服务器公网IP地址>:<实例目录>
  • 下载文件

    需要从实例下载文件到本地时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    # 下载单个文件到本地
    scp <云服务器登录名>@<云服务器公网IP地址>:<实例文件路径> <本地目录>
    
    # 下载实例目录到本地
    scp -r <云服务器登录名>@<云服务器公网IP地址>:<实例目录> <本地目录>

示例

  • 将本地的/opt/test.txt文件上传到公网IP为1xx.xxx.xxx.121实例的/home/ecs-user/路径下,可通过以下命令实现:

    scp /opt/test.txt ecs-user@1xx.xxx.xxx.121:/home/ecs-user/
  • 将公网IP为1xx.xxx.xxx.121实例的/home/ecs-user/test.txt文件下载到本地的/opt/路径下,可通过以下命令实现:

    scp ecs-user@1xx.xxx.xxx.121:/home/ecs-user/test.txt /opt/

使用SCP时指定端口

SCP默认使用的是SSH协议的22端口,如果您修改了SSH服务的端口,可以在执行命令时,通过-P参数指定端口,命令如下:

# 上传单个文件到实例,并指定SSH端口
scp -P <SSH服务端口> <本地文件路径> <云服务器登录名>@<云服务器公网IP地址>:<实例目录>

使用SCP时指定私钥文件(密钥对认证)

如果您为实例绑定了密钥对,在连接实例时可以通过-i参数指定私钥文件,命令如下:

scp -i <私钥文件路径> <本地文件路径> <云服务器登录名>@<云服务器公网IP地址>:<实例目录>

通过SFTP工具传输文件

SFTP(SSH File Transfer Protocol)是基于SSH协议的交互式文件传输工具,支持文件管理、断点续传等特性。具体操作步骤如下:

1. 连接云服务器实例

在本机终端,输入以下命令连接云服务器ECS实例。

sftp <云服务器实例登录名>@<云服务器实例公网IP地址>

如图所示,连接成功后显示如下内容。

image

示例

例如使用ecs-user连接公网IP为1xx.xxx.xxx.121的实例时,可以使用以下命令:

sftp ecs-user@1xx.xxx.xxx.121

使用SFTP连接实例时指定端口

如果您修改了SFTP服务的端口,在连接实例时可以通过-P参数指定实例SFTP服务的端口,命令如下:

sftp -P <端口> <云服务器登录名>@<云服务器公网IP地址>

使用SFTP连接实例时指定私钥文件(密钥对认证)

如果您为实例绑定了密钥对,在连接实例时可以通过-oIdentityFile参数指定私钥文件,命令如下:

sftp -oIdentityFile=<私钥文件路径> <云服务器登录名>@<云服务器公网IP地址>

2. 上传/下载文件

  • 从本地上传文件或整个目录到实例

    # 上传单个文件
    sftp> put <本地文件> <实例目录>
    
    # 上传整个目录
    sftp> put -r <本地目录> <实例目录>
  • 从实例下载文件或整个目录到本地

    # 下载单个文件
    sftp> get <实例文件> <本地目录>
    
    # 下载整个目录
    sftp> get -r <实例目录> <本地目录>

示例

  • 将本机/opt/test.txt文件上传至实例的/home/ecs-user/目录下:

    sftp> put /opt/test.txt /home/ecs-user
  • 将本机/opt/test/目录上传至实例的/home/ecs-user/目录下:

    sftp> put -r /opt/test/ /home/ecs-user/
  • 将实例的/home/ecs-user/test.txt文件下载至本机的/opt目录下:

    sftp> get /home/ecs-user/test.txt /opt
  • 将实例的/home/ecs-user/test/目录下载至本地的/opt目录下:

    sftp> get -r /home/ecs-user/test/ /opt

3. 断点续传(传输中断时使用)

当大文件传输中断时,可使用 reget和 reput替换步骤2中的get和put命令,继续传输文件:

# 继续上传
sftp> reput <本地文件> <实例目录>

# 继续下载
sftp> reget <实例文件> <本地目录>

4. 断开连接

当完成传输任务后,可以通过quit或bye命令退出SFTP。

sftp> quit
sftp> bye

通过Rsync工具传输文件

rsync是一个用于Linux/Unix系统的文件同步和传输工具。使用该工具,可以实现将本地文件上传到实例,或从实例下载文件到本地,此外,rsync还支持目录同步功能,rsync工具的安装及使用步骤如下:

1. 安装工具

首先您需要在本地和远程服务器上安装rsync,rsync的安装方式如下:

Alibaba Cloud Linux 3/2

sudo yum install -y rsync 

CentOS 8/7/6

sudo yum install -y rsync 

Ubuntu/Debian

sudo apt install -y rsync 

2. 使用rsync上传/下载文件

  • 上传单个文件

    当需要上传文件到实例时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    rsync -avz -e ssh <本地文件或文件夹路径> <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例目录>
  • 下载单个文件

    当需要从实例下载文件到本地时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    rsync -avz -e ssh <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例文件或文件夹路径> <本地目录>
  • 同步本地某个目录到ECS实例(上传目录)

    当需要从本地将整个文件夹上传(或同步到)实例时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    rsync -avz -e ssh <本地文件夹路径> <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例目录>
  • 同步ECS实例的某个目录到本地(下载目录)

    当需要从实例将整个文件夹下载(或同步到)本地时,可以在本地执行以下命令,执行命令后,可能会提示您输入密码。

    rsync -avz -e ssh <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例文件夹路径> <本地目录>

示例

  • 将/opt/test.txt文件上传至公网IP为1xx.xxx.xxx.121实例的/home/ecs-user目录下,可使用以下命令:

    rsync -avz -e ssh /opt/test.txt ecs-user@1xx.xxx.xxx.121:/home/ecs-user
  • 将本地/opt/test目录,与公网IP为1xx.xxx.xxx.121实例的/home/ecs-user/test目录同步,可使用以下命令:

    rsync -avz -e ssh /opt/test/ ecs-user@1xx.xxx.xxx.121:/home/ecs-user/test

使用Rsync时指定端口

如果需要指定SSH服务的端口,可以通过修改-e参数来指定端口,命令如下:

rsync -avz -e "ssh -p <SSH服务的端口>" <本地文件夹路径> <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例目录>

使用Rsync时指定私钥文件(密钥对认证)

如果您为实例绑定了密钥对,您可以通过密钥对认证身份,可以通过修改-e参数来指定私钥文件路径,命令如下:

rsync -avz -e "ssh -i <私钥文件路径>" <本地文件夹路径> <云服务器实例登录名>@<云服务器实例公网IP地址>:<实例目录>

相关文档

  • 上传文件至ECS后,您可以对重要文件进行备份。具体操作,请参见创建快照。

  • 本文操作仅支持从本地Linux或macOS系统上传文件到Linux实例,或从Linux实例下载文件到本地Linux或macOS,如果您需要上传文件到Windows实例,可使用其他文件传输方式,请参见选择传输文件的方式。

  • 如果需要从本机Windows系统向Linux实例传输文件,可以使用WinSCP工具完成文件传输操作,WinSCP支持切换SCP或SFTP协议,具体操作,请参见在本地Windows使用WinSCP向Linux实例传输文件。

  • 您还可以通过对象存储OSS来存储和管理文件。详细操作,请参见OSS快速入门。

相关文章

使用Workbench上传或下载文件 2025-04-01 11:59

在使用Workbench时,您可以可视化管理云服务器ECS上的文件,其中就包括上传文件、下载文件等。本文为您介绍如何通过Workbench从本地向ECS上传文件或下载ECS中的文件到本地。 适用场景

使用对象存储中转向实例传输文件 2025-04-01 11:59

在需要向ECS实例传输大文件,或向无公网连接的ECS实例传输文件时,您可以通过对象存储中转的方式实现文件传输。 方案概览

使用远程桌面或Windows APP向Windows实例传输文件 2025-04-01 11:59

为了向Windows云服务器实例传输文件,您可以通过Windows自带的远程桌面功能连接到实例并进行文件传输。若您使用的是macOS系统,则可以借助适用于Mac的应用(Windows APP)来连接实例,并实现文件的传输。本文将指导您使用远程桌面和Windows APP这两种方式,完成向实例传输文件

压缩文件后上传 2025-04-01 11:59

文件大小和数量影响上传效率。为提升向ECS传输大文件或多个文件的速度,建议先压缩文件或文件夹,上传后再解压。本文将指导您如何压缩、解压文件,并在传输后检查文件完整性。 方案概述 对于大文件和大量文件的传输场景,可以提高文件传输效率。此外由于Workbench等工具每次只能上传单个文件,您可以通过文件

在本地Windows使用WinSCP向Linux实例传输文件 2025-04-01 11:59

如果您的本地主机为Windows系统,您可以安装WinSCP工具后,使用该工具远程连接Linux系统的ECS实例,以可视化的方式进行文件的上传和下载操作。 什么是WinSCP? WinSCP是Windows系统向Linux系统传输文件的一个客户端工具,使用WinSCP可以实现在本地与远程计算机之间安

批量上传(分发)单个文件至多个ECS实例 2025-04-01 11:59

您可以使用系统运维管理(OOS)将单个文件批量上传(分发)至多个ECS实例。支持上传本地文件、存储在OSS的文件以及HTTPS远程文件。本文介绍如何使用OOS批量上传单个文件至多个ECS实例。 说明 系统运维管理(

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号