通过 SSH 登录到远程服务器后,有几种常用方法可以快速下载远程服务器上的数据到本地:


1. 使用 scp(简单可靠,适合单个或小批量文件)

scp 是基于 SSH 的文件传输工具,支持加密传输,简单方便。

语法:

scp user@remote:/path/to/file /local/path

示例:

scp user@192.168.1.100:/home/user/data.zip ~/Downloads/

说明

  • 将远程服务器的 /home/user/data.zip 下载到本地 ~/Downloads/ 目录下。

下载整个目录:

scp -r user@remote:/path/to/directory /local/path

说明-r 递归下载整个目录。


2. 使用 rsync(高效,支持断点续传)

rsyncscp 更高效,支持增量传输,适合大数据量传输。

语法:

rsync -avz user@remote:/path/to/file /local/path

示例:

rsync -avz user@192.168.1.100:/home/user/data/ ~/Downloads/

说明

  • -a:保持文件权限等属性。
  • -v:显示详细过程。
  • -z:压缩传输,加快速度。

断点续传(可恢复中断的传输):

rsync -avz --partial user@remote:/path/to/largefile /local/path

3. 使用 sftp(交互式,适合批量下载)

sftp 是安全文件传输协议,提供交互式环境,可批量下载。

连接服务器:

sftp user@remote

下载文件:

sftp> get /path/to/file

下载目录:

sftp> get -r /path/to/directory

4. 直接打包压缩后下载(适合大量小文件)

如果远程服务器上有大量小文件,直接下载会很慢,可以先压缩后再下载。

压缩远程文件夹:

tar -czvf data.tar.gz /path/to/data

下载压缩文件:

scp user@remote:/path/to/data.tar.gz /local/path

在本地解压:

tar -xzvf data.tar.gz

5. 使用 wget(远程下载到本地,适合公网可访问资源)

如果远程服务器上的文件可通过 HTTP/HTTPS 访问,可以直接使用 wget 下载。

示例:

wget http://example.com/file.zip

6. 使用 netcat(极快,适合局域网大数据传输)

在远程服务器和本地机器之间建立直接连接,速度极快。

在远程服务器打包并传输:

tar -czf - /path/to/data | nc -l 1234

在本地接收并保存:

nc remote_ip 1234 | tar -xzvf -

说明

  • nc 是网络传输工具,配合 tar 实现高速传输。

7. 使用 FileZillaWinSCP(图形界面,便于操作)

  • 使用 SFTP 协议,连接远程服务器,支持拖拽下载文件。
  • 适合不熟悉命令行的用户。

选择方法总结:

  • 小文件或目录scp
  • 大文件或目录,断点续传rsync
  • 交互式批量传输sftp
  • 大量小文件:压缩后使用 scprsync 下载
  • 局域网高速传输netcat
  • 公网资源wget
  • 图形化工具FileZilla / WinSCP