Linux的命令行文件下载加速神器,快到飞起
大家好,我是杰哥。
如果你是那种经常下载和尝试各种Linux发行版的人,我们确信你会喜欢下载加速器。
在本指南中,我们将向您介绍Axel,它是一个轻量级的wget克隆,没有依赖关系(除了gcc和makeutils)。
axel可以安装在任何地方,不仅可以用于通过HTTP/FTP链接同时下载多个文件,还可以加快它们的速度。
安装Axel(适用于Linux的命令行下载加速器)
正如我们前面提到的,axel不仅仅是另一个下载工具。它通过使用多个连接从目标检索文件来加速HTTP和FTP下载,还可以配置为使用多个镜像。
如果这还不足以让您有动力尝试它,让我们添加以下内容:axel支持自动中止和恢复在给定时间后无响应或不返回任何数据的连接。
此外,如果您有这样做的权限,您可以利用axel来打开到一个服务器的多个同时进行的FTP连接,以便成倍地增加每个连接所分配的带宽。
如果不允许这样做或不确定,可以打开多个服务器的连接,并同时从所有服务器下载。
最后但并非最不重要的一点是,axel与其他Linux下载加速器的不同之处在于,它在下载时将所有数据放在一个文件中,而不是将数据写入单独的文件并在后期加入它们。
在CentOS/RHEL 8/7中,你需要启用EPEL存储库来安装axel:
linuxmi@linuxmi:~/www.linuxmi.com$ yum install epel-release
linuxmi@linuxmi:~/www.linuxmi.com$ yum install axel
在Fedora中,它可以从默认存储库中获得。
linuxmi@linuxmi:~/www.linuxmi.com$ yum install axel
linuxmi@linuxmi:~/www.linuxmi.com$ dnf install axel [在 Fedora 23 以上版本]
在Debian和衍生工具如Ubuntu和Linux Mint中,你可以通过aptitude直接安装axel:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo aptitude install axel
在Arch Linux和相关发行版(例如Manjaro Linux和OpenSUSE Linux)上,可以直接使用以下命令安装axel:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo pacman -S axel [在Arch/Manjaro 上]
linuxmi@linuxmi:~/www.linuxmi.com$ sudo zypper install axel [在 OpenSUSE 上]
配置Axel – Linux下载加速器
您可以使用/etc/axelrc配置axel,并在调用它时在命令行中传递所需的其他选项。该配置文件已被详细记录,但我们将在此处查看最有用的选项:
reconnect_delay是axel在再次尝试开始与服务器的新连接之前将等待的秒数。
max_speed是不言自明的。值以每秒字节数(B/s)为单位。考虑到可用带宽后,您可能需要将此变量设置为适当的值。这将帮助您防止axel在下载时占用大量带宽。
重要提示:请注意,实际最大下载速率取决于您的网络连接–不用说,如果您的Internet连接最大速度为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。
如果有多个接口,则可以使用接口列出可以访问Internet的网络接口。如果未明确设置,则axel将使用路由表中的第一个接口。
更多的配置选项使用如下命令:
linuxmi@linuxmi:~/www.linuxmi.com$ axel –help
如果仔细看,您会发现大多数命令行选项与配置文件中的选项相似。另外,-o(-output)选项允许您指定输出文件名。
如果使用,它将覆盖源文件名。如果您设置了任何命令行选项,它们将覆盖配置文件中设置的那些选项。
如何在Linux中使用Axel更快地下载文件
我们将使用配置文件中的以下设置(取消注释相应的行):
reconnect_delay = 20
max_speed = 500000
num_connections = 4
connection_timeout = 30
buffer_size = 10240
verbose = 1
现在,我们将使用wget和axel比较HTTP和FTP链接的下载时间。您可以选择任何大小的任何文件,但为简单起见,我们将从以下位置下载100 MB的文件:
ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
http://speedtest.ftp.otenet.gr/files/test100Mb.db
比较FTP和Axel下载时间
使用wget进行FTP下载:
100.00M 平均205KB/s 用时 8m 7s s
linuxmi@linuxmi:~/www.linuxmi.com$ wget ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
使用axel的FTP下载:
已下载 100 兆字节,用时 37 second(s)。(平均2734.36 KB/s)
linuxmi@linuxmi:~/www.linuxmi.com$ axel -n 10 –output=axel-test100Mb.db ftp://speedtest:speedtest@ftp.otenet.gr/test100Mb.db
比较HTTP和Axel下载时间
使用wget的HTTP下载(平均226 KB/s):
linuxmi@linuxmi:~/www.linuxmi.com$ wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
使用axel的HTTP下载(平均2458.08 KB/s):
linuxmi@linuxmi:~/www.linuxmi.com$ axel -n 10 –output=axel-test100Mb.db http://speedtest.ftp.otenet.gr/files/test100Mb.db
从上面我们进行的测试的结果中可以看到,axel可以大大加快FTP或HTTP下载的速度。
总结
在本文中,我们已经解释了如何使用axel(FTP/HTTP下载加速器),并展示了它比wget等其他程序执行得更快的原因,因为它能够打开多个同时连接到远程服务器的连接。
来源:https://www.linuxmi.com/axel-linux-xiazai.html
推荐阅读
手把手教你在 Linux 环境下部署 Oracle 数据库!
杰哥的另一个公众号,主要分享关于个人成长经历的那点事,欢迎您的关注。