axel:轻量级命令行下载加速器
axel 在 GitHub 上已经拿到 3,370 颗 Star 了。
这是一个命令行下载工具,核心功能只有一个:用多连接加速文件下载,还能在多个服务器之间自动分配负载。
1、这玩意儿是干嘛的
axel 是一个轻量级的命令行下载加速器。它通过为单个文件建立多个连接来提升下载速度,也支持在多个镜像服务器之间分配下载负载。
支持的协议包括 HTTP、HTTPS、FTP 和 FTPS。它的设计目标是尽可能轻量,在资源受限的系统上也能正常运行。
2、为什么要用它
命令行下载的场景很多。服务器上批量拉取文件、脚本里自动化下载、或者网络条件差时需要更稳定的传输,这些情况 curl 和 wget 虽然能用,但单连接在带宽充足时往往跑不满。
axel 的多连接机制可以更好地利用可用带宽。如果同一个文件有多个镜像源,它还能把负载分散到不同服务器上,避免单点瓶颈。
3、安装方法
大部分 Linux 发行版的软件仓库里已经有 axel,直接通过包管理器安装即可。如果版本过旧,可以从源码编译。
源码编译使用 GNU autotools:
./configure && make && make install
如果从 git 仓库直接编译,先执行:
autoreconf -i
依赖包括 gettext、pkg-config,可选 libssl 提供 SSL/TLS 支持。在 Debian/Ubuntu 上需要安装 build-essential、autoconf、automake、autopoint、libssl-dev 等包。
Mac OS X 用户通过 Homebrew 安装时,需要额外指定 gettext 和 openssl 的路径:
GETTEXT=/usr/local/opt/gettext
OPENSSL=/usr/local/opt/openssl
PATH="$GETTEXT/bin:$PATH"
autoreconf -fiv -I$GETTEXT/share/aclocal/
CFLAGS="-I$GETTEXT/include -I$OPENSSL/include" \
LDFLAGS=-L$GETTEXT/lib ./configure
make
4、怎么用
安装完成后,直接运行 axel 加上 URL 即可:
axel http://example.com/file.zip
默认会建立多个连接分段下载。更多用法可以查看 man 手册:
man axel
5、适合哪些人用
- 需要在服务器上批量下载文件的运维人员
- 写脚本时需要稳定下载命令的开发者
- 带宽充足但单连接速度受限的用户
- 需要在轻量系统上运行下载工具的场景
- 习惯命令行工作流、追求简洁工具的人
这个项目从 Wilmer van der Gaast 开始,目前由社区维护,采用 GPL-2+ 许可证。