前言

接着上一篇文章,我们成功将 OrangePi 3B 变身为基础 NAS 设备——挂载了大容量机械硬盘,并通过 Samba 实现了局域网内的文件共享。至此,一个“静态”的家庭存储中心已经初具雏形。接下来我们将为这台小主机装上 qBittorrent,让它具备自动下载、管理种子资源的能力。从此,无论是追新番、收电影,只需丢个磁力链接、种子甚至是 RSS 订阅,就可以实现自动下载和同步更新。

安装 qBittorrent-nox

因 Ubuntu 镜像源中的 qBittorrent-nox 版本老旧(4.x),所以前往 Github 下载静态编译版本(目前最新版本为 5.1.4)。选择和系统架构对应的二进制文件,传到开发板里。

为了方便,给 aarch64-qbittorent-nox 重命名为 qbittorrent-nox,并使用 chmod +x 赋予执行权限。

mv aarch64-qbittorent-nox qbittorrent-nox
chmod +x qbittorent-nox

然后创建 service 文件:

sudo vim /etc/systemd/system/qbittorrent-nox.service

写入以下内容,User 填写实际用户名,ExecStart 填写实际路径,如果需要自定义端口,添加上 --webui-port=<PORT> 参数,默认端口为 8080。

[Unit]
Description = qBittorrent-nox
After = network.target

[Service]
User = <USERNAME>
Type = forking
RemainAfterExit = yes
ExecStart = /path/to/qbittorrent-nox -d

[Install]
WantedBy = multi-user.target

先手动在命令行中执行 qbittorrent-nox,查看 WebUI 初始密码,如果直接启动 service 日志里是没有的。这里需要注意,与 4.x 旧版本不同,初始密码不再是 adminadmin 了。

浏览器访问 IP:8080,进入 qBittorrent WebUI 界面。

输入刚才自动生成的随机初始密码,登录到 WebUI。

先把语言改成中文,点击 Save 保存。

然后设置一个密码,这里一定要记得设置,否则 qBittorrent-nox 每次启动都会使用临时的随机密码,登录很麻烦。

然后退出 qBittorrent-nox,将其设置成开机自启,并以 service 启动。

sudo systemctl enable qbittorrent-nox
sudo systemctl start qbittorrent-nox

qBittorrent 基本配置

添加 Tracker 列表

因为 BT 下载速度取决于其他用户的上传速度,而做种上传的用户越多下载速度就越快,而用户可通过 Peer、DHT、Tracker 获得。接下来我们就添加一个 Tracker 列表,加快 BT 下载速度。
设置 -> Bittorrent 选项卡中,开启 自动附加 URL 的 trackers 到新的下载,URL 填入 https://cf.trackerslist.com/all.txt 并保存。(来源于 Github

取消 Tracker HTTPS 证书验证

设置 -> 高级 选项卡中,找到并关闭 验证 HTTPS tracker 证书

放行端口

如果需要公网访问,别忘记不仅要在防火墙放行 WebUI 端口(默认 8080),还有 BT 的监听端口。

安装 PeerBanHelper

某些异常的客户端(如迅雷)会一直请求做种用户的上行带宽,而自身上行流量一点也不贡献,俗称吸血。而长时间上行带宽占满可能会被运营商限制限速或关停宽带,为了解决这个问题,我们使用 PeerBanHelper 来识别并封禁异常客户端。

PeerBanHelper 是一款功能强大且灵活的工具,帮助用户自动识别并封禁不受欢迎、吸血或异常的 BT 客户端,保护 BT 下载环境。通过 PeerBanHelper 有效抵御恶意客户端的侵扰,维护资源共享的健康、效率和公平性。

GitHub 项目地址:https://github.com/PBH-BTN/PeerBanHelper

接下来我们通过 Docker 部署 PeerBanHelper。首先创建 docker 配置文件:

sudo vim /etc/docker/daemon.json

填入以下内容,更换国内镜像源,加快拉取速度。

{
  "registry-mirrors": [
    "https://docker.1ms.run"
  ]
}

保存,然后重启 docker。

sudo systemctl daemon-reload
sudo systemctl restart docker

如果没有配置 docker 免 sudo 执行,建议先进行配置,将下面的 $USER 换成自己的用户名。

sudo usermod -aG docker $USER
newgrp docker

然后运行 groups 命令,查看是否已经在 docker 用户组中。

接下来创建一个文件夹,并创建 docker-compose.yml 文件。

mkdir -p ~/docker/peerbanhelper
cd ~/docker/peerbanhelper
vim docker-compose.yml

填入以下内容:

services:
  peerbanhelper:
    image: "ghostchu/peerbanhelper:v9.2.3"
    restart: unless-stopped
    container_name: "peerbanhelper"
    volumes:
      - ./:/app/data
    network_mode: host
    stop_grace_period: 30s

保存退出,拉取 docker 镜像。

docker compose up -d

拉取完成后,打开浏览器访问 IP:9898 即可打开 Web 界面。

点击 扫描下载器,即可自动填入配置信息。然后再点击下方的 测试下载器 完成 PeerBanHelper 初始化。