qBittorrent / WebUI 与 API

WebUI 与 API:把 BT 客户端变成可远程操作的服务

qBittorrent 的远程能力不是外挂:Web UI(src/webui/www)与 WebAPI 是同一套后端,无界面版 qbittorrent-nox 就是靠它操作的。官方维护独立的 WebAPI_Changelog.md,当前 API 版本为 2.16.2,端点覆盖偏好设置、任务、传输会话、同步、搜索与 RSS。能力越强,暴露面越大——这一页把「怎么用」和「怎么别被扫到」放在一起讲。

WebAPI 2.16.2RSS 规则可导入导出搜索插件需 Python暴露公网前先做访问控制
nox 后端无图形界面运行,持续做种
Web UI浏览器界面,与 API 同一后端
WebAPI脚本与第三方客户端调用
访问控制账号 / 来源限制 / 反向代理
远程访问结构示意(依据仓库 src/webui/ 目录结构与 WebAPI_Changelog.md);示意非官方架构图,端点与参数以你所装版本的 API 文档为准。
qBittorrent · Why

什么情况下需要 Web UI / API

先把场景想清楚,再决定开不开——这是安全的第一步。

场景用哪个能力收益代价 / 风险
NAS 上没有桌面环境Web UI(配合 nox 构建)全部操作可视化Web UI 端口必须做访问控制
在公司/手机上添加任务Web UI 或 API不用回家也能加种子意味着该服务在网络上可达
自动下载订阅内容RSS 自动下载规则新内容出现即下载规则里放什么源完全由你负责
批量脚本、面板集成WebAPI可接入自己的工具链API 凭据泄露等于把客户端交出去
把搜索能力接进自己的流程search 相关端点 + 搜索插件可程序化发起搜索搜索结果怎么用与合法性由你判断
一个判断标准:问自己「如果这个端口被陌生人访问到,最坏会怎样」。答案通常是「他可以用你的带宽/IP 下载任意内容」——这就是为什么本节末尾的暴露面清单比配置步骤更重要。
qBittorrent · API

WebAPI 端点有哪些(基于 2.16.2)

端点很多,但按前缀只有几类。下表按用途归类,并标出写脚本时最容易踩的点。

