什么是 Axel:

Axel 是一个轻量级的命令行下载加速器,支持多线程并发下载。通过将文件分成多个部分并同时下载,可以充分利用带宽,显著提高下载速度,特别是在下载大文件或网络延迟较高的情况下效果明显。

Axel 的主要优势:

  • 多线程并发下载,充分利用带宽
  • 支持断点续传
  • 命令行界面,适合服务器环境
  • 轻量级,资源占用少
  • 支持 HTTP、HTTPS 和 FTP 协议
  • 可以搜索和使用镜像服务器

应用场景:

  • 下载大文件(如 ISO 镜像、数据库备份)
  • 网络带宽充足但速度不理想
  • 需要命令行批量下载
  • 自动化下载脚本

无论您使用的是香港独立服务器新加坡VPS还是其他地区的服务器,Axel 都能帮助您更快地下载文件。


系统要求:

适用系统版本:

  • CentOS 6/7/8
  • RHEL 6/7/8
  • Rocky Linux 8/9
  • AlmaLinux 8/9
  • Debian 8/9/10/11
  • Ubuntu 16.04/18.04/20.04/22.04

依赖要求:

  • GCC 编译器(如果从源码编译)
  • OpenSSL 开发库(支持 HTTPS)

安装 Axel

方法一:使用 RPMforge/EPEL 源安装(CentOS/RHEL)

由于官方的 RPMforge 源已经停止维护,现在推荐使用 EPEL 源或从其他可用源安装。

第一步:安装 EPEL 源(推荐)

CentOS 6:

yum install epel-release -y

或手动安装:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

CentOS 7:

yum install epel-release -y

或手动安装:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

CentOS 8 / Rocky Linux 8 / AlmaLinux 8:

dnf install epel-release -y

yum install epel-release -y

验证 EPEL 源安装:

yum repolist | grep epel

dnf repolist | grep epel

应该能看到 epel 相关的仓库信息。

第二步:从 EPEL 安装 Axel

yum install axel -y

或在 CentOS 8 上:

dnf install axel -y

验证安装:

which axel

输出应该显示:

/usr/bin/axel

检查版本:

axel --version

输出示例:

Axel version 2.17.11 (linux-gnu)


方法二:使用旧的 RPMforge 源(备用方法,适用于 CentOS 6)

如果 EPEL 源中没有 Axel,可以尝试使用旧的 RPMforge 源。但请注意,RPMforge 已经停止维护,链接可能失效。

对于 CentOS 6 (32位):

下载 rpmforge-release 包:

wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

安装:

rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.i686.rpm

对于 CentOS 6 (64位):

wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

然后安装 Axel:

yum install axel -y

注意: 如果上述链接失效,可以搜索其他可用的 rpmforge 镜像站点。


方法三:从源码编译安装(适用于所有系统)

如果软件源中没有 Axel,可以从源码编译安装。这个方法适用于所有 Linux 发行版,包括在日本独立服务器韩国VPS上运行的系统。

安装编译依赖:

CentOS/RHEL:

yum install gcc make openssl-devel -y

Ubuntu/Debian:

apt-get install gcc make libssl-dev -y

下载 Axel 源码:

访问 Axel 官方 GitHub 仓库: https://github.com/axel-download-accelerator/axel

下载最新版本:

cd /usr/local/src wget https://github.com/axel-download-accelerator/axel/releases/download/v2.17.11/axel-2.17.11.tar.gz

解压并编译:

tar -zxvf axel-2.17.11.tar.gz cd axel-2.17.11

配置编译选项:

./configure --prefix=/usr/local

编译:

make

安装:

make install

验证安装:

/usr/local/bin/axel --version

添加到系统路径(可选):

如果安装到 /usr/local,需要确保路径在 PATH 中:

echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc source ~/.bashrc


方法四:Ubuntu/Debian 系统安装

Ubuntu/Debian 可以直接从官方源安装:

更新软件包列表:

apt-get update

安装 Axel:

apt-get install axel -y

验证安装:

axel --version


Axel 基本用法

查看帮助信息:

axel --help

axel -h

输出会显示所有可用选项和用法说明。

基本命令格式:

axel [选项] [下载地址]

简单下载示例:

axel http://example.com/file.iso

这会使用默认设置(4 个线程)下载文件。


Axel 常用选项详解

1. 指定线程数(-n)

使用多个线程并发下载,这是 Axel 最重要的功能。

axel -n 10 http://example.com/largefile.zip

