Sign inSign up

superng6/aria2

By superng6

•Updated 6 days ago

可屏蔽迅雷!Docker Aria2-with-AriaNG的最佳实践,超多刚需选项一键启用

Image
159

500K+

superng6/aria2 repository overview

GitHub last commit Docker Image Size (tag) Docker Automated build GitHub stars GitHub forks

⁠Docker Aria2的最佳实践

教程文档:https://superng6.github.io/docker-aria2⁠

Docker Hub:https://hub.docker.com/r/superng6/aria2⁠

GitHub:https://www.github.com/SuperNG6/docker-aria2⁠

博客:https://sleele.com/2019/09/27/docker-aria2的最佳实践/⁠

在茫茫多的docker aria2镜像中,一直找不到符合我需求的镜像

⁠之所以构建这个镜像的原因

当前的镜像或多或少都有以下几点不符合的我的需求

  • 没有办法屏蔽迅雷等只下载不上传的P2P下载工具

    (a2b-latest镜像)可屏蔽迅雷、qq旋风、影音先锋、百度网盘等吸血客户端

  • 没有配置UID和GID

    这关系到你下载的文件的权限问题,默认是root权限,很难管理

  • 端口不全

    绝大多数的aria2 images 都只开放了6800端口 下载速度息息相关的BT下载DTH监听端口、BT下载监听端口,需要expose出来 支持修改DHT网络监听端口和BT监听端口,部分网络6881端口已被封禁,建议修改

  • 没有自动删除.aria2文件的自动执行脚本

    aria2建立下载任务后会自动生成.aria2文件,aria2自身提供了api可以触发执行脚本

  • 没有回收站

    不小心删除文件后无法找回,现在有了回收站,再也不用担心误删了

  • 没有任务转移功能

    NAS下载,建议使用SSD盘,减少硬盘噪音,下载完成后自动保留目录结构转移到HDD硬盘中

  • 不能保存在保存磁力链接为种子文件时更名

    aria2虽然可以保存磁力链接为种子,但是种子名为随机字符串,本镜像可以将种子命名为正确名称

  • 无法检测是否下载过的任务

    aria2只能够在持续运行期间检查是否为重复任务,重启后再建立相同任务则会覆盖,本镜像支持持久化检查重复任务 支持检测到重复任务自动删除新创立的重复任务

  • 不能够暂停任务后结束/移动文件

    BT任务有个特点,就说很容易卡在一个进度就不动了,如果主要文件已下载完成可以执行其他操作就好了 本镜像支持暂停任务后整理文件,并移动到已完成目录

  • 可屏蔽迅雷等吸血客户端

    集成自@makeding/aria2b 项目,感谢

⁠本镜像的一些优点

  • latest 提供 aria2c 与 SuperNG6/AriaNg 增强版⁠,a2b-latest 额外提供可开关的 aria2b。
  • AriaNg 可在下载中、等待和已停止的任务列表直接展开文件清单;新建 BT/磁力任务时可按文件大小预先排除小文件。
  • 容器可在下载完成后按扩展名、关键词、正则和大小清理文件,并可保留相对目录结构移动到 completed。
  • 以 PUID/PGID 指定的用户运行 aria2c;/config 持久化配置、会话、过滤规则和日志。
  • 可选回收站、重复任务检测、磁力元数据种子备份与重命名、暂停后移动。
  • RPC、WebUI、BT/DHT 端口和磁盘缓存可配置,并支持自动更新 tracker。

⁠新版 AriaNg 功能

镜像内置 SuperNG6/AriaNg 增强版⁠:

  • 任务列表内嵌文件清单:在下载中、等待和已停止的任务列表直接展开文件,查看文件名、大小和进度;多目录 BT 任务以目录树展示。
  • BT/磁力任务文件过滤:新建磁力链接或种子任务时,可按文件大小筛选要下载的文件。

⁠新版 aria2b 功能

a2b-latest 集成 SuperNG6/aria2b⁠:通过 aria2 RPC 识别 BT 连接,按客户端特征和持续上传却无下载进度的行为封禁吸血 peer;支持 IPv4/IPv6 黑名单及自动解除封禁。新版通过 RPC 长连接、批量查询和更高效的进度检测降低长期运行开销;断线重试、启动时同步封禁状态和优雅退出让服务运行更稳定。

⁠Architecture

⁠全平台镜像统一Tag
⁠latest (default aria2 with webui ariang)

docker pull superng6/aria2:latest

ArchitectureTag
x86-64latest
arm64latest
armhflatest
⁠a2b-latest (屏蔽迅雷、qq旋风、影音先锋、百度网盘等吸血客户端 @makeding⁠ )

