ubuntu docker 安装【aria2】, 实现离线下载

环境

ubuntu 20.04

1.安装docker

Ubuntu 安装Docker 运行Nginx-CSDN博客

2.安装docker-compose 

Ubuntu 安装 docker-compose-CSDN博客

3.编写shell脚本

vim start.sh
#!/bin/bash

# 创建目录结构
rm -r /docker/aria2
mkdir -p /docker/aria2/data
mkdir -p /docker/aria2/config


# 进入目标目录
cd /docker/aria2

# 将内容写入 docker-compose.yml 文件
cat <<EOF > docker-compose.yml
services:
  aria2:
      image: p3terx/aria2-pro:latest
      container_name: aria2
      restart: unless-stopped
      environment:
        - TZ=Asia/Shanghai
        - RPC_PORT=6800
        - RPC_SECRET=abc
      ports:
        - "8111:6800"  # WebSocket RPC 接口端口
      volumes:
        - /docker/aria2/data:/downloads  # 持久化下载目录
        - /docker/aria2/config:/config  # 持久化配置文件目录

  aria2-ui:
      image: p3terx/ariang
      container_name: aria2-ui
      restart: unless-stopped
      ports:
        - "8110:6880"  # 将 80 端口映射到宿主机,Web UI 访问地址
      environment:
        - TZ=Asia/Shanghai

EOF

# 启动 Docker Compose
docker compose up -d

4.启动shell脚本

sh start.sh

5.打开管理页面

主机ip:8110

aria2.conf文件:

#
# https://github.com/P3TERX/aria2.conf
# File name:aria2.conf
# Description: Awesome Aria2 configuration file
# Version: 2021.09.15
#
# Copyright (c) 2018-2021 P3TERX <https://p3terx.com>
#
# This is free software, licensed under the MIT License.
# See /LICENSE for more information.
#

## 文件保存设置 ##

# 下载目录。可使用绝对路径或相对路径, 默认: 当前启动位置
dir=/downloads

# 磁盘缓存, 0 为禁用缓存,默认:16M
# 磁盘缓存的作用是把下载的数据块临时存储在内存中,然后集中写入硬盘,以减少磁盘 I/O ,提升读写性能,延长硬盘寿命。
# 建议在有足够的内存空闲情况下适当增加,但不要超过剩余可用内存空间大小。
# 此项值仅决定上限,实际对内存的占用取决于网速(带宽)和设备性能等其它因素。
disk-cache=64M

# 文件预分配方式, 可选:none, prealloc, trunc, falloc, 默认:prealloc
# 预分配对于机械硬盘可有效降低磁盘碎片、提升磁盘读写性能、延长磁盘寿命。
# 机械硬盘使用 ext4(具有扩展支持),btrfs,xfs 或 NTFS(仅 MinGW 编译版本)等文件系统建议设置为 falloc
# 若无法下载,提示 fallocate failed.cause:Operation not supported 则说明不支持,请设置为 none
# prealloc 分配速度慢, trunc 无实际作用,不推荐使用。
# 固态硬盘不需要预分配,只建议设置为 none ,否则可能会导致双倍文件大小的数据写入,从而影响寿命。
file-allocation=falloc

# 文件预分配大小限制。小于此选项值大小的文件不预分配空间,单位 K 或 M,默认:5M
no-file-allocation-limit=64M

# 断点续传
continue=true

# 始终尝试断点续传,无法断点续传则终止下载,默认:true
always-resume=false

# 不支持断点续传的 URI 数值,当 always-resume=false 时生效。
# 达到这个数值从将头开始下载,值为 0 时所有 URI 不支持断点续传时才从头开始下载。
max-resume-failure-tries=0

# 获取服务器文件时间,默认:false
remote-time=true


## 进度保存设置 ##

# 从会话文件中读取下载任务
input-file=/config/aria2.session

# 会话文件保存路径
# Aria2 退出时或指定的时间间隔会保存`错误/未完成`的下载任务到会话文件
save-session=/config/aria2.session

# 任务状态改变后保存会话的间隔时间(秒), 0 为仅在进程正常退出时保存, 默认:0
# 为了及时保存任务状态、防止任务丢失,此项值只建议设置为 1
save-session-interval=1

# 自动保存任务进度到控制文件(*.aria2)的间隔时间(秒),0 为仅在进程正常退出时保存,默认:60
# 此项值也会间接影响从内存中把缓存的数据写入磁盘的频率
# 想降低磁盘 IOPS (每秒读写次数)则提高间隔时间
# 想在意外非正常退出时尽量保存更多的下载进度则降低间隔时间
# 非正常退出:进程崩溃、系统崩溃、SIGKILL 信号、设备断电等
auto-save-interval=20

# 强制保存,即使任务已完成也保存信息到会话文件, 默认:false
# 开启后会在任务完成后保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载。
# 关闭后已完成的任务列表会在重启后清空。
force-save=false


## 下载连接设置 ##

# 文件未找到重试次数,默认:0 (禁用)
# 重试时同时会记录重试次数,所以也需要设置 max-tries 这个选项
max-file-not-found=10

# 最大尝试次数,0 表示无限,默认:5
max-tries=0

# 重试等待时间(秒), 默认:0 (禁用)
retry-wait=10

# 连接超时时间(秒)。默认:60
connect-timeout=10

# 超时时间(秒)。默认:60
timeout=10

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5

