Linux 实现文件多线程下载

Linux 2020-10-19 阅读 379 评论 0

问题描述

在 Windows 系统我们可以使用 Internet Download Manager (IDM)Neat Download Manager (NDM) 实现多线程下载文件,Mac也能使用 NDM,从而提高提高下载速度。但是在 Linux 系统中,我们常用的 wget 或者 curl 命令本身不支持支持多线程下载的服务。

解决方法

多线程下载的前提是下载的链接支持断点续传服务。curl 命令有一个参数 --range,可以下载指定的字节,如果不嫌弃麻烦,可以写一个小程序实现多线程下载与合并。我们同样可以使用 aria2

aria2 是用于下载文件的实用程序。支持的协议是HTTP(S),FTP,SFTP,BitTorrent和Metalink。 aria2可以从多个来源/协议下载文件,并尝试利用最大下载带宽。它支持同时从HTTP(S)/ FTP / SFTP和BitTorrent下载文件,而从HTTP(S)/ FTP / SFTP下载的数据上传到BitTorrent群。使用Metalink的块校验和,aria2在下载BitTorrent之类的文件时会自动验证数据块。

使用以下命令,实现多线程下载:

aria2c -x 16 -s 16 [url]
#          |    |
#          |    |
#          |    |
#          ---------> 连接数

-x, --max-connection-per-server = N

              每次下载到一台服务器的最大连接数。默认值:1

-s,--split = N
              使用N个连接下载文件。

最后更新 2020-10-31