参数说明:

  • -n [数字] - 指定同时打开的连接数(线程数)
  • 默认值:4
  • 推荐值:5-20(取决于带宽和服务器支持)
  • 过多线程可能被服务器限制或封禁

最佳实践:

  • 家庭宽带:5-10 个线程
  • 企业网络:10-20 个线程
  • 服务器下载:根据带宽调整

2. 限制下载速度(-s)

限制最大下载速度,避免占满带宽。

axel -s 102400 http://example.com/file.zip

参数说明:

  • -s [数字] - 指定每秒下载最大字节数
  • 单位:字节/秒(Bytes/s)
  • 102400 = 100KB/s
  • 1048576 = 1MB/s

常用限速示例:

限制为 500KB/s:

axel -s 512000 http://example.com/file.zip

限制为 2MB/s:

axel -s 2097152 http://example.com/file.zip

3. 指定输出文件名(-o)

自定义下载文件的保存名称。

axel -o myfile.zip http://example.com/file.zip

参数说明:

  • -o [文件名] - 指定本地输出文件名
  • 可以包含路径

指定完整路径:

axel -o /var/www/downloads/myfile.zip http://example.com/file.zip

4. 显示详细信息(-v 和 -a)

-v(详细模式):

打印更多状态和调试信息。

axel -v http://example.com/file.zip

-a(进度条模式):

显示更友好的进度条和信息。

axel -a http://example.com/file.zip

组合使用:

axel -n 10 -a http://example.com/file.zip

输出示例:

Initializing download: http://example.com/file.zip File size: 524288000 bytes Opening output file myfile.zip Starting download

[ 0%] .......... .......... .......... .......... [ 1.5MB/s] [ETA: 5:32]

5. 搜索镜像服务器(-S)

从多个镜像服务器同时下载,进一步提高速度。

axel -S 5 http://example.com/file.iso

参数说明:

  • -S [数字] - 搜索镜像并从 X 个服务器下载
  • Axel 会尝试查找该文件的镜像站点

注意: 这个功能依赖于文件在多个镜像站点的可用性,不是所有文件都支持。

6. 不使用代理(-N)

如果系统配置了代理但希望直接连接。

axel -N http://example.com/file.zip

7. 断点续传

Axel 默认支持断点续传。如果下载中断,重新执行相同命令即可继续下载:

axel -n 10 http://example.com/file.zip

Axel 会检测到未完成的下载并自动续传。

手动删除临时文件重新下载:

rm -f file.zip.st* axel -n 10 http://example.com/file.zip

8. 查看版本信息(-V)

axel -V

axel --version


实用下载示例

示例 1:基础多线程下载

使用 10 个线程下载文件:

axel -n 10 http://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

示例 2:限速下载

使用 10 个线程,限速 1MB/s:

axel -n 10 -s 1048576 http://example.com/largefile.zip

示例 3:指定保存位置和文件名

axel -n 10 -o /var/www/downloads/centos7.iso http://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

示例 4:显示详细进度信息

axel -n 10 -a http://example.com/file.zip

示例 5:下载并重命名

axel -n 8 -o ubuntu-22.04.iso https://releases.ubuntu.com/22.04/ubuntu-22.04.1-desktop-amd64.iso

示例 6:组合多个选项

使用 15 个线程,限速 2MB/s,显示进度,保存为自定义文件名:

axel -n 15 -s 2097152 -a -o mydownload.zip http://example.com/file.zip

示例 7:从多个镜像下载

axel -n 10 -S 3 http://mirror.example.com/linux.iso

示例 8:后台下载(配合 nohup)

nohup axel -n 10 http://example.com/hugefile.zip > axel.log 2>&1 &

查看下载进度:

tail -f axel.log

示例 9:批量下载脚本

创建下载列表文件 urls.txt:

http://example.com/file1.zip http://example.com/file2.zip http://example.com/file3.zip

批量下载脚本:

#!/bin/bash while read url; do axel -n 10 -a "$url" done < urls.txt

保存为 download.sh,添加执行权限:

chmod +x download.sh ./download.sh


性能优化建议

1. 选择合适的线程数

测试不同线程数的效果:

for i in 5 10 15 20; do echo "Testing with $i threads" time axel -n $i http://example.com/testfile.zip rm -f testfile.zip* done

选择速度最快的线程数。

2. 考虑服务器限制

有些服务器会限制单个 IP 的并发连接数:

  • 如果线程过多可能被限速或封禁
  • 从同一服务器下载多个文件时,总线程数不要过多
  • 尊重服务器的 robots.txt 和使用条款

