在OpenWrt搭建AutoBangumi+qBittorrent+Alist+Rclone实现自动下载订阅新番并上传网盘功能


本文总结一下自己折腾在OpenWrt搭建AutoBangumi+qBittorrent+Alist+Rclone实现自动下载订阅新番并上传网盘功能的过程

安装docker

1
2
3
4
opkg update
opkg install docker docker-compose dockerd luci-lib-docker luci-app-dockerman
/etc/init.d/dockerd start #启动
/etc/init.d/dockerd enable #开机启动

然后去网络-防火墙-常规设置入站数据出站数据转发都改为接受,否则无法访问docker应用!

使用docker-compose方式安装AutoBangumi

AutoBangumi是基于 Mikan Project、qBittorrent 的全自动追番整理下载工具。只需要在 Mikan Project 上订阅番剧,就可以全自动追番。并且整理完成的名称和目录可以直接被 Plex、Jellyfin 等媒体库软件识别,无需二次刮削。

新建一个docker-compose.yml文件,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: '3.2'
services:
auto_bangumi:
container_name: AutoBangumi
environment:
- TZ=Asia/Shanghai
- PGID=1000
- PUID=1000
networks:
- auto_bangumi
ports:
- '自定义端口:7892'
volumes:
- ./config:/app/config
- ./data:/app/data
dns:
- 8.8.8.8
- 223.5.5.5
restart: unless-stopped
image: estrellaxd/auto_bangumi:latest

networks:
auto_bangumi:
volumes:
auto_bangumi:
external: false

启动

1
docker compose up -d

这个时候在管理界面Doccker-容器里面能看到AutoBangumi已经启动,这个时候浏览器输入http://ip:端口/即可打开管理界面,然后根据官方文档进行设置

安装qBittorrent

安装qBittorrent需要安装很多依赖,如下

1
2
3
4
5
6
7
8
9
libdouble-conversion_3.2.1-2_x86_64.ipk
libQt6Core_6.4.2-3_x86_64.ipk
libQt6Network_6.4.2-3_x86_64.ipk
libQt6Sql_6.4.2-3_x86_64.ipk
libQt6Xml_6.4.2-3_x86_64.ipk
qt6-plugin-libqopensslbackend_6.4.2-3_x86_64.ipk
qt6-plugin-libqsqlite_6.4.2-3_x86_64.ipk
qBittorrent-Enhanced-Edition_4.5.2.10-1_x86_64.ipk
luci-app-qbittorrent_git-24.061.45533-315c891_all.ipk

以上插件官方软件包可能没有,可前往这里下载,还有就是以上插件顺序可能不对,请根据提示安装就好,全部安装后网络存储会出现qBittorrent,这说明安装成功了,然后启动!

Alist

1
2
opkg update
opkg install alist luci-app-alist

安装完毕后网络存储会有Alist 文件列表菜单出现,然后启动打开界面挂载自己所需的网盘

Rclone

安装

1
2
opkg update
opkg install rclone

安装完毕后进行挂载设置

1
rclone config #根据提示操作,关键点是url要填路由器ip(如192.168.0.1)不要填127.0.0.0,挂载方式选择webDav,账号密码填alist的,具体可以看alist官网(https://alist.nn.ci/zh/guide/webdav.html)

设置完毕后开始挂载

1
rclone -v mount alist:/ /data/alist --config /root/.config/rclone/rclone.conf --cache-dir /mnt/sda3/tmp --allow-other --vfs-cache-mode writes --allow-non-empty --umask 000 --daemon --log-file /root/logs/rclone.log

解释:1、alist:/为config设置的name(alist)和挂载目录(/)组合
2、/data/alist为挂载目录
3、/root/.config/rclone/rclone.conf为配置文件路径,正常来讲不用动
4、/mnt/sda3/tmp为缓存路径,请填写一个大容量目录
5、/root/logs/rclone.log为日志目录
命令输入完毕后,请自行前往对应目录看一下能否访问,如cd /data/alist && ll能看到自己设置的硬盘目录即为成功挂载!

设置开机自动挂载

1
2
3
4
5
6
opkg update
opkg install procps-ng-ps # 安装 procps-ng-ps 可得到与linux发行版一样功能的 ps
wget https://raw.githubusercontent.com/sola614/Sundries/master/course/AutoBangumi/rcloned && vim rcloned #脚本修改自己成目录
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
bash /etc/init.d/rcloned start

然后去系统-启动项-本地启动脚本添加bash /etc/init.d/rcloned start,最后重启测试下效果,没有意外的话开机启动即可自动挂载,如果不行,请查看日志或检查配置是否正确
PS:可以去这里下载一个luci-app-rclone,安装完毕后网络存储会有Rclone菜单出现,不过好像没啥用,反正我也就是看看运行状态(:

自动上传

需要用到一个脚本,原理是定时检查qBittorrent下载完成的任务,然后打标签最后使用rclone copy到挂载目录即可上传到网盘,下载后根据实际修改里面的参数,然后在系统-计划任务里添加*/1 * * * * bash /root/AutoBangumi/qb_auto_rclone_openwrt.sh>/root/logs/crontab_qb.log最后保存即可,注意修改脚本保存和日志路径
PS:开启定时任务前先运行测试看看有没有报错,然后根据提示安装需要的依赖

公网通过IPV6地址访问

设置ipv6

因为之前就设置过了,然后重装都是导入备份,具体细节已忘,自行参考这里或搜索其他教程

防火墙

因为我是旁路由搭建的,经测试发现只要主路由防火墙放开端口即可访问,所以下面都是在主路由设置的

主路由Padavan设置

打开高级设置-自定义设置-在防火墙规则启动后执行:logger -t "【防火墙规则】" "脚本完成"前填入以下参数

1
2
3
ip6tables -A FORWARD -p tcp --dport 自定义端口 -j ACCEPT # Autobangumi
ip6tables -A FORWARD -p tcp --dport 自定义端口 -j ACCEPT # alist
ip6tables -A FORWARD -p tcp --dport 自定义端口 -j ACCEPT # qbit

然后点击应用本页面设置,这时候没有意外的话在浏览器输入http://[路由器的ipv6地址]:端口即可访问对应页面,最好是用手机流量访问测试能不能访问
PS:简单粗暴的把防火墙直接关了也不是不行但是不建议

安装动态dns

由于运营商下发的ip地址是会变的,所以需要使用动态dns获取最新的ip地址

1
2
opkg update
opkg install luci-app-ddns ddns-scripts-cloudflare

然后设置解析,请参考这里
PS:如果是跟我一样是单网口旁路由的话,可能需要进行以下设置:

1
2
3
4
编辑-高级设置
IP 地址来源选择 URL
用于检测的 URL 填写 http://ipv6.ip.sb
事件网络选择 @LAN6

保存并应用后点重新加载应该就可以正常运行了

总结

完成以上安装设置后,你的openwrt系统就具有自动下载订阅新番并上传网盘功能,并且可以通过公网ipv6地址在外面也能访问了!

注意事项

1、本教程为事后总结,可能有一些细节没写清楚,导致各种问题,请发挥自己的搜索能力和动手能力自己测试修改!
2、如果安装了openclash并使用了fakeip模式,请在覆写设置-DNS设置-Fake-IP-Filter里面填入ip.sb过滤掉,否则动态dns有可能获取的是代理ip,不建议使用meta内核,开了之后会导致有些页面无法访问,当然最好就是用REDIR-HOST没那么多坑
3、建议能用了之后备份,出问题也能直接恢复