Aria2 相关项目常见问题及解决方案(FAQ)

请注意,本文编写于 102 天前,最后修改于 27 天前,其中某些信息可能已经过时。

前言

在使用 Aria2 的过程中我遇到过很多问题,由于之前并没有记录的习惯,导致很问题的解决方案无法再去追溯。好在逐渐累积成了 Aria2 完美配置这套配置方案,使用这套方案几乎可避免大多数在 Aria2 使用中所遇到的坑。后来每次小伙伴们向我提问,我都提供了解决方案并记录了下来,让后来者避免重走我们曾经遇到的坑。


Aria2 常见问题

Aria2 本体的相关常见问题及解决方案。

Q:怎么下载?
A:对于从来没使用过 Aria2 的萌新,建议去看《Aria2 前端面板(GUI) AriaNg 使用教程》来了解相关基础知识。


Q:为什么 AriaNg 连不上 Aria2 ?
A:首先确认 RPC 信息是否正确,再查看 Aria2 是否在运行。最后如果还是有问题,检查 6800 端口是否打开,关于端口如何打开请自行搜索防火墙设置。


Q:为什么下载刚开始就立刻停止?
A:先检查网络并确认下载目录权限。如果一切正常,查看日志,遇到fallocate failed.cause:Operation not supported这样的提示,可以尝试修改配置文件的第40行file-allocation参数为none,重启 Aria2 后端。


Q:为什么 Aria2 重启后已下载完的任务会重新开始下载?
A:任务存在于会话文件(aria2.session)中且 Aria2 检测到文件不存在,就会导致这个情况。重启前清空已完成的任务可避免这样的情况发生。要根本的解决这个问题需要修改配置文件,其中的save-session-interval=1force-save=false这两项参数是关键,前者可以保证任务信息被实时的更新到会话文件,后者可以避免已完成的任务留存在会话文件中。使用 Aria2 完美配置,不会遇到此问题。


Q:为什么 Aria2 重启后会从头开始下载?
A:任务进度信息没有及时写入控制文件(*.aria2),解决这个问题的核心是配置文件中的auto-save-interval这项参数,它决定了任务进度的保存时间,在没有设置的情况下是默认每隔是60秒保存,所以为了能及时保存可以设置为auto-save-interval=1,即每秒保存。使用 Aria2 完美配置,不会遇到此问题。


Q:为什么无法下载磁力链接?
A:可能是你下载的磁力链接属于冷门资源。首先确认端口正常开放的情况下,在脚本中打开更新 BT-Tracker 功能,先找几个热门种子下载,比如 Ubuntu 镜像的种子,下载后做种几个小时,然后再进行下载。详细解决方案及原理参见:《解决 Aria2 无法下载磁力链接、BT种子和速度慢的问题


Q:为什么 BT 下载一直卡在了100%?
A:这是因为还在做种,打开 AriaNg 中 Bit Torrent 设置翻到最下面找到最小做种时间设置为0即可。在 AriaNg 中修改属于临时设置,如果需要永久设置需要修改配置文件。如果使用的是Aria2 完美配置,不会遇到这个问题。


Aria2 一键脚本/完美配置等常见问题

Aria2 一键脚本、Aria2 完美配置、OneDrive、Google Drive 离线下载、百度网盘转存等相关的常见问题和解决方案。

Q:为什么 Aria2 一键安装管理脚本不能运行?提示ERROR: The certificate of ‘xxx’ is not trusted.
A:这是因为系统太干净没安装CA证书组件,以 Debian 系统为例子,执行apt update && apt install -y ca-certificates安装即可。其它系统因包管理器不同,可能操作方式略有区别,可自行搜索安装方法。当然也可以加上--no-check-certificate选项忽略CA证书,但为了安全考虑不推荐这样做。


Q:下载完成后文件为什么没有上传?
A:这种情况多数都是上传脚本没有被触发导致的。请检查 Aria2 和 Rclone 是否被正确配置。上传脚本触发会在 Aria2 日志中输出上传提醒任务信息