# 单服务器最大连接线程数, 任务添加
<think>好的,我现在需要帮助用户解决如何通过Alist将百度网盘内容迁移到夸克网盘的问题。用户之前已经得到过详细的教程,现在可能想进一步确认或者需要更简化的步骤。先回顾之前的回答,确保这次回复保持一致,但避免重复。 首先,用户引用了之前的回答中的两个引用,但提到这些引用仅供参考,可能希望得到更直接的指导。我需要确保步骤清晰,分点说明,并且包括必要的代码示例和注意事项。 用户可能已经部署了Alist,但可能需要确认安装步骤是否正确。不过用户的问题主要集中在迁移方法,所以可能不需要重复部署部分,但为了全面性,还是简要提及。 接下来,添加存储配置是关键部分。百度网盘需要refresh_token,而夸克网盘需要cookie中的QM_U_KEY。要详细说明如何获取这些信息,尤其是用户可能遇到的难点,比如在浏览器中如何找到正确的cookie。 然后,数据迁移方案有两个:WebDAV挂载和界面直传。需要比较这两个方法的优缺点,帮助用户选择最适合的方式。例如,WebDAV适合大量文件,而界面直传适合小批量操作。 注意事项部分需要强调文件大小限制、错误处理以及分批迁移的重要性,避免用户操作时出现问题。比如,单文件不超过20GB,调整Nginx配置解决413错误,这些都很实用。 最后,生成的相关问题要针对用户可能遇到的后续问题,比如多网盘聚合、速度优化和数据完整性,这些都是用户可能关心的后续步骤。 需要检查是否所有步骤都符合Alist的最新文档,避免给出过时的信息。同时,确保命令和配置正确,比如Docker命令、rclone挂载参数等。如果有不确定的地方,可能需要参考官方文档或社区建议。 现在,组织回答结构,确保每个部分有明确的标题,步骤编号清晰,代码块正确格式化。同时,使用中文,保持口语化,但避免使用Markdown格式,符合用户的要求。 可能还需要考虑用户的技术水平,是否对Docker和命令行操作熟悉,所以在步骤中尽量详细说明每个命令的作用,以及如何验证步骤是否成功完成。 总结,回答需要覆盖部署、配置、迁移方法、注意事项和相关问题,确保用户能够一步步完成迁移,并解决常见问题。</think>根据Alist官方文档和实际操作经验,以下是分步实现的完整迁移方案,包含两种主流方法和关键注意事项: --- ### 一、环境准备(已部署可跳过) 1. **Alist基础部署** ```bash # Docker部署命令(最新稳定版) docker run -d --name alist --restart=always \ -v /etc/alist:/opt/alist/data \ -p 5244:5244 \ xhofe/alist:latest ``` 通过 `docker exec -it alist ./alist admin` 获取初始密码[^1] 2. **访问管理后台** 浏览器打开 `http://服务器IP:5244/@manage`,立即修改默认密码 --- ### 二、存储配置核心步骤 #### (一) 百度网盘接入 1. 登录百度账号后访问[官方授权链接](https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=iYCeC9g08h5vuP9UqvPHKKSVrKFXGa1v&redirect_uri=oob&scope=basic,netdisk) 2. 从跳转后的URL地址栏提取`refresh_token`参数(形如`xxxxxx-xxxxxxx`) 3. Alist后台配置: - 存储类型:`百度网盘` - 挂载路径:`/baidu` (可自定义) - 刷新令牌:粘贴获取的`refresh_token` #### (二) 夸克网盘接入 1. 浏览器登录网页版夸克网盘 2. 按`F12`打开开发者工具,进入`Application > Cookies` 3. 复制`QM_U_KEY`的完整值(包含`%`符号无需处理) 4. Alist后台配置: - 存储类型:`夸克网盘` - 挂载路径:`/quark` (可自定义) - Cookie值:粘贴完整的`QM_U_KEY` --- ### 三、迁移方案对比实施 #### 方案A:WebDAV挂载传输(适合大批量) 1. **启用WebDAV服务** ```bash # 修改Alist配置文件 vim /etc/alist/config.yml # 添加以下配置 webdav: enable: true port: 5245 ``` 重启容器:`docker restart alist` 2. **本地挂载操作** ```bash # 安装rclone(以Ubuntu为例) sudo apt install rclone # 挂载百度网盘 rclone mount alist_webdav:/baidu /mnt/baidu --vfs-cache-mode full & # 挂载夸克网盘 rclone mount alist_webdav:/quark /mnt/quark --vfs-cache-mode full & # 执行同步(实时显示进度) rsync -avhP --stats /mnt/baidu/ /mnt/quark/ ``` #### 方案B:界面直传操作(适合小批量) 1. 浏览器同时打开两个标签页: - 标签1:`http://IP:5244/baidu` - 标签2:`http://IP:5244/quark` 2. 右键点击文件选择`移动`或`复制`,目标路径选择夸克目录 --- ### 四、关键问题处理 1. **大文件传输失败** ```nginx # Nginx反向代理时添加配置 client_max_body_size 20480m; proxy_read_timeout 600s; ``` 2. **Cookie失效处理** - 夸克网盘Cookie有效期约30天,过期后需重新获取 - 百度refresh_token有效期10年,一般无需更新[^2] 3. **速度优化** ```bash # 使用aria2加速(需先在Alist启用离线下载aria2c --split=16 --max-connection-per-server=16 -d /quark/ http://alist路径/文件 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值