# 前言

Play With Docker 是 Dockers hub 提供的免费的远程主机,并且自带 docker 环境,方便用户安装 docker 容器并测试,
之前申请的微软 E5 OneDrive 有 5T 空间,说实话空间虽然大,但是在国内访问速度太慢
于是尝试在这个白嫖的远程主机中安装 Aria2 + Rclone,下载资源并上传到 OneDrive 中

# 基本环境和工具

# 登录远程主机

Play With Docker 远程主机,在浏览器上无法使用复制粘贴功能,可以用本地主机 ssh 登录。

# ssh 登录远程主机
ssh ***@direct.labs.play-with-docker.com

需要注意该远程主机的空间

# 安装 rclone

# 安装拓展工具
apk add wget curl ca-certificates fuse
# 下载 Rclone
wget https://downloads.rclone.org/v1.61.1/rclone-v1.61.1-linux-amd64.zip
unzip rclone-*-linux-amd64.zip
cd rclone-*-linux-amd64
cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone
mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb
# 创建 rclone 的挂载 OneDrive 节点(可以忽略)
mkdir /usr/local/onedrive

# 安装 Aria2

下载 aria2.sh 完成后,执行脚本,根据选项进行安装

wget -N git.io/aria2.sh && chmod +x aria2.sh && ./aria2.sh

默认安装成功后

Aria2 简单配置信息:
 IPv4 地址      : 
 IPv6 地址      : 
 RPC 端口       : 6800
 RPC 密钥       : 
 下载目录       : /root/downloads
 AriaNg 链接    :

注意:此时 aria2 只能正常下载
如需要下载并上传需要修改配置 .aria2c/aria2.conf
下载完成后执行的命令 原先的配置是 /root/.aria2c/clean.sh 需要修改成 upload.sh 才能上传
on-download-complete=/root/.aria2c/upload.sh

并且之前绑定的 Rclone name 需要和 /root/.aria2c/script.conf 中的配置对应
网盘名称 (RCLONE 配置时填写的 name)
drive-name=OneDrive
修改配置后需要重启 aria2 服务,可参考 进阶 Aria2c 命令行方式

# 安装 AriaNG

Aria2 没有图形化界面,需要安装 AriaNG,因为当前远程主机有 docker 环境,可以直接用 docker 安装,
访问 主机地址:6880 进入配置页面
然后根据上面的信息配置,配置 AriaNG,注意白嫖的远程主机的地址,配置好 RPC, 就可以使用了。

docker run -d \
    --name ariang \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -p 6880:6880 \
    p3terx/ariang

# 进阶 Aria2c 命令行方式

准备

# 复制一个新的配置文件
cp .aria2c/aria2.conf .aria2c/aria3.conf
# 修改配置 必须注释 aria2.session,因为命令行方式,直接输入下载链接参数
vi .aria2c/aria3.conf
# 从会话文件中读取下载任务
#input-file=/root/.aria2c/aria2.session
# Aria2 退出时或指定的时间间隔会保存 `错误 / 未完成` 的下载任务到会话文件
#save-session=/root/.aria2c/aria2.session
# 下载完成后执行的命令 原先的配置是 /root/.aria2c/clean.sh 需要修改成 upload.sh 才能上传
on-download-complete=/root/.aria2c/upload.sh

编辑 script.conf
vi /root/.aria2c/script.conf

# 编辑 script.conf
vi /root/.aria2c/script.conf
# 网盘名称 (RCLONE 配置时填写的 name)
drive-name=OneDrive
# 注意 Rclone 配置时 name 必须相同
Current remotes:
Name                 Type
====                 ====
OneDrive             onedrive

命令行示例

# 
# --conf-path 读取配置文件
# -D 守护进程
# -S *.torrent 获取种子列表
# --select-file=1,4-7 *.torrent 选择要下载内容 如:1,4,5,6,7
# 避免冲突,先把之前启动的 aria2 关闭,可以通过./aria2.sh 脚本关闭,也可以 kill <pid>
# 查找 aria2 的 pid
ps -ef | grep aria2
kill <pid>
# aria2c 命令行示例, 测试是否能够正常下载上传
aria2c --conf-path=/root/.aria2c/aria3.conf 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'

# Rclone 挂载 OneDrive

参考地址 https://blog.csdn.net/weixin_55873007/article/details/126581328

  • 首先 OneDrive 需要注册应用(其中选择 web 填写 http://localhost:53682),并创建密钥
  • 获得 client_id 和 client_secret 后,通过 rclone 获得 token
  • 如果 Rclone 所在的宿主机自带图像化界面和浏览器,则可以根据 rclone config,一步步配置
  • 否则也可以其他带浏览器的机器上,如果 windows 也下载个 rclone.exe 获得 token, 复制到宿主机中
  • 注意:之前下载最新版本的 rclone, 挂载过程中遇 fuse 问题,看讨论需要 fuse3, 没搞好
  • 于是下载 v1.16.1 版本,正常挂载
  • 如果单纯为了把 aria2 的下载内容上传到 OneDrive 中,rclone mount 步骤可以省略
# 挂载到 /usr/local/onedrive
rclone mount OneDrive:/ /usr/local/onedrive --allow-other --allow-non-empty --vfs-cache-mode writes &
# 取消挂载
fusermount -u /usr/local/onedrive

# 参考链接

  • https://p3terx.com/archives/offline-download-of-onedrive-gdrive.html
  • https://blog.csdn.net/weixin_55873007/article/details/126581328
  • https://rclone.org/commands/rclone_mount/
  • https://www.blueskyxn.com/202209/6510.html
更新于 阅读次数