对于在 Linux 的下载工具而言,比较常用的就是 wget 或者 curl,吾也一直用 wget 的方式进行网络上的资源下载。偶然发现了 axel 这个支持多线程的下载工具,试用了几次之后,发现网络文件的下载速度提交了很多,决定将常用的下载工具替换为 axel。

axel是一个多线程分段下载工具,可以从ftp或http服务器进行下载。

1 安装

1、Linux 安装
CentOS 中安装 axel,axel 系统不自带,且 Yum 源也没有 axel 的包,需要从网络中下载。
可以在 https://centos.pkgs.org/ ,  http://pkgs.repoforge.org/axel/ 搜索找到并下载安装,下载rpm包安装。

项目地址:https://github.com/axel-download-accelerator/axel

$ wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/a/axel-2.4-9.el7.x86_64.rpm
$ rpm -ivh axel-2.4-9.el7.x86_64.rpm
 yum install axel -y

2、macOS 安装
使用 brew 安装

$ brew install axel

源码安装

wget https://github.com/axel-download-accelerator/axel/releases/download/v2.17.10/axel-2.17.10.tar.xz
tar -xvf axel-2.17.10.tar.xz
cd axel-2.17.10
./configure && make && make install

在该目录下就有axel

2 选项参数

--max-speed=x , -s x         # 最高速度x
--num-connections=x , -n x   # 连接数x
--output=f , -o f            # 下载为本地文件f
--search[=x] , -S [x]        # 搜索镜像
--header=x , -H x            # 添加头文件字符串x(指定 HTTP header)
--user-agent=x , -U x        # 设置用户代理(指定 HTTP user agent)
--no-proxy , -N             # 不使用代理服务器
--quiet , -q                # 静默模式
--verbose ,-v               # 更多状态信息
--alternate , -a            # Alternate progress indicator
--help ,-h                  # 帮助
--version ,-V               # 版本信息

详细参数:

--max-speed=x, -s x

指定最大下载速度。

--num-connections=x, -n x

指定链接的数量。

--output=x, -o x

指定下载的文件在本地保存的名字。如果指定的参数是一个文件夹,则文件会下载到指定的文件夹下。

--search[=x], -S[x]

Axel将会使用文件搜索引擎来查找文件的镜像。缺省时用的是filesearching.com。可以指定使用多少个不同的镜像来下载文件。
检测镜像将会花费一定的时间,因为程序会测试服务器的速度,以及文件存在与否。

--no-proxy, -N

不使用代理服务器来下载文件。当然此选项对于透明代理来说无意义。

--verbose

如果想得到更多的状态信息,可以使用这个参数。

--quiet, -q

不向标准输出平台(stdout)输入信息。

--alternate, -a

指定这个参数后将显示一个交替变化的进度条。它显示不同的线程的进度和状态,以及当前的速度和估计的剩余下载时间。

--header=x, -H x

添加HTTP头域,格式为“Header: Value”。

--user-agent=x, -U x

有些web服务器会根据不同的User-Agent返回不同的内容。这个参数就可以用来指定User-Agent头域。缺省时此头域值包括“Axel”,它的版本号以及平台信息。

--help, -h

返回参数的简要介绍信息。

--version, -V

显示版本信息。

至少要制定一个参数,如果是FTP下载的话,可以指定通配符进行下载, 程序会自行解析完整的文件名。可以指定多个URL进行下载,但是程序不会区分这些URL是否为同一个文件,换而言之,同一个URL指定多次,就会进行多次的下载。

3 下载测试

在同一台服务器上用官方的 CentOS Minimal ISO 镜像,分别用 wget 和 axel 做一个下载测试,文件大小 900M + 。

$ wget http://mirror.sfo12.us.leaseweb.net/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

结果:
wget 下载用时 31s。

$ axel -n 20 http://mirror.sfo12.us.leaseweb.net/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

结果:
axel 下载用时 12s。

用axel下载东西时,容易出现 Too many redirects. 的错误,则使用最新版本即可。因为github强制使用https,axel会跳转到80端口,这样造成了死循环,github上面的最新版axel已经解决了这个问题。

