
aria2go 是一个使用 Go 语言开发的多协议下载工具,支持 HTTP/HTTPS 分段下载、断点续传和多文件并发下载。兼容 aria2c RPC 协议。
- 多协议支持: HTTP/HTTPS ✅、FTP/SFTP ✅、BitTorrent ✅、Metalink ⏳
- 分段下载: 多线程分段下载,提升下载速度
- 断点续传: 支持中断后继续下载
- 多文件并发: 支持多文件同时下载,独立进度显示
- 实时进度: 美观的进度条和实时速度显示
- JSON-RPC: 完整的 RPC 接口,兼容 aria2c 协议 ✅
- aria2c 兼容: 支持 aria2c 风格的命令行参数
- 跨平台: 单一二进制文件,支持 Linux、macOS、Windows
git clone https://cnb.cool/liweijie0812/aria2go.git
cd aria2go
make build
go install ./cmd/aria2go
./aria2go https://example.com/file.zip
./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
./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>
| 选项 | 简写 | 默认值 | 说明 |
|---|
--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 - 修改任务 URI
- ✅
aria2.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 文件