前缀 / 端点用途写脚本时的注意点近期变化(来自官方 changelog)
app/preferencesapp/setPreferences读取/写入客户端全部偏好选项会随版本增减,硬编码字段名容易失效新增 I2P 相关选项、Web UI 会话数上限等
torrents/add 等任务端点添加、暂停、删除、查询任务参数随版本变化:seedMode 新增、skip_checking 移除2.16.0 明确调整了这两个参数
transfer/pauseSessiontransfer/resumeSession整会话暂停/恢复与「暂停单个任务」不是一回事2.16.2 新增
sync/maindata增量同步主数据(做面板必备)适合轮询,但要注意频率新增 session_state 字段
search/statussearch/downloadTorrent搜索任务状态与结果处理部分端点只接受 POST2.16.0 起 search/downloadTorrent 仅接受 POST
rss/*(含 exportRules/importRulesRSS 订阅与自动下载规则管理importRules 只接受 POST2.16.2 新增规则导入导出
app/setPreferences 中的备份项.torrent 文件备份与完成后转移适合长期保种的场景2.16.0 重构了 .torrent 备份管理
API 版本兼容:官方单独维护 WebAPI_Changelog.md,说明这门接口在持续演进。写脚本前先确认「你的客户端版本对应的 API 版本」,并给对方留出兼容余量——本站不复制官方 API 文档全文,请以仓库内该文件为准。
qBittorrent · Setup

开启远程访问的五个步骤

顺序很重要:先加固,再开放。

  1. 先决定「谁来访问」

    只在局域网用?还是要从公网访问?前者可以简单些,后者必须配合反向代理与额外的鉴权层。不要直接把管理端口暴露到公网

  2. 设置强口令并改默认凭据

    Web UI 的账号口令是唯一屏障,设置为不可猜测的长口令,并避免在多个服务里复用。

  3. 限制来源与协议

    能限制来源网段就限制;优先走 HTTPS(反向代理层提供证书),避免在明文 HTTP 上传输口令。

  4. 确认是否需要开 API

    只用人机界面的,就把用不到的接口访问路径收窄;要接脚本的,给脚本单独凭据并限制其权限范围。

  5. 做一次自测

    从未授权网络访问一次,确认拿到的是拒绝而不是登录页;同时检查客户端日志里是否出现大量异常登录尝试。

与 BT 端口区分开:BT 的监听端口需要对外可达(否则只能被动连别人、速度受限),而管理端口绝不该对公网开放。两者用途与风险完全不同,别混在一起配。
qBittorrent · Risk

qBittorrent 暴露面怎么自检

下面每一条都能在几分钟内自查完,建议开启远程之前逐项过一遍。

检查项不安全的样子改法最坏后果
默认凭据仍用初始账号口令,或口令很短改成强口令被扫描到即可被接管
直接暴露管理端口家用宽带上做端口映射到 Web UI走反向代理 + 额外鉴权;或只在局域网/VPN 内访问端口扫描机器人几分钟内就会找到
明文 HTTP口令与 Cookie 在网络上明文传输用 HTTPS同网络内可被截获
不限制来源任何 IP 都能拿到登录页限制来源网段或加访问控制层持续被撞库
API 凭据外泄把含凭据的脚本/配置提交到公开仓库凭据放环境变量或专用配置文件,并加入忽略清单等同把客户端操作权交出去
日志不看没有登录失败监控定期看日志里的异常尝试被持续尝试也毫无察觉
官方在安全上的态度:SECURITY.md 明确要求漏洞不要走公开 issue,而是用 GitHub 的私有漏洞报告功能或邮件 security@qbittorrent.org;CVE 也通过这个私有渠道申请与发布。并且安全策略只覆盖最新稳定分支——旧版本上的同类问题不会被修。这也是「及时升级」的直接理由。
qBittorrent · Automation

qBittorrent RSS 与搜索插件的自动化能力与边界说明

这两个功能常被当成「找资源」的入口,但它们本质上只是自动化工具,来源仍由你决定。

能力它做什么你需要自己负责的部分注意点
RSS 订阅 + 自动下载规则按规则从订阅源里自动挑条目下载订阅源的合法性、规则写得是否精准(避免下错一堆)规则可导出/导入,便于备份与迁移
内置搜索引擎 + 插件通过插件到各来源检索插件来源与你搜索用途的合法性构建时 Python ≥3.13.0 是可选依赖,仅搜索用
任务完成后的动作可与脚本/通知配合(如邮件通知)通知渠道的凭据与隐私邮件通知相关修复在 5.2.x 发布说明里出现过
.torrent 备份自动保存任务清单副本,完成时可移动到别处备份目录的容量与清理策略长期保种场景很实用,2.16.0 起相关设置被重构
本站不提供 RSS 源或搜索插件清单。原因和前面一致:这类来源的可用性、合法性与安全性都无法由本站持续核验。本站只讲工具怎么用、风险怎么控制。
qBittorrent · FAQ

qBittorrent WebUI 与 API 常见问题

端点与参数以仓库 WebAPI_Changelog.md 与你所装版本为准;本站未实机调用 API。

Web UI 和 API 是两套东西吗?

不是。它们在同一个后端之上:Web UI 是浏览器界面,WebAPI 是给脚本和第三方客户端用的接口,仓库里 src/webui/apisrc/webui/www 并存就是这个结构的体现。所以「Web UI 能做的事,API 基本也能做」——反过来也一样,这意味着加固 Web UI 时不能忽略 API

能不能把 Web UI 直接暴露到公网?

技术上可以,但风险很高:管理端口一旦被扫到,攻击者只需要口令就能用你的带宽和 IP 下载任意内容。稳妥做法是走反向代理加一层鉴权、或用 VPN 访问、或只在局域网内使用。qBittorrent 自身提供了账号口令与来源限制,但这不是让人把端口毫无防护地放上公网的许可。

API 版本号在哪里看?

官方仓库根目录有独立的 WebAPI_Changelog.md,按版本列出端点的增删改;当前版本为 2.16.2。写脚本时建议先对照该文件确认「你目标版本支持哪些字段」,因为这套接口在持续演进(例如 2.16.0 就改动了 torrents/add 的参数)。

RSS 自动下载会不会下到一堆不想下的东西?

会——规则的宽窄直接决定后果。建议先用很窄的规则试跑,确认匹配结果符合预期,再逐步放宽。规则支持导出/导入,方便你把验证过的配置备份下来。至于订阅什么源,本站不提供也不评价。

搜索插件需要额外装什么吗?

官方构建文档里写明 Python ≥3.13.0 是可选、仅运行期的依赖,用途就是内置搜索引擎。也就是说不用搜索引擎的话可以不装 Python。插件本身的来源与可用性请自行判断,本站不提供插件清单。

远程访问时怎么确认自己没被扫?

看两方面:①客户端日志里是否出现大量失败登录;②你的反向代理/防火墙日志里是否有来自陌生 IP 的高频请求。这两处任一出现异常,就说明你的端口已经在被扫描,应立刻收紧访问控制。这个自检属于「安全检查清单」的一部分。

发现安全问题该往哪报?

按官方 SECURITY.md不要走公开 issue,用 GitHub 的私有漏洞报告功能,或邮件 security@qbittorrent.org,并附上问题类型、复现步骤、PoC 与影响评估。CVE 的申请与发布也通过这条私有渠道完成。另外官方只维护最新稳定分支——所以先确认你的版本是否还在维护范围内。

下一步:没速度怎么排查

速度问题分四类:做种者太少、端口不通、Tracker/DHT 连不上、磁力还在拉元数据。逐类判断比反复重启有效得多。