aria2 (简体中文)

翻译状态:本文是 Aria2翻译。上次翻译日期:2021-12-11。如果英文版本有所更改,则您可以帮助同步翻译。

来自 aria2 主页:

aria2 是一个轻量级多协议多源命令行下载工具,支持 HTTP/HTTPS, FTP,BitTorrent 和 Metalink。用户可以通过内置的 JSON-RPCXML-RPC 接口操作 aria2。

安装

安装 aria2 软件包。

要以守护进程运行 aria2,你可以写一个 systemd 用户单元

注意: aria2 的可执行程序是 aria2c

配置

aria2.conf

aria2 默认从 $XDG_CONFIG_HOME/aria2/aria2.conf 中寻找全局配置,该行为可以通过 --conf-path 选项改变:

  • 用配置文件 /file/aria2.rapidshare 中的选项下载 aria2.example.rar
$ aria2c --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar

如果存在 $XDG_CONFIG_HOME/aria2/aria2.conf,但希望使用 /file/aria2.rapidshare 中的选项,需要在命令中加入 --no-conf 选项:

  • 不使用默认的配置文件,只使用 /file/aria2.rapidshare 中的选项下载 aria2.example.rar
$ aria2c --no-conf --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar

如果不存在 $XDG_CONFIG_HOME/aria2/aria2.conf,并且你想要简化配置管理:

$ touch $XDG_CONFIG_HOME/aria2/aria2.conf

示例 aria2.conf

continue
dir=${HOME}/Desktop
file-allocation=none
input-file=${HOME}/.aria2/input.conf
log-level=warn
max-connection-per-server=4
min-split-size=5M
on-download-complete=exit

这与执行下面的命令等价:

$ aria2c --dir=${HOME}/Desktop --file-allocation=none --input-file=${HOME}/.aria2/input.conf --on-download-complete=exit --log-level=warn FILE
注意: 上面示例 aria.conf 可能错误地使用了 $HOME 变量,一些用户报告说,使用花括号语法会在 aria2 的工作目录下创建名叫 ${HOME} 的文件夹。因为 bash 会把 $HOME 当成环境变量,这样的文件夹很难访问。目前建议在 aria2.conf 中使用绝对路径。

选项细节

