利用 qBitTorrent 在 VPS 上离线下载


概要

种子和磁力链接是现在使用最为广泛的资源下载形式了,但有时即使找到了种子资源,也会面临墙、网速、高额收费等限制问题,导致难以顺利下载。

qBitTorrent 是一款开源免费的种子和磁力链接下载工具,支持 Windows、Mac 和 Linux 平台,功能非常强大。

通过把 qBitTorrent 部署到个人的 VPS,就能离线下载到 VPS,再按需从 VPS 取回本地。

而一台海外的千兆带宽 VPS ,也不是月租 $5 而已(推荐 vultr)。

镜像仓库

为方便起见,这里已经把相关镜像组件都封装到 Github 仓库 qBitTorrent-docker

镜像 用途 服务端口 端口说明
qBitTorrent 用于 BT 下载资源到 VPS 8080 WEB 管理界面
- - 8081 用于 P2P 连接的最小端口,默认 6881(-6889),
但 6881 已被大部分资源站拉黑,
故设置为另一个最小端口
- - 9000 用于内部共享私有种子的端口
caddy 用于从 VPS 上拉回资源到本地 9090 资源文件的浏览界面
nginx 反向代理 qBitTorrent 和 caddy 服务 80 项目说明页面

部署步骤

1. 项目构建

  • 宿主机安装 docker、docker-compose
  • 宿主机安全组/防火墙(iptables/firewall)放行这些端口的入口流量: 80、8080、8081-8089、8081-8089/udp、9000、9090
  • 下载仓库: git clone https://github.com/lyy289065406/qBitTorrent-docker /usr/local/qBitTorrent-docker
  • 打开仓库目录: cd /usr/local/qBitTorrent-docker
  • 构建镜像并运行: caddy_user=admin caddy_pass=123456 docker-compose up -d

caddy 的账号密码按需设置即可;qBittorrent 的密码因为使用 PBKDF2 算法,又没有提供生成密码的命令行工具,故只能在 WEB 页面上修改。

2. 配置 qBitTorrent

  • 登录 WEB 管理页面:http://${vps-ip}/bt/(或 http://${vps-ip}:8080
  • 默认登录账密: admin / adminadmin
  • 修改默认密码: 【选项】 -> 【Web UI】 -> 【验证】
  • 修改 tracker 列表: 【选项】 -> 【BitTorrent】 -> 【自动添加以下 tracker 到新的 torrent】

更多配置可参考《专业磁力种子下载工具 qBittorrent 使用教程

3. 配置定时更新 trackers

通过 trackers 可以优化下载速度,但是 trackers 是有有效时限的,在以下地方可以获取最新的 trackers 列表:

通过 update_trackers.sh 脚本可以自动刷新 trackers 配置。

建议把该脚本配置到 crontab ,每天更新一次:


# 编辑定时任务
crontab -e

# 每天更新一次 trackers
0 1 * * * /bin/sh /usr/local/qBitTorrent-docker/update_trackers.sh

4. 使用 caddy 浏览已下载文件

  • 登录 WEB 页面:http://${vps-ip}/list/http://${vps-ip}:9090
  • 默认 BasicAuth 登录账密: admin / 123456

BasicAuth 的账号密码在第 1 步构建项目时已配置好

FAQ

Q1: 为什么无法下载迅雷链接或磁力链接

qBitTorrent 并不能直接解析迅雷链接或磁力链接,它只能解析 torrent 种子文件、或种子文件的下载链接。

对于迅雷链接或磁力链接,需要使用其他工具先转换为 torrent 种子文件,具体方法可参考这篇文章

Q2: 下载文件保存到哪里?

仓库下的 downloads 挂载到 docker 容器,下载的文件均保存到这里。

在前端可以通过 caddy 下载,在后端可以到这个目录下载。

另外需要注意下载的文件大小不能超过 downloads 目录所在磁盘的空间大小。

Q3: tracker 是什么?

在 BT 下载中的一个重要概念是 P2P。

P2P 是 peer-to-peer 的缩写,网络中的一个 peer(正在下载资源的客户端) 如何才能找到另外志同道合的 peer,Tracker 扮演着至关重要的月老作用:Tracker 是一个 HTTP 或者 UDP 服务器,作用是帮助 peer 找到其他拥有相同资源的 peer。

后来有了 DHT 网络之后,Tracker 的作用逐渐弱化,但是 Tracker 代表的这种中心化一定程度上相对 DHT 代表的去中心化效率还是比较高的。

详见《BT 增强建议之 Tracker

Q4: 忘记 qBitTorrent 的登录密码怎么办?

进入 docker_torrent 容器,修改 /config/qBittorrent/qBittorrent.conf 文件,删除 WebUI/Password_PBKDF2 配置项,然后重启进程即可还原为默认密码 adminadmin

Q5: 可以用手机管理 qBitTorrent 吗?

使用 transdrone 即可。


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
使用 calibre 搭建私人书库 使用 calibre 搭建私人书库
概要你是否面临以下困扰: 想翻看曾经看过的某本小说的时候,网上已经找不到了 即使网上找到了,因为版权原因无法在线看、甚至无法下载 可以在线看,但是要收费 连载小说几个月才出一册,囤了一年后却不知道自己看到哪了 在家看小说看了一半突然要出门
2020-10-11
下一篇 
CVE-2020-13933 漏洞分析 CVE-2020-13933 漏洞分析
Apache Shiro < 1.6.0 身份验证绕过漏洞: Apache Shiro 是一个强大且易用的 Java 安全框架,执行身份验证、授权、密码和会话管理,通常会和 spring 等框架一起搭配使用来开发 web 应用
2020-09-09
  目录