===============aria2==============================

https://github.com/aria2/aria2

https://aria2.github.io/

  • 优点:比较全能,HTTP 下载和 BT 下载都有,性能也相当不错,速度不比迅雷慢
  • 缺点:无 UI,需要自备;配置麻烦,上手较难。

axel与aria2c对比

对比项 axel aria2c
支持的下载协议 HTTP,HTTPS,FTP,FTPS等 HTTP/HTTPS GEET方式, FTP,BitTorrent协议和fast扩展
更改下载文件路径/名称 -o -o
限制连接数 -n -x, –max-connection-per-server,默认为1
限制下载速度 -s 或 –max-speed –max-download-limit,默认不限速
断点续传 使用相同的axel命令即可 -c
替换进度条 -a
从文件获取输入 不支持 -i,–input-file
下载BiTorrent文件种子和磁力链接 不支持 支持
下载多个文件 不支持 -z

使用对比

用20个连接限制1.5M(默认的下载单位为Kb,1.5M=1500000kb)的速度下载deepin的镜像文件到/tmp目录下并改名为deepin15.5.iso文件不使用默认的下载进度条

axel -a -n 20 -s 1500000 -o /tmp/deepin15.5.iso  https://mirrors.tuna.tsinghua.edu.cn/deepin-cd/15.5/deepin-15.5-amd64.iso

用5个连接限速2M(不可使用小数)从含有deepin镜像文件http下载链接的文件中下载到/tmp目录下改名为deepin15.5.iso并要求下载中断之后能够继续下载

aria2c -x 5 --max-download-limit=2M -c -i ~/deepin.txt 

==========================================

mwget

安装

wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2tar -xjvf mwget_0.1.0.orig.tar.bz2
cd mwget_0.1.0.orig
./configure
make
make install

mwget比wget速度,实测提升了至少4倍。因为缺省是4个线程,所以快了4倍。

