典型 BT 下载部署流程
典型 BT 下载部署流程

使用的 BT 协议下载应用程序为 qBittorrent,使用的容器镜像为 linuxserver/qbittorrent:4.5.0

本流程不适用 PT,PT 可参考典型 PT 下载部署流程


如果遇到内存占用庞大或任务丢失的问题,可尝试使用 linuxserver/qbittorrent:4.5.2-libtorrentv1 镜像。

§定义真公网

此处将真公网定义为:FullCone NAT,在关闭防火墙的情况下任意外部 UDP 请求均可正常链接到本机,路由跟踪第一跳是本机地址且直到下一个公网地址之前都是网关地址。如果感觉不好理解的话,可以简单类比,如果这台机器可以用于开设游戏私服且不需要任何第三方网络工具(如 FRP、zerotier、DDNS),那么就可以认为是真公网。

实际上没有真公网的说法,公网就是公网,私网就是私网,但是国内 CGNAT 情况严重,很多人以为的公网实际上是共享公网(常见 183、171、125 开头)甚至私网(常见 100.64 开头)。我有开设 CSGO 服务器,部分服务器需要加白 IPv4 /24 才能进入,群里面能经常看到服务器内地址播报显示的 IP 与玩家自己在光猫 WAN 口看到的公网 IPv4 不一致。

真公网的情况下 BT 协议才能达到最高效率,热门资源加上 tracker 一般能跑满带宽。

§创建容器

创建并启动容器

shellcrctl run \
--detach \
--name qbittorrent \
--log-driver json-file \
--log-opt max-size=32m \
--log-opt max-file=7 \
--network host \
--hostname qbittorrent \
--volume /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro \
--volume /data/container-mount-points/qbittorrent-config:/config:rw \
--volume /data/container-mount-points/qbittorrent-downloads:/downloads:rw \
--env TZ=Asia/Shanghai \
--env WEBUI_PORT=49201 \
--env PUID=0 \
--env GUID=0 \
--cpus 1 \
--memory-reservation 3g \
--memory 4g \
linuxserver/qbittorrent:4.5.2

如果使用的是 docker 或 podman 命令行,自行替换掉 crctl。

PUID、GUID 按实际情况设置。

WEBUI_PORT 按自己喜好设置。

处理器和内存按 1:4 配置,但实际上处理器仅在校验时消耗较多,我自己实际上分配 1 线程与 8 GiB 内存,运行情况良好。

正常情况下此时容器已经启动,可通过服务器地址加端口的形式进行直接访问,初始用户名密码为 admin 与 adminadmin

qBittorrent 主界面
qBittorrent 主界面

下列选项基于 1 线程与 4GiB 配置,同时下载优先,上传限制。

§下载选项

  • (勾选)为所有文件预分配磁盘空间
  • (勾选)为不完整的文件添加扩展名 .!qB
  • (填写)保存未完成的 torrent 到:/downloads/_incomplete_/
  • (可选填写)复制下载完成的 .torrent 文件到:/downloads/_torrent_/

§连接选项

  • (选择)下载连接协议:TCP 和 μTP
  • (可选填写)用于传入连接的端口:59681(默认端口易受 QOS 限制)
  • (可选勾选)使用我的路由器的 UPnP / NAT-PMP 功能来转发端口(如果是真公网一定要取消勾选此项,除此之外的情况一律勾选)
  • (填写)全局最大连接数:512(同时开启的链接太多会大量消耗处理器资源)
  • (填写)每 torrent 最大连接数:64
  • (填写)全局上传窗口数上限:4
  • (填写)每个 torrent 上传窗口数上限:2

§BitTorrent 选项

  • (勾选)启用 DHT (去中心化网络) 以找到更多用户
  • (勾选)启用用户交换 (PeX) 以找到更多用户
  • (可选勾选)启用本地用户发现以找到更多用户
  • (勾选)Torrent 排队
  • (填写)最大活动的下载数:9
  • (填写)最大活动的上传数:3
  • (填写)最大活动的 torrent 数:12
  • (可选填写)当分享率达到:1
  • (可选填写)当做种时间达到:720
  • (填写)自动添加以下 tracker 到新的 torrent:(详见下方)

§高级选项

  • (选择)网络接口:enp0s1(以实际物理网卡为准)
  • (选择)绑定到的可选 IP 地址:所有地址
  • (填写)保存恢复数据间隔:15(固态建议 15,机械不超过 60)
  • (可选勾选)完成后重新校验 Torrent
  • (可选勾选)解析用户所在国家
  • (勾选)当 IP 或端口更改时,重新通知所有 trackers
  • (填写)异步 I/O 线程数:2(分配的处理器数量 * 2)
  • (填写)散列线程:1
  • (填写)文件池大小:512(相当于文件描述符数量,但比这个要少)
  • (填写)校验时内存使用扩增量:32
  • (填写)磁盘缓存:64(机械盘 64,固态盘 256)
  • (可选勾选)启用操作系统缓存(如果机器没法保证稳定运行则取消勾选,其它情况建议勾选)
  • (勾选)合并读写
  • (勾选)使用块扩展数据块关联
  • (勾选)发送分块上传建议
  • (选择)μTP-TCP 混合模式策略:优先使用 TCP
  • (取消勾选)支持国际化域名
  • (取消勾选)允许来自同一 IP 地址的多个连接
  • (勾选)验证 HTTPS tracker 证书
  • (勾选)服务器端请求伪造(SSRF)攻击缓解
  • (勾选)禁止连接到特权端口上的 Peer
  • (选择)上传窗口策略:固定窗口数
  • (选择)上传连接策略:反吸血
  • (勾选)总是向同级的所有 Tracker 汇报
  • (勾选)总是向所有等级的 Tracker 汇报

§推荐的 tracker 列表

plainhttp://sukebei.tracker.wf:8888/announce
udp://mts.tvbit.co:6969/announce
udp://tracker.openbittorrent.com:6969/announce
udp://www.torrent.eu.org:451/announce
http://nyaa.tracker.wf:7777/announce
http://anidex.moe:6969/announce
udp://tracker.opentrackr.org:1337/announce
http://tracker.dler.org:6969/announce
udp://exodus.desync.com:6969/announce
udp://ipv4.tracker.harry.lu:80/announce
udp://open.stealth.si:80/announce
udp://tracker.moeking.me:6969/announce
udp://tracker.tiny-vps.com:6969/announce
udp://tracker.torrent.eu.org:451/announce
udp://opentor.net:6969
udp://tracker.openbittorrent.com:80/announce
http://tracker.openbittorrent.com:80/announce
udp://opentracker.i2p.rocks:6969/announce
作者
ragnaroks
发布时间
2022-08-01
更新时间
2022-12-05
创作协议