You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

云服务器间数据传输

最近更新时间2022.07.27 15:46:33

首次发布时间2022.04.27 21:04:01

本文介绍类Unix/Linux操作系统的云服务器间如何传输数据。

SCP

SCP是基于SSH登录,可以在Linux服务器间进行安全的远程文件拷贝的命令工具。

SCP常用场景

场景命令示例
两台Linux服务器间传输文件scp <源主机用户名>@<源主机IP>:<待传输文件地址> <目的主机用户名>@<目的主机IP>:<接收文件地址>将IP为192.168.1.104的云服务器文件传输到IP为192.168.1.105的云服务器/home/目录下,命令如下:scp root@192.168.1.104:/test.txt root@192.168.1.105:/home/
从本地复制文件到远程服务器scp <本地文件地址> <远程服务器用户名>@<远程服务器公网IP>:<远程服务器文件地址>将本地文件 /home/test.txt 上传至公网IP地址为10.x.x.x的云服务器对应目录下,命令如下:
scp /home/test.txt root@10.x.x.x:/home/
从远程服务器复制文件到本地主机scp <远程服务器用户名>@<远程服务器公网IP>:<远程服务器文件地址> <本地文件存储地址>将公网IP地址为10.x.x.x的云服务器文件 /home/test.txt 下载至本地 /home/目录下,命令如下:
scp root@10.x.x.x:/home/test.txt /home/

如需了解更多scp命令语法,可执行man scp获取相关信息。

Rsync

Rsync(remote synchronize)是Linux系统下的数据镜像备份工具。可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步,文件传输速率高。

Rsync算法并不是每一次都整份传输,而是只传输两个文件的不同部分,因此其传输速度较快。

Rsync常见参数说明如下:

参数说明
-v显示详细信息。
-q忽略非error的输出。
-a归档(压缩)模式,表示以递归方式传输文件,并保持所有文件属性等同于-rlptgoD(无 -H,-A,-X)。
-r对子目录以递归模式处理。
-l不处理符号链接保(留符号链接)。
-p保持权限。
-t保持修改时间。
-g保持组信息。
-o保持文件所有者信息。
-D保持设备文件信息。
-H保留硬链结。
-S对稀疏文件进行特殊处理以节省空间。
-z在传输过程中进行压缩。

本节以CentOS 7.9操作系统为例,介绍相关安装、配置说明。

安装Rsync

  1. 执行rsync --version命令,检查是否已经安装rsync。
    返回版本信息,即为已安装rsync。
  2. 如未安装rsync,可根据操作系统,执行对应命令安装。
    • CentOS/Fedora:yum install rsync
    • Debian/Ubuntu/veLinux:sudo apt-get install rsync
    • OpenSUSE:zypper in rsync

Rsync服务配置(可选)

使用Rsync服务进行文件传输时,需在server端和client端进行如下预配置。

如通过SSH传输文件,无需进行Rsync服务预配置,您可跳过此步骤。

Server端配置

  1. 修改/etc/rsyncd.conf文件。
    1. 执行vim /etc/rsyncd.conf打开文件,按i进入编辑模式,在文件末尾添加如下内容:
      uid = root
      gid = root
      use chroot = no
      max connections = 4
      exclude = lost+found/
      transfer logging = yes
      timeout = 900
      ignore nonreadable = yes
      dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb .bz2
      [test]               #自定义模块名称
      path=/home/test/     #指定存储文件的路径
      comment=test
      ignore errors
      read only=no         #设置为no,客户端可以上传文件,yes表示只读
      write only=no        #no表示可在客户端下载,yes表示不能在客户端下载
      list=no              #客户请求时,使用模块列表
      auth user=root       #指定传输时要使用的用户名
      
    2. Esc退出编辑模式,然后输入:wq并回车。
  2. 执行vim /etc/rsyncd.passwd命令,新建/etc/rsyncd.passwd文件。按i进入编辑模式,添加用户名及密码:<auth user>:<password>,按Esc退出编辑模式,然后输入:wq并回车。
  3. 执行chmod 600 /etc/rsyncd.passwd命令,开启读写权限。
  4. 执行systemctl start rsyncd命令,开启服务。