Q:如何查看日志?
A:日志文件的位置默认在/root/.aria2/aria2.log。你可以使用 Aria2 一键安装管理脚本中相关选项或者直接输入tail -f /root/.aria2/aria2.log命令来查看实时日志。


Q:配置都是正确的,但依然无法自动上传。
A:查看 Aria2 日志,看有没有上传相关的记录,如果是正在上传,那么等待上传完成即可。如果没有,则依然是脚本没有被触发。这个情况,可以关闭前端面板(AriaNg)后重启 Aria2 再进行尝试。

TIPS: 如果修改配置后重启 Aria2 时没有关闭 AriaNg 可能会给服务端传递之前缓存的配置,从而导致修改的配置没有生效。

Q:为什么上传了一些奇怪的文件?
A:检查脚本中的下载路径与 Aria2 设置中的下载路径是否一致。建议修改下载路径使用 Aria2 一键安装管理脚本中的相关选项,它会同时修改配置文件和脚本中的下载路径。


Q:为什么执行上传脚本不会上传?
A:不要直接手动执行上传脚本,上传脚本需要 Aria2 传递变量才能正常使用。


Q:为什么有些文件被上传了,有些没有被上传?
A:更新到最新的配置方案,包括脚本和与配置文件。如果确认配置正确的情况下,依然出现这种情况,请留言说明你遇到的情况,并提供相关日志进行分析。(正在上传和上传受限不在此问题讨论范围)


Q:为什么下载到本地的文件被删除了?
A:两种情况下载文件会被删除,一是 Rclone 删除文件、二是删除脚本被触发。

Rclone 删除文件:

  • 上传脚本调用的是rclone move命令进行文件上传,即 Rclone 会在文件上传完成后删除源文件。如果文件已经上传到了网盘,就不会在本地保留。如果你希望在本地保留文件,可以把脚本中上传命令的move替换为copy

删除脚本被触发:

  • 正常情况下,Aria2 完美配置中的删除脚本delete.sh会在下载停止(下载出错或取消下载)后执行,删除文件及 .aria2 后缀名文件,避免不必要的磁盘空间占用。
  • 错误的修改配置文件,导致删除脚本被不正确的触发。导致的原因是on-download-complete=/root/.aria2/autoupload.shon-download-complete=/root/.aria2/delete.aria2.sh被同时注释。因为下载停止(on-download-stop)包含下载完成(on-download-complete)这个状态,如果没有对下载完成进行单独设置,则会直接执行下载停止后的脚本delete.sh,导致文件被删除。所以on-download-complete这个配置项必须二选一,需要上传时使用autoupload.sh,不需要上传则使用delete.aria2.sh

Q:为什么先暂停再删除任务就无法删除文件?
A:这是 Aria2 的问题。从暂停状态删除任务不会触发 on-download-stop这个选项,所以删除脚本没有触发,文件也就不会被删除。


其它问题

如果你遇到了其他问题,可以留言或者加入TG群和小伙伴们一起讨论,要注意提问的方式和提供有用的信息,不然谁也帮不了你。提问前最好去了解《提问的智慧》,这能更好的帮助你去解决问题和节约时间。


欢迎随手订阅博客的 Telegram 频道,接收最新的文章推送和有趣的内容。你还可以加入博主的 Telegram 群组,和小伙伴们一同交流、学习、成♂长。

添加新评论

已有 3 条评论

解决了没法上传的问题,然后这套配置在 docker 里使用的话,会有重启 docker 就重新下载一堆已经下载已完成文件的问题

Justf Justf 回复 @Justf
0 0

又好像不是重新下载,只是读取?然后就要验证啥的

docker 中使用 Aria2 没有尝试过,不过最近我有在研究 docker,可能以后会尝试做个这套方案 docker 镜像。