前言:为什么又要折腾?
最近把手里的下载机迁移到了飞牛NAS (FnOS)。本来以为是个简单的迁移工作:装个 Docker,拉个镜像,挂载个硬盘,齐活。
结果没想到,这竟然是长达数天折腾的开始。从虚拟机版 QB 迁移到 Docker 版,经历了 MoviePilot 连不上、刮削失败、PT 站红种、有连接没速度等一系列“史诗级”灾难。
好在,经过几十轮的调试(和某 AI 陪练的疯狂排查),终于打通了任督二脉。现在的状态是:资源秒连,跑满宽带,硬盘静音。
为了防止以后自己忘了,也为了给同样用飞牛+Docker的朋友避坑,特此记录。
坑一:MoviePilot 与 QB 的“爱恨情仇”
现象: MoviePilot (MP) 部署后,刮削不到 TMDB(因为墙),下载任务也传不到 QB。
原因分析: 我的网络环境是 iKuai 主路由 (192.168.2.1) + OpenWrt 旁路由 (192.168.2.252)。
-
QB 为了保住 PT 站的 IP 考核,必须走主路由(直连)。
-
MP 为了刮削海报,必须走旁路由(代理)。
-
一旦把 MP 的网关设为旁路由,它和走主路由的 QB 就出现了网络隔离,且 MP 经常出现 DNS 解析超时。
解决方案:
-
MP 走代理配置:MP 不需要改网关,直接在
设置 -> 高级 -> 网络里填入 OpenWrt 的 HTTP 代理地址(如http://192.168.2.252:7893)。 -
取消验证:OpenClash 如果有密码,MP 会报错
407 Proxy Authentication Required,记得在 OpenClash 覆盖设置里把认证清空。
坑二:满屏红种,Tracker 超时
现象: Docker 版 QB 启动后,馒头(M-Team)的所有种子 Tracker 状态全是红色的 timed out,日志显示连不上服务器。
原因分析: Docker 容器内的 DNS 解析出了问题。
-
要么是解析到了 OpenClash 的 Fake-IP (
198.18.x.x),导致主路由无法路由。 -
要么是运营商 DNS 阻断了 PT 站的 Tracker 域名。
解决方案:Hosts 大法 既然 DNS 不靠谱,直接在 Docker Compose 里把能用的 IP 写死! 在电脑上 ping 通了馒头的 tracker 域名,拿到 IP(例如 104.20.22.25),然后写入配置:
extra_hosts:
– “tra1.m-team.cc:104.20.22.25”
– “kp.m-team.cc:104.20.22.25”
坑三:终极BOSS——有连接没速度
现象: 这是最搞心态的。Tracker 绿了,连接数也有几十个,但下载速度只有几百 KB/s,甚至经常归零。而且机械硬盘会有轻微的“炒豆子”声。 哪怕我把内存缓存加到 4GB,连接数加到 200,依然无法跑满带宽。相比之下,之前的虚拟机版本却很快。
核心原因:内核版本差异(玄学之源)
-
latest 镜像 (v2 内核):目前
linuxserver/qbittorrent:latest默认使用 libtorrent v2 内核。这个内核使用内存映射技术,对 SSD 友好,但极度讨厌机械硬盘。在 NAS 环境下,它会导致 IO 瓶颈,速度根本跑不起来。 -
老版本 (v1 内核):经典的 4.3.9 时代。它利用操作系统缓存(Page Cache),非常适合大内存的 NAS,既保护硬盘又跑得快。
解决方案:降级!降级! 不要迷信新版本,PT 圈的真理是 libtorrent v1。
📝 最终作业:黄金配置
这是我目前稳定运行的 Docker Compose 配置,直接抄作业即可:
镜像选择: linuxserver/qbittorrent:libtorrentv1 (官方专门维护的 v1 内核版)
version: “3”
services:
qbittorrent:
# 核心:锁定 v1 内核,解决卡硬盘、速度慢的问题
image: linuxserver/qbittorrent:libtorrentv1
container_name: qbittorrent
environment:
– PUID=0
– PGID=0
– TZ=Asia/Shanghai
– WEBUI_PORT=8080
volumes:
# 建议用新目录,避免旧配置冲突
– ‘/vol2/1000/docker2/Qb_v1_final/config:/config’
– ‘/vol3/1000/PT:/downloads’
restart: unless-stopped
networks:
qb_fixed_net:
ipv4_address: 192.168.2.247
# 解决 Tracker 连不上的问题
extra_hosts:
– “tra1.m-team.cc:104.20.22.25”
– “kp.m-team.cc:104.20.22.25”
networks:
qb_fixed_net:
driver: macvlan
driver_opts:
parent: enp2s0-ovs # 换成你的网卡名
ipam:
config:
– subnet: 192.168.2.0/24
gateway: 192.168.2.1 # 强制走主路由,不走代理
⚙️ 软件内部关键设置 (v1内核版)
部署好后,进入 QB 网页端,改这几个地方(缺一不可):
-
高级 -> 验证 HTTPS tracker 证书:[取消勾选] (必须去勾,否则连不上 Tracker)。
-
高级 -> 磁盘 IO 读/写模式:[启用操作系统缓存] (注意:v1 内核要启用!利用飞牛的大内存来加速,这和 v2 内核完全相反)。
-
高级 -> μTP-TCP 混合模式:选 [TCP 和 μTP]。
-
连接数设置:
-
全局连接数:建议 200~500。
-
Socket backlog:建议 1024。
-
磁盘队列:建议 8192 KiB。
-
内存限制(如果有):给足 4GB 以上。
-
总结
折腾这一圈的教训是:
-
网络隔离要清晰:MP 走代理,QB 走直连,不要混用网关。
-
Docker 内网 DNS 不可信:遇到连不上,Hosts 大法最稳。
-
新版本不一定好:对于挂机械硬盘的 NAS 来说,QB 的 libtorrent v1 内核 才是永远的神。
现在看着飞牛里跑满的下载速度,终于可以安心看电影了。🍻