选项是:Options:
-b, --debug Show the debug message
-c, --count=num Set the retry count to [num], no limit when "0", the default is "99"
-d, --directory=dir Set the local direcotry to [dir], the default is "."
-f, --file=file Rename the file to [file]
-h, --help A brief summary of all the options
-i, --interval=num Set the ftp retry interval to [num] seconds, the default is "5"
-n, --number=num Use [num] connections instead of the default (4)
-r, --referer=URL Include `Referer: [URL]' header in HTTP request.
-t, --timeout=num Set the connection timeout to [num] seconds, the default is "30"
-v, --version Show the version of the mwget and exit
-x, --proxy=URL Set the proxy [URL]

参考资料:

  1. aria2 懒人安装教程
  2. Aria2+WebUI,迅雷倒下之后的代替品
  3. BT trackers 更新项目
  4. Aria2基础上手指南
  5. 解决Aria2 BT下载速度慢没速度的问题
  6. yaaw (国人开发的 Aria2 web-ui)
  7. bt-trackerlist 官方更新地址

下载神器:axel aria2 mwget多线程快速下载取代curl和wget的多线程下载命令相关推荐

  1. mac下载神器 Axel

    linux和mac下的下载神器,非常快!免费,简洁,多线程啊!!! 下载方式: 1.一种方式是直接下载,下载地址:http://rudix.org/packages/axel.html (有时候无法访 ...

  2. linux 下载神器(aria2)

    各位linux爱好者,大家好,今天为大家介绍一款linux下的下载神器aria2 ,速度快,么得说 aria2是一个轻量级多协议,多源的命令行实用下载程序,支持HTTP / HTTPS,FTP,SFT ...

  3. 百度网盘下载神器Pan Download和SpeedPan,简单几步让电脑满速下载百度云网盘文件

    大家都知道,百度网盘如果不是超级会员的话,下载速度会非常慢,慢到你怀疑人生,几十M的文件都要下载好久.不过说实话,对于经常使用百度网盘下载东西的人来说,一个月30块钱的超级会员费用并不贵,毕竟现在带宽 ...

  4. 下载神器IDM安装与使用(保姆级教程)

    下载神器IDM安装与使用(保姆级教程) 文章目录 下载神器IDM安装与使用(保姆级教程) 前言 一.下载地址 二.IDM是什么? 三.作用与特点 四.安装步骤 总结 前言 众所周知,下载工具是大家电脑 ...

  5. 玩转威联通NAS 篇一:通过ContainerStation安装下载神器qbittorrent

    玩转威联通NAS 篇一:通过ContainerStation安装下载神器qbittorrent 2019-06-24 12:30:00 60点赞 342收藏 56评论 小编注:此篇文章来自#原创新人# ...

  6. IDM永久版下载神器如何正确使用呢?超详细教程和序列号

    大家从网上下载资源时还在使用浏览器自带的下载方式吗?小编觉得用这种方式下载的话速度会比较慢,无法完全利用上自己的带宽.所以小编给大家安利一款下载神器--Internet Download Manger ...

  7. Python实战之小说下载神器(二)整本小说下载:看小说不用这个程序,我实在替你感到可惜*(小说爱好者必备)

    前言 这次的是一个系列内容给大家讲解一下何一步一步实现一个完整的实战项目案例系列之小说下载神器(二)(GUI界面化程序) 单章小说下载保存数据--整本小说下载 你有看小说"中毒"的 ...

  8. 安卓手机软件开发_安卓最牛的下载神器,快收藏起来自己偷偷用

    小编一直在想,有木有一款安卓手机电影下载神器让用户在一个手机 App 软件里,既能播放 BT 文件,又能下载网盘文件呢? 谁又不想要一个迅雷+百度云网盘+资源网站,三合一的手机电影下载神器呢? 其实小 ...

  9. bilibili视频下载神器[无广告]

    一.前言 ​ 最近群里有小伙伴问我bilibili视频如何下载,当然目前下载的方法网上有很多,但是习惯使然,我一般只介绍我信得过的软件以及广告很少的软件,也就是追求最简洁的页面以及最强大的功能,因此这 ...

最新文章

  1. Spring-AOP @AspectJ进阶之增强织入的顺序
  2. 普通用户Mysql 5.6.13 主从,主主及nagios的mysql slave监控
  3. 西游东去 (~~创意?创新?恶搞?不置可否,不过有点意思)
  4. SQL中跨服务器查询
  5. dingo php,详细介绍Laravel+Dingo/Api 自定义响应
  6. 史上超强的学科碰撞,有生之年必看系列!
  7. leetcode 1024. 视频拼接(dp/贪心)
  8. 金额输入框校验和自动校正、支持指定任意位数小数decimal、支持只能输入整数、支持是否允许输入负数等功能
  9. LeetCode 821. 字符的最短距离
  10. 适用于特殊类型自然语言分类的自适应特征谱神经网络
  11. 华为蕊片鸿蒙OS尺寸,华为P50真机曝光:麒麟芯片、鸿蒙OS确定,双孔再见!
  12. Vue的父子组件通信(转载)
  13. IS-IS详解(十九)——IS-IS 与IPv6
  14. OSG 初始化为非全屏窗口
  15. poj Risk 1603 floyd基础题!!
  16. 2017 Material design 第三章第四节《字体与排版》
  17. 姓周取名:周姓漂亮有涵养的女孩名字
  18. Pytroch常用损失函数总结
  19. lzg_ad:CMD下打开控制面板
  20. playbook_黑莓PlayBook的第一波Union游戏揭晓!

热门文章

  1. FOURCC四字符码列表
  2. 【春招尾声】程序员の井沿理论
  3. Win7 64位下使用masm
  4. 如何在 VSCODE 中高效使用 R 语言 (图文详解)
  5. 360°全景影像优化建议
  6. PHP代码的加密解密
  7. 网聊:把自己的idea变成现实时别忘了这些点
  8. 学计算机等于写代码吗?计算机专业到底学什么?
  9. 武汉理工大学数据结构综合实验——连连看游戏综合实践
  10. 数字图像处理——形态学操作(二值图像篇)