如何提升Linux服务器的上传速度?

要让文件上传到 Linux 服务器更快,核心思路是:减少传输的数据量使用并行/高效的传输协议

针对不同的使用场景,以下是几种主流且高效的上传方法,按推荐顺序排列:

1. 使用rsync + 压缩 (最通用、最推荐)

rsync 不仅支持增量传输(只传变化的部分),还能在传输过程中实时压缩,对于单文件或目录,这是最佳选择。

基本命令

    rsync -avzP --progress /本地/文件路径 user@服务器IP:/远程/目标路径

-a:归档模式(保留权限、时间戳等)。

-v:显示详情。

-z传输时压缩(关键提速项,适合文本、代码、未压缩的图片等)。

-P:断点续传 + 显示进度。

进阶提速

如果你的服务器 CPU 够强,可以尝试更强的压缩算法(但会增加服务器 CPU 负担):

    rsync -avzP --compress-level=9 --rsh="ssh -T -c aes128-ctr" /本地/文件 user@IP:/远程/路径

*这里用了更快的加密算法aes128-ctr 来减少 SSH 的加密延迟。

2. 使用lrzszsz /rz) + Zmodem (如果走终端)

如果你是通过 SSH 客户端(如 Xshell、SecureCRT、Termius)连接,并且文件较小(<1GB),可以用lrzsz 配合Zmodem 协议。

优点:无需额外端口或配置,直接在 SSH 会话里传。

操作

1. 服务器安装:apt install lrzszyum install lrzsz

2. 本地 SSH 客户端必须支持 Zmodem(Xshell、SecureCRT 默认支持)。

3. 在服务器终端输入:rz -b (回车后,客户端会弹出文件选择窗口)。

4. 上传:sz 文件名 (将服务器文件下载到本地)。

注意rz单线程串行的,大型文件速度不如rsync,但胜在方便,适合几十 MB 的小文件。

3. 使用scp + 多线程工具 (parallel-scppscp

scp 本身是单线程的,对于非常大的单个文件,可以分割后并行上传。

手动分割并行上传

    # 1. 本地分割文件(每个50M)
    split -b 50M bigfile.tar.gz bigfile.part.
    # 2. 并行上传(使用 xargs 或 parallel)
    ls bigfile.part.* | xargs -P 8 -I {} scp {} user@server:/tmp/
    # 3. 服务器端合并
    cat bigfile.part.* > bigfile.tar.gz

-P 8 表示开启 8 个并发进程,对网络和 CPU 有一定压力。

专用工具pscp (Parallel SCP) 或go-pscp(Go语言版)。

可以自动化分割、并行传输、合并,但需要额外安装。

4. 使用lftp (针对 FTP/SFTP 协议)

如果必须用 FTP 或 SFTP,lftp 支持多线程下载/上传。

安装apt install lftp

上传

    lftp -c "open -u user,password sftp://服务器IP; mirror -R --parallel=10 /本地/目录 /远程/目录"

-R:反向镜像(上传本地到远程)。

--parallel=10:开启 10 个并行连接(SFTP 默认单线程,此选项可以明显提速)。

5. 使用aria2axel (针对 HTTP/HTTPS)

如果你的服务器运行着一个 Web 服务(如 Nginx 提供文件下载),或者你要上传到云盘。

对于上传aria2 支持多连接上传到支持分块上传的服务(如 Google Drive、阿里云 OSS),对于普通 VPS 间的传输,通常用wgetcurl 下载,但aria2 也可以做上传客户端。

常用场景:先在本地建一个 HTTP 服务器,然后在服务器上用aria2 分段下载。

    # 本地(提供文件)
    python3 -m http.server 8000
    # 服务器(分段下载)
    aria2c -x 16 -s 16 http://你本地IP:8000/file.zip

6. 终极方案:bbcpasppy (专业大文件传输)

这是高性能计算中常用的工具,专为高延迟、高带宽的网络设计,能自动调整窗口大小和并行度。

bbcp:UG 开发的并行拷贝工具。

asppy:自适应压缩和并行。

使用方式(以 bbcp 为例):

服务器需运行 bbcp 守护进程(bbcp 会自行启动)
bbcp -s 16 -w 4m -V /本地/文件 user@服务器IP:/远程/路径

-s 16:16 个并行流。

-w 4m:TCP 窗口大小(4MB),对高延迟网络至关重要。

场景 推荐工具 关键操作
日常文件/代码rsync 加上-z 参数压缩
超大单文件 (>1G)bbcp 或 分割pscp 增加并行流数
终端环境lrzszrz 直接拖拽文件到终端
网络差/高延迟rsync +Parallel 开启断点续传-P
FTP/SFTP 协议lftp 开启--parallel

最快的方案通常是:

1、压缩:把文件打包成.tar.gz.zip (尤其是很多小文件时)。

2、传输:使用rsync -avzPpscp /bbcp

3、解压:在服务器上解压。

一个特别提示:如果你的服务器和本地之间的物理距离很远(比如跨国),或者带宽非常窄,那么先压缩再传,效果可能比增加并行度更好,因为 CPU 压缩的速度通常比网络传输要快得多。

文章摘自:https://idc.huochengrm.cn/fwq/25378.html

评论

精彩评论
  • 2026-05-06 07:22:49

    优化Linux服务器配置,合理分配带宽,使用Nginx等高效服务器软件,可显著提升上传速度。