通常我使用wget,这是终极命令行下载器。然而,wget 未能加快我的下载速度。我正在以大约 800KB/s 的下载速度下载 1.4GB 文件(此框连接到上行链路端口速度 10 Mbps)。然而,远程服务器限制了我。
因此,我决定摆脱 wget。我已经下载了 axel – 一个用于 Linux 命令行的轻型下载加速器。
阿克塞尔如何工作?
Axel 的作用与任何其他加速器相同:每次下载都会打开多个 HTTP/FTP 连接,并且每个连接都会传输自己的、单独的文件部分。这听起来可能很奇怪,但在实践中效果很好。例如,某些 FTP 站点限制每个连接的速度,因此一次打开多个连接会使允许的带宽成倍增加。请预先警告,某些 FTP 操作员不喜欢您这样做。最好在多个服务器上打开附加连接并同时从所有服务器下载。Axel 也支持此功能。您可以指定要使用的镜像列表或告诉程序搜索镜像。
这是通过远程 ssh 会话下载大文件的完美工具。
安装轴
如果您使用的是 Debian,请键入以下命令来安装 axel:
# apt-get install axel
或者您可以从官方网站下载axel:
$ wget http://wilmer.gaast.net/downloads/axel-1.0b.tar.gz
解压轴:
$ tar -zxvf axel-1.0b.tar.gz
配置并编译axel:
$ ./configure
安装轴:
# make install
另一方面,只需使用scp将新构建的 axel 二进制文件上传到远程 Linux 服务器。通常,出于安全原因,我不会在任何生产 web/ftp/MySql 服务器上安装 gcc c/c++ 编译器集合。
如何使用阿克塞尔?
只需键入如下命令:
$ axel http://download.com/file.tar.gz
限制速度
您还可以为 axel 指定速度(每秒字节数),这样它就不会耗尽您的所有带宽。例如,以下将尝试将平均速度保持在 5242880(5120 KB 每秒)左右:
$ axel -s 5242880 http://download.com/my.iso
限制连接数量
您还可以指定要打开的连接数量。例如打开3个连接进行下载:
$ axel -n 3 -s 5242880 http://download.com/my.iso
但阿克塞尔有多快?
这是示例测试,演示了 axel 的速度有多快
$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.bz2
输出:
--12:10:31-- http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.bz2
=> `linux-2.6.17.11.tar.bz2'
正在解析 kernel.org...204.152.191.5、204.152.191.37
正在连接到 kernel.org|204.152.191.5|:80...已连接。
HTTP 请求已发送,正在等待响应... 200 OK
长度:41,288,067(39M)[application/x-bzip2]
100%[=============================================== =================================>] 41,288,067 2.33M/s 预计到达时间 00:00
12:10:48 (2.31 MB/s) - `linux-2.6.17.11.tar.bz2' 已保存 [41288067/41288067]
$ axel http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.bz2
输出:
初始化下载:http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.bz2
文件大小:41288067 字节
打开输出文件 linux-2.6.17.11.tar.bz2.1
开始下载
[ 0%] ………………………………………… .... [ 247.1KB/秒]
[ 0%] ………………………………………… ....[408.3KB/秒]
[ 0%] ………………………………………… .... [ 566.3KB/秒]
[ 0%] ………………………………………… ....[707.2KB/秒]
[ 0%] ………………………………………… ....[836.5KB/秒]
[ 0%] ………………………………………… .... [ 975.9KB/秒]
[ 0%] ………………………………………… ....[1079.9KB/秒]
[ 0%] ………………………………………… ....[1210.0KB/秒]
[ 0%] ………………………………………… ....[1303.1KB/秒]
[ 1%] ………………………………………… ....[1422.1KB/秒]
[ 1%] ………………………………………… ....[1508.0KB/秒]
[ 1%] ………………………………………… ....[1629.2KB/秒]
…………
...
....
[ 99%] ………………………………………… ....[8710.2KB/秒]
[ 99%] ………………………………………… ....[8680.7KB/秒]
[100%] ……………………
4 秒内下载了39.4 MB。(8681.65 KB/秒)
如您所见,axel 在 4 秒内下载了相同的文件。另一个伟大的事情是它的二进制大小,我可以将 axel 放在启动磁盘上并替换 wget。
prozilla – 另一个带有 GUI 前端的好程序
axel 的缺点之一是您无法指定 ftp 用户名和密码。您可以使用 prozilla 程序,该程序还可以建立多个连接并同时下载多个部分的文件,从而提高下载速度并比使用单个连接下载更快地下载文件。
FTP 密码可以通过 URL 指定,也可以从 ~/.netrc(如果存在)自动获取。
安装prozilla
# yum install prozilla
或者从官方网站下载prozilla 。
要使用 prozilla 只需键入以下命令(命令行版本):
$ proz http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.bz2
![prozilla - 另一个带有 GUI 前端的好程序](https://www.alaica.com/wp-content/uploads/linux-9.png)
(点击放大图片)
进一步阅读
- 阅读 axel 和 prozilla 手册页
- 阿克塞尔网站
- Prozilla 网站