Axel-适用于Linux的命令行文件下载加速器

如果你是那种喜欢下载并尝试多种Linux发行版的人,我们相信你会热情拥抱一个下载加速器,它言出必行——它做到了它所描述的那样。

在本指南中,我们将向你介绍Axel,一个轻量级的wget克隆,它没有任何依赖(除了gccmakeutils)。

Axel – Linux Commandline Download Accelerator

尽管它的描述表明它特别适合字节关键系统,axel可以安装在任何地方,并不仅用于同时下载多个文件通过HTTP/FTP链接,还可以加速它们。

在Linux上安装Axel,一个命令行下载加速器正如我们之前提到的,axel不仅仅是一个下载工具。它通过使用多个连接从目标获取文件来加速HTTPFTP下载,还可以配置为使用多个镜像。

正如我们之前提到的,axel不仅仅是一个普通的下载工具。它通过使用多个连接从目标位置检索文件来加速HTTPFTP下载,还可以配置为使用多个镜像。

如果这还不够让你有动力去尝试它,那么我们只需补充说,axel支持自动终止和恢复在给定时间内没有响应或没有返回任何数据的连接。

此外,如果你有权限这样做,你可以利用axel打开多个同时的FTP连接到一个服务器,以增加每个连接分配的带宽。

如果你不允许这样做或不确定,你可以改为打开到多个独立服务器的多个连接,并同时从所有这些服务器下载。

最后但同样重要的是,axel与其他Linux下载加速器不同,它在下载时将所有数据放入一个文件中,而不是将数据写入单独的文件并在稍后阶段将它们合并。

CentOS/RHEL 8/7中,你需要启用EPEL仓库才能安装axel:

# yum install epel-release
# yum install axel

在Fedora中,它可以从默认仓库中获得。

# yum install axel   
# dnf install axel   [On Fedora 23+ releases]

Debian及其衍生版本,如UbuntuLinux Mint中,您可以通过aptitude直接安装axel

# aptitude install axel

Arch Linux及其相关发行版,如Manjaro LinuxOpenSUSE Linux中,您可以通过以下命令直接安装axel

$ sudo pacman -S axel       [On Arch/Manjaro]
$ sudo zypper install axel  [On OpenSUSE]

安装axel后,让我们深入了解。

配置Axel – Linux下载加速器

您可以使用/etc/axelrc配置axel,并在调用时通过命令行传递其他所需选项。配置文件有很好的文档记录,但我们将在这里回顾最有用的选项:

reconnect_delay是axel在尝试重新连接服务器之前等待的秒数。

max_speed是自解释的。值以每秒字节数(B/s)给出。在考虑您的可用带宽后,您可能希望将此变量设置为适当的值。这将帮助您防止axel在下载时消耗大量带宽。

重要:请注意,实际的最大下载速率将取决于您的互联网连接——不言而喻,如果您的互联网连接最大速率为1.22 MB/s(正如我在下面的例子中所看到的——我只是留下那个值来强调这一点),那么将max_speed设置为5 MB/s将不会有任何作用。

num_connections 表示 axel 将尝试启动的最大连接数。推荐的值(4)对于大多数情况已经足够,这主要是出于对其他 FTP 用户的尊重。请注意,有些服务器可能不允许多个连接。

connection_timeout 表示 axel 在尝试自动中止并恢复之前将等待接收响应的秒数。

http_proxy 允许您在HTTP_PROXY环境变量未在系统范围内设置时设置代理服务器。此变量使用与HTTP_PROXY相同的格式(http://:PORT)。

no_proxy 是一个本地域名列表,用逗号分隔,axel 不应该通过代理尝试访问这些域名。此设置是可选的。

buffer_size 表示一次从所有当前连接读取的最大字节数。

verbose 允许您选择是否在屏幕上打印与下载相关的消息。如果您想要禁用它,请将此设置为 0,或者如果您仍然想要看到消息,请将此设置为 1。

interfaces 允许您列出可以访问互联网的网络接口,如果您有多个接口。如果没有明确设置,axel 将使用路由表中的第一个接口。

类似的配置选项可从以下位置获得:

# axel --help

如果你仔细观察,你会发现大多数命令行选项与配置文件中的选项相似。此外,-o–output)选项允许你指定一个输出文件名。

如果使用,它将覆盖源文件名。如果你设置了任何命令行选项,它们将覆盖配置文件中设置的选项。

如何在Linux中使用Axel更快地下载文件

我们将使用配置文件中的以下设置(取消注释相应的行):

reconnect_delay = 20
max_speed = 500000
num_connections = 4
connection_timeout = 30
buffer_size = 10240
verbose = 1
Configuring Axel Download Accelerator

现在,我们将比较使用HTTPFTP链接以及wgetaxel的下载时间。你可以选择任何大小​​的文件,但为了简单起见,我们将从以下位置下载100 MB文件:

  1. ftp://speedtest:[email protected]/test100Mb.db
  2. http://speedtest.ftp.otenet.gr/files/test100Mb.db

比较FTP和Axel的下载时间

使用wget的FTP下载(平均459 KB/s):
# wget ftp://speedtest:[email protected]/test100Mb.db
Download Files with FTP in Linux Using Wget
使用axel的FTP下载(平均1181.43 KB/s):
# axel -n 10 --output=axel-test100Mb.db ftp://speedtest:[email protected]/test100Mb.db
Download Files Over FTP Using Axel

比较HTTP和Axel的下载时间

使用wget的HTTP下载(平均482 KB/s):
# wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Using HTTP with Wget
使用axel的HTTP下载(平均1178.93 KB/s):
# axel -n 10 --output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db
Download Files Over HTTP Using Axel

正如你在我们上面执行的测试结果中看到的,axel可以显著加速FTPHTTP下载。

总结

在这篇文章中,我们解释了如何使用axel,这是一个FTP/HTTP下载加速器,并展示了它比其他程序如wget更快的原因,因为它能够同时打开多个到远程服务器的连接。

不容错过: 5个最受欢迎的Linux系统下载管理器

不容错过: Linux中10个Wget(文件下载器)命令示例

我们希望这里展示的内容能够激励您尝试axel。如果您对本文有任何问题或评论,请随时使用下面的表格告知我们。我们总是期待收到读者的反馈。

Source:
https://www.tecmint.com/axel-commandline-download-accelerator-for-linux/