如果存在下载任务对应的控制文件,自动继续未完成的下载任务。
在 中存储下载文件。
不要在下载开始前预分配磁盘空间(默认值:prealloc1
input-file=${HOME}/.aria2/input.conf
从 中的 URI 下载文件,URI 以 TAB 分割。
设置日志级别,只输出警告和错误。(默认值:debug)
设置每个服务器的最大链接数为 4。(默认值:1)
只在文件大小超过 2*5MB = 10MB 时分割文件。(默认值: 20M)
on-download-complete=exit
当下载任务完成时,运行 命令并退出 shell。
示例输入文件 #1
  • 从两个分别的地址下载 到 ,并合并为
http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2    http://sourceforge.net/projects/aria2/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2
示例输入文件 #2
  • 下载 ,命名为 ,保存到 /file/old。并且
  • 下载 ,命名为 ,保存到
http://aria2.net/files/stable/aria2-1.9.5/aria2-1.9.5.tar.bz2
  dir=/file/old
  out=aria2.old.tar.bz2
http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2
  out=aria2.new.tar.bz2

备注

1
推荐在新的文件系统,比如 ext4 (具有 extents 支持的)、btrfs 或者 xfs 上,使用这个选项,因为它们几乎可以瞬间分配 GB 级别的大文件。不要在传统的文件系统,比如 ext3 上,使用 falloc,因为预分配会消耗与正常分配相同的时间,还会阻塞 aria2 下载。

选项细节

http-user=USER_NAME
设置 HTTP 用户名为 USER_NAME。这会影响所有的 URI
设置 HTTP 密码为 PASSWORD。这会影响所有的 URI。
如果控制文件不存在,重新下载。(默认值:false)
存储下载文件到 。
file-allocation=falloc
在下载开始前,调用 分配磁盘空间。(默认值:prealloc)
启用 HTTP/1.1 流水线来降低网络延迟的影响,并减少数据用量。(默认值:false)
从 中的 URI 下载文件,URI 以 TAB 分割。
设置日志级别,只输出错误。(默认值:debug)
设置每台服务器每个文件的最大链接数为 2。(默认值:1)
每 120 秒输出下载进度汇总。(默认值:60)3

备注

  • 因为 包含用户名和密码,建议将该文件权限设置为 600 或类似的权限。
$ cd /file
$ chmod 600 /file/aria2.rapidshare
$ ls -l
total 128M
-rw------- 1 arch users  167 Aug 20 00:00 aria2.rapidshare
3
不显示下载进度汇总,可以提高总体性能。日志仍然会按照 选项的配置输出。
提示: 示例的配置文件可以用于HotfileDepositFiles 等网站。

选项细节

bt-seed-unverified=false
在做种前不检查文件哈希。(默认值:true)
设置全局最大上传速度为 1MB/sec。(默认值:0)
设置每个种子的最大上传速度为 128K/sec。(默认值:0)
下载完成后持续做种直到分享率达到 5.0。(默认值:1.0)
下载完成后做种 240 分钟。

示例 aria2.daemon

这个配置可以用于以服务启动的 aria2。可以与下面的前端一起使用。注意 rpc-user 与 rpc-pass 选项已经被弃用,但许多前端还不支持新的认证系统。记得修改用户名、密码和下载目录。

continue
daemon=true
dir=/home/aria2/Downloads
file-allocation=falloc
log-level=warn
max-connection-per-server=4
max-concurrent-downloads=3
max-overall-download-limit=0
min-split-size=5M
enable-http-pipelining=true

enable-rpc=true
rpc-listen-all=true
rpc-user=rpcuser
rpc-passwd=rpcpass

前端

Web UIs

  • aria2rpc 用于连接远程 aria2c 实例的命令行工具。如果安装了 aria2c,该程序可以在 /usr/share/doc/aria2/xmlrpc/aria2rpc 下找到。
https://github.com/tatsuhiro-t/aria2/blob/master/doc/xmlrpc/aria2rpc || aria2

其他 UIs

提示与技巧

下载但不安装软件包

只需要用下面的命令:

# pacman -Sp packages | aria2c -i -
在标准输出里打印软件包的 URL,而不是下载它们,然后用 | 管道传给下一个命令。最后, 里的  意味着下载文件的 URL 应该从文件里指定。但如果传入了 ,就从 stdin 里读取 URL。

pacman XferCommand

参见 pacman (简体中文)/Tips and tricks (简体中文)#使用aria2.

改变 User Agent

一些站点会根据你的 User Agent 过滤请求,由于 Aria2 并不出名,使用主流下载器或浏览器的 User Agent 可能会更好。只需要像这样使用 -U 选项:

$ aria2c -UWget http://some-url-to-download/file.xyz

你可以任意指定 User Agent,比如 -UMozilla/5.0 等。

在 makepkg 中使用 Aria2

你可以使用 Aria2 代替 来下载源文件,只需要像下面一样更改 变量:

作为守护进程使用 Aria2

要使用 Aria2 作为守护进程,你可以写一个 systemd 用户单元。比如:

~/.config/systemd/user/aria2cd.service
[Unit]
Description=Aria2 Daemon

[Service]
Type=simple
ExecStart=/usr/bin/aria2c --conf-path=''/path/to/conf''

[Install]
WantedBy=default.target

#示例 aria2.daemon 展示了配置文件示例。

使用 Aria2 做种

要做种下载好的种子,使用 选项:

$ aria2c --check-integrity=true --seed-ratio=0.0 --dir="/path/to/iso" "/path/to/torrent/archlinux-2020.03.01-x86_64.iso.torrent"

指定 选项可以永久做种。

另请参见

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.