Client端配置

  1. 执行vim /etc/rsyncd.passwd命令,新建/etc/rsyncd.passwd文件。按i进入编辑模式,添加server端auth user密码:<password>,按Esc退出编辑模式,然后输入:wq并回车。
  2. 执行chmod 600 /etc/rsyncd.passwd命令,开启读写权限。

工作模式

工作模式命令示例
拷贝本地文件rsync -avSH <源文件地址> <目的地址>将/home目录下的test.txt文件拷贝到/tmp目录下,命令如下:
rsync -avSH /home/test.txt /tmp/
将本地机器的内容拷贝到远程机器(使用shell程序,如SSH)rsync -av <本地文件地址> <远程机器IP>:<远程机器文件存储地址>将本地机器/home目录下的test.txt文件拷贝到IP为192.168.2.65的远程机器/tmp目录下,命令如下:
rsync -av /home/test.txt 192.168.2.65:/tmp/
将远程机器的内容拷贝到本地机器(使用shell程序,如SSH)rsync -av <远程机器IP>:<远程机器文件地址> <本地机器文件存储地址>例如:将IP为192.168.2.65的远程机器/tmp目录下的test.txt文件拷贝到本地机器/home目录下,命令如下:
rsync -av 192.168.2.65:/tmp/test.txt /home/
将本地机器拷贝文件到远程rsync服务器中rsync -av <本地文件地址> <auth user>@<远程服务器IP>::<模块名>将本地test.txt文件上传到IP为192.168.2.65的远程机器test模块下,命令如下:rsync -av /root/test.txt root@192.168.2.65::test
从远程rsync服务器中拷贝文件到本地机rsync -av <auth user>@<远程服务器IP>::<模块名> <本地文件存储地址>将IP为192.168.2.65的远程机器test模块下的文件拷贝到本地机器/home目录下,命令如下:
rsync -av root@192.168.2.65::test /home/
显示远程机器的文件列表rsync -v rsync://<远程服务器IP>/<模块名>显示IP为192.168.2.65的远程机器的文件列表,命令如下:
rsync -v rsync://192.168.2.65/test

Netcat

NC(netcat)被称为网络工具中的瑞士军刀,体积小巧,但功能强大,通过建立TCP连接可以很方便的在两台主机间传输文件。

NC常见参数说明如下:

参数说明
-g<网关>设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目>设置来源路由指向器,其数值为4的倍数。
-h在线帮助。
-i<延迟秒数>设置时间间隔,以传送信息及扫描通信端口。
-l使用监听模式,管控传入的资料,需与-p选项同时使用。
-n直接使用IP地址,而不通过域名服务器。
-p<通信端口>设置本地主机使用的通信端口。
-r指定本地与远端主机的通信端口。
-s<来源位址>设置本地主机送出数据包的IP地址。
-u使用UDP传输协议。
-v显示指令执行过程。
-w<超时秒数>设置等待连线的时间。
-z使用0输入/输出模式,只在扫描通信端口时使用。

安装NC

  1. 执行nc --version命令,检查是否已经安装netcat。
    返回版本信息,即为已安装NC。
  2. 如未安装NC,执行如下命令安装。
    wget https://sourceforge.NET/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz
    tar zxvf netcat-0.7.1.tar.gz
    cd netcat-0.7.1
    ./configure
    make
    make install
    

NC常用场景

场景命令示例
扫描端口nc -v -w 2 <待扫描机器IP> -z <端口范围> 扫描IP为192.168.2.253的远程服务器20-30端口,命令如下:nc -v -w 2 192.168.2.253 -z 20-30

传输文件

  • 接收端开启监听:nc -l -p <监听端口> > <输出文件>

  • 发送端发送文件:nc <接收端IP> < <待传输文件>

从IP为192.168.2.65的机器拷贝test.txt文件到IP为192.168.2.253机器上,命令如下:

  • 接收端(192.168.2.253):nc -l -p 1234 > test.txt
  • 发送端(192.168.2.65):nc 192.168.2.253 1234 < test.txt