Linux命令 Aria2
aria2/aria2: aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
aria2配置示例 | Binuxの杂货铺
Aria2c 使用举例
##多线程下载axel
axel -q -n 10 -o /tmp/ http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz
aria2c -c -x5 https://atlas.hashicorp.com/hashicorp/boxes/precise64/versions/1.1.0/providers/virtualbox.box
-c 断点续传
-x2 多线程 同一host建立多个连接
-s2 大文件分段下载
--max-upload-limit=100K 调节上传速度(Throttle upload speed)
Aria2 是一个轻量级多协议和多源 命令行 下载实用工具。它支持 HTTP / HTTPS, FTP, SFTP, bt 和 Metalink。通过内置 Aria2 可以操作 json - rpc 和 xml - rpc。对,Aria2 没有 GUI 图形界面,只有粗糙的命令行界面!但这也正是 Aria2 之轻快好省所在。
#命令行模式
我们可以在命令行中非常简单地调用 aria2 进行多种协议的下载操作。例如:
普通下载:aria2c http://example.org/mylinux.iso
多个源下载文件:同时使用两个连接aria2c http://a/f.iso ftp://b/f.iso
多线程下载aria2c -x2 http://a/f.iso
断点续传aria2c -c http://host/partiallydownloadedfile.zip
从 txt 文本文档中获取下载链接下载文件:aria2c -i http://www.url.com/url.txt
-j5 用于指定同时下载的文件的数量
写入到 /dev/null (Writing to /dev/null)aria2c -d /dev -o null --allow-overwrite=true http://example.org/file
为所有的连接设置代理服务器(Set proxy server to use all protocols(HTTP(S)/FTP))
aria2c --all-proxy='http://proxy:8080' http://host/file
aria2c --http-proxy='http://proxy:8080' --http-proxy-user='username' --http-proxy-passwd='password' http://host/file
aria2c --http-proxy='http://username:password@proxy:8080' http://host/file
使用 BitTorrent 协议下载:
$ aria2c http://example.org/mylinux.torrent
使用磁力链接(Magnet URI)进行下载:
$ aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'
Metalink:
$ aria2c http://example.org/mylinux.metalink
下载 text 文本文件中的链接:
$ aria2c -i uris.txt
简易版的 Aria2 至此就部署完毕,你可以在 Web 控制前段方便地添加下载链接/bt种子了。如要想要进一步使用 Aria2,往下读吧。
进阶 Aria2
配置文件 aria2.conf 详解
更多参数请参考官方说明文档: http://aria2.sourceforge.net/manual/en/html/aria2c.html
网友翻译的部分内容: http://sydi.org/posts/linux/aria2c-usage-sample-cns.html#fn.1
'#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改
被注释的选项填写的是默认值, 建议在需要修改时再取消注释
基本选项
文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=~/downloads
启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
预分配所需时间: none < falloc ? trunc < prealloc
falloc和trunc则需要文件系统和内核支持
NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none
断点续传,目前只支持 HTTP/HTTPS/FTP 协议
continue=true
#检查文件完整性,默认:false
check-intergrity=false
#帮助信息分类
#一个标签以#开头
#可用标签: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #rpc, #checksum, #experimental, #deprecated, #help, #all Default: #basic
#默认为#basic
help=#basic
下载连接相关
最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=1
同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
单个任务最大线程数, 添加时可指定, 默认:5
split=5
整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
单个任务下载速度限制, 默认:0
#max-download-limit=0
整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0
单个任务上传速度限制, 默认:0
#max-upload-limit=0
禁用IPv6, 默认:false
disable-ipv6=true
进度保存相关
从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
在Aria2退出时保存错误/未完成
的下载任务到会话文件
save-session=/etc/aria2/aria2.session
定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
RPC相关设置
启用RPC, 默认:false
enable-rpc=true
允许所有来源, 默认:false
rpc-allow-origin-all=true
允许非外部访问, 默认:false
rpc-listen-all=true
事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret= #rpc-user= #rpc-passwd= #follow-torrent=true listen-port=51413 #bt-max-peers=55 enable-dht=false #enable-dht6=false #dht-listen-port=6881-6999 #bt-enable-lpd=false enable-peer-exchange=false #bt-request-peer-speed-limit=50K peer-id-prefix=-TR2770- seed-ratio=0 #force-save=false #bt-hash-check-seed=true bt-seed-unverified=true bt-save-metadata=true 新建链接任务进阶 直接添加链接下载文件: 从多个地址源下载同一个文件(用空格隔开): http://www.url1.com/file.zip www.url2.com/file.zip 使用 n 个线程下载文件("x2" 就是 2 个线程): -x2 http://www.url.com/file.zip 基本使用 aria2c http://host/image.iso 说明:1.10.0以后的版本默认对每个 host 使用 1 个连接,你可以使用 –max-connection-per-server 或者 -x 选项进行改变。 aria2c -x2 http://host/image.iso 说明:想要停止下载,可以按Ctrl-C。想要恢复下载,可以在同一个文件夹中执行相同的下载命令。只要URI指向同一个文件,URIs是可以被改变的。 aria2c -s2 http://host/image.iso http://mirror1/image.iso http://mirror2/image.iso 说明:你可以指定URIs的数量多余 -s 选项设定的数。在这个例子中,前两个URL会被用于下载,而第三个URL作为备用(如果前面两个有个挂了,第三个顶上)。 aria2c http://host1/file.zip ftp://host2/file.zip 并行下载任意数目的URI, metalink, torrent(Parallel downloads of arbitrary number of URI, metalink, torrent): aria2c -Z http://host/file1 file2.torrent file3.metalink 说明:如果你只是下载 torrent 和 metalink 的文件,那么选项 -Z 将不是必须的。所以你可以使用以下这个命令同时下载bt文件。 aria2c file1.torrent file2.torrent 并发下载一个文件中的URI(Download files listed in a file concurrently): aria2c -ifiles.txt -j5 说明:选项 -j 用于指定同时下载的文件的数量。你可以在文件中指定本地的 torrent 和 metalink 文件。 说明:你可以指定一些 选项 在下载文件(input list file)中。 aria2c -ifiles.txt --save-session=out.txt 当你按下Ctrl-C或者 aria2 退出时,所有的错误(error)/未完成(unfinished)下载将会保存到 out.txt 文件中。注意通过 XML-RPC 方式(aria2.addTorrent and aria2.addMetalink)添加的下载不会被保存!你可以使用这个文件作为一个输入文件列表(input file list)来重新开始下载。 aria2c -iout.txt Metalink Download(不翻译) aria2c http://site/file.torrent 通过网上的种子文件下载,种子保存在内存(Download files from remote BitTorrent file; torrent file itself is processed in memory) aria2c --follow-torrent=mem http://site/file.torrent 通过本地的种子文件下载(Download using a local torrent file) aria2c -u40K /path/to/file.torrent 说明: -u, –max-upload-limit 指定最大的上传速度 说明:想要停止下载,可以按Ctrl-C。想要恢复下载,可以在同一个文件夹中执行相同的下载命令。只要URI指向同一个文件,URIs是可以被改变的。 你可以同时进行多个 bt 的下载: aria2c /path/to/file1.torrent /path/to/file2.torrent 通过 bt magnet uri 下载(Download using BitTorrent Magnet URI) aria2c "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C&dn=aria2" 说明:在 bt magnet uri 包含"&"的时候记住要加单引号或者双引号。强烈推荐打开 DHT 选项。 –enable-dht aria2c --bt-save-metadata "magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C&dn=aria2" 上面那个命令会保存元数据到一个名为"248d0a1cd08284299de78d5c1ed359bb46717d8c.torrent"的种子文件。 如果每个种子的下载速度都低于 200K 的话, aria2 会临时增加连接数来试着提高下载速度。 aria2c --bt-request-peer-speed-limit=200K file.torrent 说明:配置 –bt-request-peer-speed-limit 选项为合适的值可以在某些情况下提高你的下载速度。 aria2c --enable-dht http://site/file.torrent 说明:从 1.7.2 版本开始, DHT 默认是打开的。当通过 HTTP/FTP 下载的时候 DHT 不会启用。当首个种子下载开始, aria2 初始化 DHT 功能,之后, DHT 会一直运行知道 aria2 退出为止。 aria2c --enable-dht6 --dht-listen-port=6881 --dht-listen-addr6=YOUR_GLOBAL_UNICAST_IPV6_ADDR --enable-async-dns6 说明:如果 aria2c 编译的时候没有加入 c-ares , –enable-async-dns6 不是必须的。 aria2 会在 IPv4 和 IPv6 之间对 DHT 共享一些端口。 接下来的例子指示 aria2 移除 file.torrent 文件中所有的 tracker announce URIs ,并用"http://tracker1/announce" 和 "http://tracker2/announce" 代替。 aria2c --bt-exclude-tracker="*" --bt-tracker="http://tracker1/announce,http://tracker2/announce" file.torrent 加密(Encryption) 默认情况下, aria2 能够同时支持加密和非加密连接。它会先尝试使用加密连接,如果失败则尝试非加密连接。 强制只使用加密连接: aria2c --bt-require-crypto=true http://site/file.torrent 一共有两种加密类型:只加密头或者全部加密。默认下,如果对方支持两种加密类型, aria2 会选择只加密头。如果想让 aria2 总是使用全加密连接: aria2c --bt-min-crypto-level=arc4 http://site/file.torrent 打印一个种子文件中的内容(Print the contents of the torrent file) aria2c -S file.torrent 选择性下载文件(Download only selected files using index (usually called "selectable download")) aria2c --select-file=1-4,8 -Tfile.torrent 说明:序号(index)可以通过 -S 选项输出 aria2c --listen-port=6881-6883 file.torrent 说明:确认该 TCP 端口是可用的 aria2c --seed-time=120 --seed-ratio=1.0 file.torrent 说明:在上面的这个例子中, 当做种 120分钟 或者种子率大于1以后, aria2 会退出。 aria2c --max-upload-limit=100K file.torrent 为已经下载完成的文件做种(Seeding already downloaded file) 你可以使用 -V 选项给已经下载好的文件做种。它会先校验文件的完整性。 aria2c -V -d/path/to/dir file.torrent 如果你肯定文件是正确的,你可以使用 –bt-seed-unverified 选项跳过做种前的文件校验。 aria2c --bt-seed-unverified -d/path/to/dir file.torrent 你可以给多个文件做种: aria2c --bt-seed-unverified -d/path/to/dir file1.torrent file2.torrent 用序号指定文件名(Specify file name with index) 为 BitTorrent 下载下来的文件指定文件名,你首先需要通过 -S 选项知道该文件的序号。比如一个种子文件 -S 选项输出如下: idx|path/length 把 dist/base-2.6.18.iso 保存为 tmp/mydir/base.iso , /dist/driver-2.6.18.iso 保存为 /tmp/dir/driver.iso ,可以使用一下的命令: aria2c --dir=/tmp --index-out=1=mydir/base.iso --index-out=2=dir/driver.iso file.torrent 说明: –index-out 选项针对通过 HTTP 方式获取种子文件的方式无效。它只能针对本地种子文件的下载。 aria2 不会记住 –index-out 选项中指定的地址,你必须在每次开始该任务的时候重新指定 –index-out 的值。如果你忘了再次指定输出文件的地址, aria2 不会提醒你,所以你必须谨慎地使用这个选项。 优先下载每个文件开头的 1MiB 的内容。 aria2c --bt-prioritize-piece=head file.torrent 使用代理下载(Use With Proxy) aria2c --all-proxy='http://proxy:8080' http://host/file 说明: –all-proxy 选项会被具体的代理选项重载: –http-proxy, –https-proxy, –ftp-proxy. aria2c --http-proxy='http://proxy:8080' http://host/file 设置需要验证的代理服务器(Use proxy that requires authentication) aria2c --http-proxy='http://proxy:8080' --http-proxy-user='username' --http-proxy-passwd='password' http://host/file 说明:用户名和密码需要是 percent-encoded 格式。比如,如果用户名是 myid@domain, 那么 percent-encoded 格式就是 myid%40domain. 载入 Mozilla/Firefox(1.x/2.x) 和 Netscape 格式: aria2c --load-cookies=cookies.txt http://host/file 载入 Firefox3 格式: aria2c --load-cookies=cookies.sqlite http://host/file 说明:你可以不加任何修改直接读取 Firefox/Mozilla's 的 cookie 内容。 aria2c -c -s2 http://host/partiallydownloadedfile.zip 其它高级功能(Other Advanced Features) aria2c --max-download-limit=100K http://host/file 用 -V 选项修复一个被破坏的下载文件(Repair a damaged download using -V option) aria2c -V file.metalink 说明:这个选项只能对支持校验码的 BitTorrent 或者 metalink 使用。 aria2c --lowest-speed-limit=10K file.metalink 支持参数的 URI (Parameterized URI support) 你可以这样使用 URI : aria2c -P http://{host1,host2,host3}/file.iso 你可以指定数字序号(You can specify numeric sequence using []) aria2c -Z -P http://host/image[000-100].png 说明: -Z 选项是必须的,如果所有的 URL 都是指向不同的文件的话。 可以指定步长(You can specify step counter) aria2c -Z -P http://host/image[A-Z:2].png Time-stamping aria2 会在下载完成的时候从服务器拿到该文件的 timestamp 并设置到本地文件 aria2c -R http://host/file.iso 当下载完成后执行一条命令(Execute command when download finishes) aria2c --on-download-complete=COMMAND http://example.org/file.iso 参见 –on-download-error, –on-download-start 和 –on-download-stop 选项, 或者执行: aria2c -h #hook 写入到 /dev/null (Writing to /dev/null) aria2c -d /dev -o null --allow-overwrite=true http://example.org/file 需要 –allow-overwrite=true 是为了避免 aria2 重命名已经存在的 /dev/null。 http://server/file.iso http://mirror/file.iso设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
BT/PT下载相关
当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
单个种子最大连接数, 默认:55
打开DHT功能, PT需要禁用, 默认:true
打开IPv6 DHT功能, PT需要禁用
DHT网络监听端口, 默认:6881-6999
本地节点查找, PT需要禁用, 默认:false
种子交换, PT需要禁用, 默认:true
每个种子限速, 对少种的PT很有用, 默认:50K
客户端伪装, PT需要
user-agent=Transmission/2.77当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
强制保存会话, 话即使任务已经完成, 默认:false
较新的版本开启后会在任务完成后依然保留.aria2文件
BT校验相关, 默认:true
继续之前的BT任务时, 无需再次校验, 默认:false
保存磁力链接元数据为种子文件(.torrent文件), 默认:false
下载一个文件(Download a file):
用每个 host 两个连接从一个 host 下载一个文件(To download a file using 2 connections from single host):
同时使用两个连接下载同一文件(Download a file using 2 connections):
同时从FTP和HTTP源下载一个文件(Download a file from HTTP and FTP servers):
在退出时保存错误/未完成的下载(Save error/unfinished downloads on exit):
BT下载(BitTorrent Download)
通过网上的种子文件下载(Download files from remote BitTorrent file)
保存元数据到 .torrent 文件中(Save metadata as .torrent file)
自动调节连接数(Adjust the number of peers adaptively)
打开 DHT (Enable DHT)
打开 IPv6 的 DHT (Enable IPv6 DHT)
Add and remove tracker URI
改变监听端口(Change the listening port for incoming peer)
指定 BT 下载停止的条件(Specify the condition to stop program after torrent download finished)
调节上传速度(Throttle upload speed)
===+======================
1|dist/base-2.6.18.iso
|99.9MiB
---+----------------------
2|dist/driver-2.6.18.iso
|169.0MiB
---+----------------------
为预览的文件指定优先块(Prioritize piece for previewing files)
为所有的连接设置代理服务器(Set proxy server to use all protocols(HTTP(S)/FTP))
只为 HTTP 设置代理服务器(Set proxy server to be in HTTP only)
aria2c --http-proxy='http://username:password@proxy:8080' http://host/file
高级HTTP功能(Advanced HTTP Features)
载入 cookies (Load cookies)
继续浏览器或者其它程序开始的下载任务(Resume download started by web browsers or another programs)
调节下载速度(Throttle download speed)
如果下载速度低于某个特定值就丢弃连接(Drop connection if download speed is lower than specified value)
输入文件(Input File)
dir=/iso_images
out=file.img
http://foo/bar