Linux 实现文件多线程下载
问题描述
在 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个连接下载文件。