docker pull superng6/aria2:a2b-latest

ArchitectureTag
x86-64a2b-latest
arm64a2b-latest
armhfa2b-latest

⁠往后所有新增功能设置选项均在/config/setting.conf

⁠额外补充文章

群晖 DS918+扩展 – M.2 NVMe SSD 缓存变储存空间
https://sleele.com/2021/09/04/synology-nas-m2nvme-ssd-cache-change-to-storage-pool/⁠
NAS SSD临时下载盘,Aria2+qbittorrent配置教程
https://sleele.com/2021/09/04/nas-ssd-aria2-qbittorrent/⁠

⁠Changelogs

⁠2026/09/27

  1、集成 AriaNg 增强版 2.2.3:任务列表可直接展开文件清单,查看文件大小、进度和多目录结构
  2、新建 BT/磁力任务支持按文件大小筛选下载内容
  3、更新 aria2b v2.2.5:优化吸血客户端识别与无进度上传检测,降低扫描开销,增强长期运行稳定性
  4、重构下载事件与配置初始化流程,完善路径保护、文件移动和回收失败时的处理

⁠2026/05/24

  1、更新基础环境到 Alpine 3.23
  2、更新 aria2c 下载核心,继续使用解除线程限制的新版核心
  3、修复 a2b 镜像构建失败问题
  4、启动时版本信息补充 AriaNg / aria2b 版本,排查问题更直观

⁠2026/05/23

  1、镜像拆分为普通版与 a2b 版,普通用户无需安装 aria2b 相关组件,镜像更干净
  2、默认 `SECRET=yourtoken` 启动时输出红色安全警告,提醒用户及时更换 token
  3、修复 BT 重复任务、种子文件处理、tracker 更新、磁盘预分配默认值等问题
  4、a2b 关闭时不会再反复重启刷日志,启动稳定性更好
  5、附加功能(移动、回收站、过滤、种子处理、重复任务检测等)统一通过 `/config/setting.conf` 配置,修改后即时生效
  6、WebUI 启动失败时会输出错误提示,方便排查端口占用等问题

⁠2025/08/12

  1、更新 baseimage-alpine 3.22
  2、a2b镜像增加开关aria2b日志功能`A2B_DISABLE_LOG=true`
  3、增加ghcr.io渠道:`ghcr.io/superng6/aria2`

⁠2025/06/09

  1、新增移动文件前判断磁盘空间是否足够功能
  
Change Log History

⁠Document

⁠在线webui

我在Gitee上构建了基于ariang主线稳定版的在线webui:
仅https https://sleele.gitee.io/#!/downloading⁠
http http://sleele.gitee.io/ariang/#!/downloading⁠

⁠自行构建webui

在docker上部署最新版ariang
https://sleele.com/2020/06/03/tiny-docker-ariang/⁠
https://github.com/SuperNG6/docker-ariang⁠
https://hub.docker.com/r/superng6/ariang⁠

⁠挂载路径

/config /downloads

⁠默认关闭SSL,如需要请手动开启

之所以默认关闭SSL(建议开启),是因为如果开启,又没有配置证书,会导致aria2启动失败,所以如果需要开启请手动编辑aria2.conf 证书请放在/config/ssl目录下 删掉24,26,28行的#号 IknUvK

⁠修改RPC token

填写你自己的token,越长越好,建议使用生成的UUID ByRMgP

⁠关于群晖

群晖用户请使用你当前的用户SSH进系统,输入 id 你的用户id 获取到你的UID和GID并输入进去

nwmkxT 1d5oD8 JiGtJA

⁠权限管理设置

对你的docker配置文件夹的根目录进行如图操作,你的下载文件夹的根目录进行相似操作,去掉管理这个权限,只给写入,读取权限 r4dsfV

⁠环境变量说明