3. 带宽利用率

计算理论最大速度:

假设带宽为 100Mbps:

设置限速略低于最大速度:

axel -n 10 -s 12000000 http://example.com/file.zip

4. 使用镜像站点

对于开源软件,选择地理位置近的镜像站点。例如,在台湾独立服务器上下载 CentOS,选择台湾或日本的镜像会更快。

5. 网络质量优化

  • 避开网络高峰期下载
  • 使用有线连接而非 Wi-Fi
  • 检查网络延迟:ping 服务器

与其他下载工具对比

Axel vs wget:

特性Axelwget
多线程支持不支持
断点续传支持支持
递归下载不支持支持
镜像下载支持不支持
速度更快较慢
功能丰富度一般丰富

Axel vs curl:

特性Axelcurl
多线程支持不支持
协议支持HTTP/FTP多种协议
API 测试不适合适合
批量下载适合适合

Axel vs aria2:

特性Axelaria2
多线程支持支持
BitTorrent不支持支持
功能简单强大
配置简单复杂
资源占用较多

选择建议:

  • 简单的多线程 HTTP 下载 - Axel
  • 需要 BitTorrent 或 Metalink - aria2
  • 递归下载网站 - wget
  • API 测试和开发 - curl

常见问题排查

问题 1:提示"command not found"

  • 原因: Axel 未安装或不在 PATH 中
  • 解决: 重新安装 Axel,检查安装路径

问题 2:下载速度没有提升

  • 原因: 服务器限制并发连接或带宽瓶颈在其他地方
  • 解决: 减少线程数,检查本地网络,尝试其他服务器

问题 3:下载中断无法续传

  • 原因: 服务器不支持 Range 请求
  • 解决: 使用单线程下载或更换服务器

问题 4:提示"Connection failed"

  • 原因: 网络问题、防火墙阻止或服务器不可达
  • 解决: 检查网络连接,测试 URL 是否有效

问题 5:下载的文件损坏

  • 原因: 下载过程中出现错误
  • 解决: 删除临时文件重新下载,验证文件 MD5/SHA256

问题 6:被服务器封禁

  • 原因: 请求过于频繁或线程过多
  • 解决: 减少线程数,增加请求间隔,使用代理

自动化和脚本示例

创建便捷的下载函数:

编辑 ~/.bashrc:

vi ~/.bashrc

添加函数:

Axel 快速下载函数

axget() { if [ $# -eq 0 ]; then echo "用法: axget [线程数]" return 1 fi

local url=$1
local threads=${2:-10}

axel -n $threads -a "$url"

}

保存后重新加载:

source ~/.bashrc

使用函数:

axget http://example.com/file.zip 15

创建下载队列管理脚本:

vi download_queue.sh

内容:

#!/bin/bash

下载队列管理脚本

QUEUE_FILE="download_queue.txt" LOG_FILE="download.log" THREADS=10

if [ ! -f "$QUEUE_FILE" ]; then echo "队列文件不存在: $QUEUE_FILE" exit 1 fi

while read -r url; do if [ -z "$url" ]; then continue fi

echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始下载: $url" | tee -a "$LOG_FILE"
axel -n $THREADS -a "$url" 2>&1 | tee -a "$LOG_FILE"

if [ ${PIPESTATUS[0]} -eq 0 ]; then
 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 完成: $url" | tee -a "$LOG_FILE"
else
 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 失败: $url" | tee -a "$LOG_FILE"
fi

sleep 2

done < "$QUEUE_FILE"

使用方法:

chmod +x download_queue.sh ./download_queue.sh


安全建议

1. 验证下载文件完整性

下载完成后验证 MD5 或 SHA256:

md5sum downloaded_file.iso

sha256sum downloaded_file.iso

与官方提供的校验值对比。

2. 使用 HTTPS

优先使用 HTTPS 链接:

axel -n 10 https://secure-server.com/file.zip

3. 避免下载来源不明的文件

只从可信来源下载文件,避免恶意软件。

4. 限制并发连接

不要使用过多线程,尊重服务器资源。

5. 定期更新 Axel

保持 Axel 更新到最新版本,修复已知漏洞。

通过以上详细的安装和使用指南,您可以在 Linux 系统上充分利用 Axel 的多线程下载能力,显著提升大文件下载速度。合理配置线程数和下载参数,既能获得最佳性能,又能避免对服务器造成过大压力。Axel 是命令行环境下进行高效下载的优秀工具,特别适合服务器环境和自动化脚本使用。