aria2go 是一个使用 Go 语言开发的多协议下载工具,支持 HTTP/HTTPS 分段下载、断点续传和多文件并发下载。兼容 aria2c RPC 协议。
# 从源码构建
git clone https://cnb.cool/liweijie0812/aria2go.git
cd aria2go
make build
# 或直接使用 Go
go install ./cmd/aria2go
# 单文件下载
./aria2go https://example.com/file.zip
# 多线程高速下载(16 连接)
./aria2go -x 16 -s 5 https://example.com/large_file.iso
# 多文件并发下载
./aria2go -j 3 \
https://example.com/file1.zip \
https://example.com/file2.zip \
https://example.com/file3.zip
# 指定下载目录和输出文件名
./aria2go -d /data/downloads -o myfile.zip https://example.com/file.zip
# 断点续传
./aria2go -c https://example.com/partial.zip
# 启动守护进程
./aria2go daemon
# 带 RPC 密钥启动
./aria2go daemon --rpc-secret mysecret
# 允许远程访问
./aria2go daemon --rpc-listen-all --rpc-secret mysecret
# 启用会话持久化(重启后恢复下载任务)
./aria2go daemon --save-session /path/to/session.dat --save-session-interval 60
# 添加下载任务
./aria2go add-uri --rpc-secret mysecret https://example.com/file.zip
# 查看任务列表
./aria2go list --rpc-secret mysecret
# 查看任务状态
./aria2go status --rpc-secret mysecret <GID>
| 文档 | 说明 |
|---|---|
| CLI 使用手册 | 命令行工具完整使用指南 |
| 使用示例 | 常见使用场景和示例 |
| 配置文件 | 配置文件格式和选项说明 |
| RPC API | JSON-RPC API 调用指南 |
| 系统架构 | 技术架构和模块设计 |
| 选项 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--dir | -d | ~/Downloads | 下载目录 |
--out | -o | 输出文件名 | |
--continue | -c | true | 断点续传 |
--max-concurrent-downloads | -j | 5 | 最大并发下载数 |
--max-connection-per-server | -x | 16 | 单服务器最大连接数 |
--split | -s | 5 | 下载连接数 |
--min-split-size | -k | 20M | 最小分片大小 |
--file-allocation | prealloc | 文件分配方式 | |
--force-sequential | -Z | false | 顺序下载 |
--input-file | -i | 从文件读取 URI | |
--log | -l | 日志文件 | |
--show-files | -S | false | 显示文件列表 |
--timeout | 120s | 超时时间 | |
--quiet | -q | false | 静默模式 |
--user-agent | aria2go/1.0 | User-Agent | |
--referer | Referer 头 | ||
--check-certificate | true | 验证证书 | |
--config | 配置文件路径 |
| 选项 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--language | -L | en | 界面语言 (en/zh-CN/zh-TW/ja) |
--progress-style | default | 进度条样式 (default/classic/modern) | |
--log-format | console | 日志格式 (console/json) | |
--no-color | false | 禁用彩色输出 |
| 选项 | 说明 |
|---|---|
--http-user | HTTP 用户名 |
--http-passwd | HTTP 密码 |
--ftp-user | FTP 用户名 |
--ftp-passwd | FTP 密码 |
--load-cookies | 从文件加载 Cookies |
--save-cookies | 保存 Cookies 到文件 |
| 选项 | 说明 |
|---|---|
--all-proxy | 设置所有协议的代理服务器 |
--http-proxy | 设置 HTTP 代理服务器 |
--https-proxy | 设置 HTTPS 代理服务器 |
--ftp-proxy | 设置 FTP 代理服务器 |
--no-proxy | 不使用代理的主机列表(逗号分隔) |
--proxy-method | 代理方法(get/tunnel) |
--all-proxy-user | 所有代理的用户名 |
--all-proxy-passwd | 所有代理的密码 |
--http-proxy-user | HTTP 代理用户名 |
--http-proxy-passwd | HTTP 代理密码 |
--https-proxy-user | HTTPS 代理用户名 |
--https-proxy-passwd | HTTPS 代理密码 |
--ftp-proxy-user | FTP 代理用户名 |
--ftp-proxy-passwd | FTP 代理密码 |
| 选项 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--torrent-file | -T | Torrent 文件 | |
--listen-port | 6881-6999 | 监听端口范围 | |
--enable-dht | true | 启用 DHT | |
--dht-listen-port | 6881-6999 | DHT 监听端口 | |
--max-upload-limit | -u | 0 | 每任务上传限速 |
--max-overall-upload-limit | 0 | 总上传限速 |
| 选项 | 简写 | 说明 |
|---|---|---|
--metalink-file | -M | Metalink 文件 |
| 选项 | 简写 | 默认值 | 说明 |
|---|---|---|---|
--enable-rpc | true | 启用 RPC 服务器 | |
--rpc-listen-port | -p | 6800 | RPC 监听端口 |
--rpc-listen-all | false | 监听所有接口 | |
--rpc-listen-host | 127.0.0.1 | RPC 监听主机 | |
--rpc-secret | RPC 认证密钥 | ||
--save-session | 会话文件路径(启用会话持久化) | ||
--save-session-interval | 0 | 自动保存间隔(秒,0 表示禁用自动保存) |
完整选项列表请参阅 CLI 选项参考。
# 构建所有平台
make build
# 运行测试
make test
# 运行测试(带覆盖率)
make test-cover
# 代码格式化
make fmt
# 创建发布版本
make release
| 功能 | 状态 | 说明 |
|---|---|---|
| HTTP/HTTPS 下载 | ✅ | 完整支持 |
| 多线程分段下载 | ✅ | 完整支持 |
| 断点续传 | ✅ | 完整支持 |
| 多文件并发 | ✅ | 完整支持 |
| 实时进度显示 | ✅ | 完整支持 |
| JSON-RPC (aria2 兼容) | ✅ | 100% 兼容 aria2c 协议 |
| 会话持久化 | ✅ | 完整支持(启动恢复、自动保存、手动保存) |
| FTP/SFTP 下载 | ✅ | 完整支持(FTP、FTPS、SFTP) |
| HTTP 认证 | ✅ | 完整支持(Basic Auth) |
| Cookie 管理 | ✅ | 完整支持(Netscape/SQLite 格式) |
| 代理支持 | ✅ | 完整支持(HTTP/HTTPS/FTP代理、No Proxy、代理认证) |
| BitTorrent 下载 | ✅ | 完整支持(Torrent 文件、磁力链接、DHT、PEX、加密) |
| Metalink 下载 | ⏳ | 基础支持(命令行选项已实现) |
aria2go 实现了完整的 aria2c JSON-RPC 协议,支持:
aria2.addUri - 添加 URI 下载任务aria2.addMetalink - 添加 Metalink 下载任务aria2.tellStatus - 获取任务状态aria2.tellActive - 获取活动任务列表aria2.tellWaiting - 获取等待任务列表aria2.tellStopped - 获取停止任务列表aria2.pause / aria2.forcePause - 暂停任务aria2.unpause - 恢复任务aria2.remove / aria2.forceRemove - 移除任务aria2.changePosition - 调整任务队列位置aria2.changeUri - 修改任务 URIaria2.getOption / aria2.changeOption - 获取/修改选项aria2.getGlobalStat - 获取全局统计aria2.shutdown / aria2.forceShutdown - 关闭服务器aria2.saveSession - 保存会话aria2.getVersion - 获取版本信息aria2.getFiles - 获取文件列表aria2.getServers - 获取服务器信息system.multicall - 批量调用system.listMethods - 列出可用方法详见 RPC 方法参考。
MIT License - 详见 LICENSE 文件