参数说明
--name=aria2容器名设置为aria2
-v 本地文件夹1:/downloadsAria2下载位置
-v 本地文件夹2:/configAria2配置文件位置
-e TZ=Asia/Shanghai容器时区
-e PUID=1026Linux用户UID
-e PGID=100Linux用户GID
-e SECRET=yourtokenAria2 token(警告:默认值是公开 token,公网部署务必改成随机字符串)
-e CACHE=128MAria2磁盘缓存配置
-e QUIET=truearia2c 静默模式(屏蔽 stdout/stderr,调试时设为 false)
-e PORT=6800RPC通讯端口
-e WEBUI=true启用WEBUI,设置为false则不启动AriaNg
-e WEBUI_PORT=8080WEBUI端口
-e BTPORT=32516DHT和BT监听端口(TCP/UDP需同时映射)
-e UT=true启动容器时更新trackers并写入配置文件
-e CTU=自定义trackers地址,多个地址用英文逗号分隔
-e RUT=true每天凌晨5点通过RPC更新trackers,无需重启Aria2
-e SMD=true保存磁力链接为种子文件
-e FA=falloc磁盘预分配模式none,falloc,trunc,prealloc(默认 falloc)
-e A2B=false启用 aria2b 屏蔽吸血客户端(仅 a2b 镜像可用,a2b 镜像默认 true)
-e A2B_DISABLE_LOG=falsearia2b 静默模式:true 关闭 aria2b 日志输出(仅 a2b 镜像)
-e CRA2B=2haria2b 定时重启间隔小时数(仅 a2b 镜像),false为禁用
-p 6800:6800Aria2 RPC连接端口
-p 8080:8080WEBUI端口
-p 32516:32516Aria2 TCP下载端口,对应BTPORT
-p 32516:32516/udpAria2 DHT / P2P UDP端口,对应BTPORT
--restart unless-stopped自动重启容器

附加功能配置:MOVE / RMTASK / CF / DET / TOR / RRT / MPT 等附加功能开关一律在 /config/setting.conf 配置(持久化、即时生效),不接受 env var。详见下文 /config/setting.conf 配置说明。

aria2c 配置覆盖:以下 key 每次启动都被 cont-init.d/30-config 用对应 env var 覆盖到 /config/aria2.conf,不要手工编辑这些行(编辑了也会丢):on-download-* / rpc-listen-port (PORT) / dht-listen-port (BTPORT) / listen-port (BTPORT) / bt-save-metadata (SMD) / file-allocation (FA) / bt-tracker (UT=true 时由 tracker.sh 写)。其他 aria2.conf 内容用户可自由修改并被保留。

⁠容器启动信息

容器启动时会输出镜像版本、组件版本、容器内端口、RPC 安全状态、用户权限以及功能开关摘要。 其中环境变量控制的项目显示本次启动值,附加下载功能读取 /config/setting.conf。

首次启动还没有持久化配置文件时,日志只提示将创建默认配置,不会把模板默认值冒充成用户已有设置。 RPC token 只显示安全状态,不会在日志中输出实际 token。横幅表示启动配置检查完成,不等同于服务健康检查结果。

⁠自定义tracker地址

CTU="https://cdn.jsdelivr.net/gh/XIU2/TrackersListCollection@master/best_aria2.txt⁠"

⁠上游组件

本镜像由以下组件组合而成,遇到问题时可以分别去对应仓库提 issue:

组件仓库当前版本
基础镜像SuperNG6/docker-baseimage-alpine⁠Alpine 3.23 + s6-overlay v2.2.0.3
aria2c 二进制SuperNG6/Aria2-Pro-Core⁠构建时拉 latest release(aria2 1.37.0 + OpenSSL 3.5)
AriaNg WebUISuperNG6/AriaNg⁠(基于 mayswind/AriaNg)构建时拉最新 release
aria2b(仅 a2b 镜像)SuperNG6/aria2b⁠构建时拉最新 release

aria2b 是 Node.js 程序,启动需要 --cap-add NET_ADMIN(用 iptables + ipset 屏蔽吸血客户端)。它会从 /config/aria2.conf 读以 ab- 为前缀的扩展配置项(如 ab-bt-scan-interval、ab-bt-ban-timeout 等),用户可以在 aria2.conf 里自定义屏蔽参数。详见 aria2b 仓库 README。

⁠/config/setting.conf 配置说明(推荐使用)

推荐使用setting.conf进行本镜像附加功能选项设置

## docker aria2 功能设置 ##
# 配置文件为本项目的自定义设置选项
# 重置配置文件:删除本文件后重启容器
# 所有设置无需重启容器,即刻生效

# 删除任务,`delete`为删除任务后删除文件,`recycle`为删除文件至回收站,`rmaria`为只删除.aria2文件
remove-task=rmaria

# 下载完成后执行操作选项,默认`false`
# `true`,下载完成后保留目录结构移动
# `dmof`非自定义目录任务,单文件,不执行移动操作。自定义目录、单文件,保留目录结构移动(推荐)
move-task=false

# 容器端文件过滤,在下载完成后的文件整理中清理不需要的文件,`false`、`true`
content-filter=false

# 下载完成后删除空文件夹,默认`true`,需要开启文件过滤功能才能生效
# 开启内容过滤后,可能会产生空文件夹,开启`DET`选项后可以删除当前任务中的空文件夹
delete-empty-dir=true

