..

树莓局 aria2 远程下载

安装 aria2

aira2 官方仓库:https://github.com/aria2/aria2/

静态编译 ARM 树莓派:https://github.com/q3aql/aria2-static-builds/releases

也可以使用软件源安装:sudo apt install -y aria2

创建配置文件:

mkdir -p ~/.config/aria2/
nano ~/.config/aria2/aria2.conf

配置文件,建议根据 aria2 配置 按需填写,以下为极简配置(请自行替换几个路径):

# 后台运行
daemon=true
# 断点续传
continue=true
# Aria2 退出时保存错误/未完成的下载任务到会话文件(必须为全路径)
save-session=/home/lakor/.config/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 默认为 0
save-session-interval=60
# 强制保存会话, 默认:false
force-save=true
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=kqueue
# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=secret
# 文件保存路径, 默认为当前启动位置
dir=/media/hdd/download
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
enable-mmap=true
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: 快none < trunc < falloc < prealloc慢
# falloc仅仅比trunc慢0.06s
# 磁盘碎片: 无falloc = prealloc < trunc = none有
# 推荐优先级: 高falloc --> prealloc --> trunc -->none低
# EXT4, btrfs, xfs, NTFS等新型文件系统建议使用falloc, falloc(fallocate)在这些文件系统上可以瞬间创建完整的空文件
# trunc(ftruncate) 同样是是瞬间创建文件, 但是与falloc的区别是创建出的空文件不占用实际磁盘空间
# prealloc 传统的创建完整的空文件, aria2会一直等待直到分配结束, 也就是说如果是在HHD上下载10G文件,那么你的aria2将会一直等待你的硬盘持续满载工作直到10G文件创建完成后才会开始下载
# none将不会预分配, 磁盘碎片程度受下面的disk-cache影响, trunc too
# 请勿在传统文件系统如:EXT3, FAT32上使用falloc, 它的实际效果将与prealloc相同
# MacOS建议使用prealloc, 因为它不支持falloc, 也不支持trunc, but可以尝试用brew安装truncate以支持trunc(ftruncate)
# 事实上我有些不能理解trunc在aria2中的角色, 它与none几乎没有区别, 也就是说:太鸡肋了
file-allocation=trunc
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=64M
# 不做种
seed-time=0
# 最大上传速度限制为1字节
max-overall-upload-limit=1
# 移除未选中文件
bt-remove-unselected-file=true

创建存储数据用的会话文件:

touch /home/lakor/.config/aria2/aria2.session

测试下aria2是否启动成功:aria2c --conf-path=/home/lakor/.config/aria2/aria2.conf -D,用 ps -ef | grep aria2 看是否有进程启动,若有说明启动成功了。(强制结束进程:kill -9 <pid>

配置 aria2 服务

Raspbian 系统是使用 systemd 来管理服务的,会和最初 init.d 有差别。

编辑 aria2.servicesudo nano /usr/lib/systemd/system/aria2.service

填入如下内容:

[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=lakor
Type=forking
ExecStart=/usr/bin/aria2c --conf-path=/home/lakor/.config/aria2/aria2.conf -D

[Install]
WantedBy=multi-user.target

重新载入服务,并设置开机启动:

sudo systemctl daemon-reload
sudo systemctl enable aria2
sudo systemctl start aria2

配置 aria2 的 web 界面

配置 Web 界面需要用第三方工具,其通过 rpc 接口来管理 aria2 下载的内容。在尝试过几种 aria2 的 web 界面,我认为 AriaNG 是最舒服的。

**AriaNg 项目地址:https://github.com/mayswind/AriaNg/releases/,打开发布页面复制最新下载链接,之后运行命令:

$ sudo apt install -y git nginx
$ wget https://github.com/mayswind/AriaNg/releases/download/1.1.4/AriaNg-1.1.4.zip -O aria-ng.zip
$ unzip aria-ng.zip -d aria-ng
$ sudo mv aria-ng /var/www/html/
$ sudo systemctl enable nginx
$ sudo systemctl start nginx

用浏览器访问树莓派 IP 下的 aira-ng,即:http://<your_raspi_ip>/aria-ng,之后在左栏 AriaNg设置 –> RPC(<IP:Port>) –> 修改 Aria2 RPC 密钥 值为 secret。之后就可以正常添加任务下载了。

其他 web 界面

BT 下载速度慢问题

给 aria2 添加 Tracker,让 aria2 不只是从 DHT 网络或者种子文件中存储的 Tracker 信息查找源,从而找到更多的下载源。 这里建议添加trackers_best (20 trackers),最优的20条。 链接:https://github.com/ngosang/trackerslist

nano ~/.config/aria2/aria2.conf

# 在末尾添加一行,Tracker 用「,」隔开
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://9.rarbg.to:2710/announce,udp://retracker.coltel.ru:2710/announce,udp://pubt.in:2710/announce,udp://public.popcorn-tracker.org:6969/announce,udp://z.crazyhd.com:2710/announce,udp://wambo.club:1337/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.zer0day.to:1337/announce,udp://tracker.xku.tv:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://inferno.demonoid.pw:3418/announce,udp://open.facedatabg.net:6969/announce,udp://mgtracker.org:6969/announce

Enjoy~