# 对磁力链接生成的种子文件进行操作
# 在开启`SMD`选项后生效,上传的种子无法更名、移动、删除,仅对通过磁力链接保存的种子生效
# 默认保留`retain`,可选删除`delete`,备份种子文件`backup`、重命名种子文件`rename`,重命名种子文件并备份`backup-rename`
# 种子备份位于`/config/backup-torrent`
handle-torrent=backup-rename

# 删除重复任务,检测已完成文件夹,如果有该任务文件,则删除任务,并删除文件,仅针对文件数量大于1的任务生效
# 默认`true`,可选`false`关闭该功能
remove-repeat-task=true

# 任务暂停后移动文件,部分任务下载至百分之99时无法下载,可以启动本选项
# 建议仅在需要时开启该功能,使用完后请记得关闭
# 触发暂停后会先等待 30 秒;任务恢复为 active/waiting 则不移动,仍为 paused 才移动
# 默认`false`,可选`true`开启该功能
move-paused-task=false

⁠/config/文件过滤.conf 配置说明
## 文件过滤设置(全局) ##

# 仅 BT 多文件下载时有效,用于过滤无用文件。
# 可自定义;如需启用请删除对应行的注释 # 

# 排除小文件。低于此大小的文件将在下载完成后被删除。
#min-size=10M

# 保留文件类型。其它文件类型将在下载完成后被删除。
#include-file=mp4|mkv|rmvb|mov|avi|srt|ass

# 排除文件类型。排除的文件类型将在下载完成后被删除。
#exclude-file=html|url|lnk|txt|jpg|png

# 按关键词排除。包含以下关键字的文件将在下载完成后被删除。
#keyword-file=广告1|广告2|广告3

# 保留文件(正则表达式)。其它文件类型将在下载完成后被删除。
#include-file-regex=

# 排除文件(正则表达式)。排除的文件类型将在下载完成后被删除。
# 示例为排除比特彗星的 padding file
#exclude-file-regex="(.*/)_+(padding)(_*)(file)(.*)(_+)"

⁠Linux

输入 id 你的用户id 获取到你的UID和GID,替换命令中的PUID、PGID

执行命令

docker run -d \
  --name=aria2 \
  -e PUID=1026 \
  -e PGID=100 \
  -e TZ=Asia/Shanghai \
  -e SECRET=yourtoken \
  -e CACHE=512M \
  -e PORT=6800 \
  -e BTPORT=32516 \
  -e WEBUI=true \
  -e WEBUI_PORT=8080 \
  -e UT=true \
  -e RUT=true \
  -e FA=falloc \
  -e QUIET=true \
  -e SMD=true \
  -p 32516:32516 \
  -p 32516:32516/udp \
  -p 6800:6800 \
  -p 8080:8080 \
  -v $PWD/config:/config \
  -v $PWD/downloads:/downloads \
  --restart unless-stopped \
  superng6/aria2:webui-latest

docker-compose

version: "3.1"
services:
aria2:
  image: superng6/aria2:webui-latest
  container_name: aria2
  network_mode: host
  environment:
    - PUID=1026
    - PGID=100
    - TZ=Asia/Shanghai
    - SECRET=yourtoken
    - CACHE=512M
    - PORT=6800
    - WEBUI=true
    - WEBUI_PORT=8080
    - BTPORT=32516
    - UT=true
    - QUIET=true
    - SMD=true
  volumes:
    - $PWD/config:/config
    - $PWD/downloads:/downloads
  restart: unless-stopped   
  • superng6/aria2:a2b-latest 镜像可屏蔽迅雷、qq旋风、影音先锋、百度网盘等吸血客户端A2B=true(集成自makeding/aria2b,感谢)
version: "3.1"
services:
  aria2:
    image: superng6/aria2:a2b-latest
    container_name: aria2
    network_mode: host
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Asia/Shanghai
      - SECRET=yourtoken
      - CACHE=512M
      - PORT=6800
      - WEBUI=true
      - WEBUI_PORT=8080
      - BTPORT=32516
      - UT=true
      - QUIET=true
      - SMD=true
      - A2B=true
      - A2B_DISABLE_LOG=false
      - CRA2B=2h
    volumes:
      - $PWD/config:/config
      - $PWD/downloads:/downloads
      - /lib/modules:/lib/modules:ro
    restart: unless-stopped   

⁠Preview

N94s7q Hq0pXW ZnN4jk Xnip2020-05-11_15-43-56

Tag summary

Content type

Image

Digest

sha256:9953cd21b…

Size

16 MB

Last updated

6 days ago

docker pull superng6/aria2