沉寂三年后突然诈尸,Motrix 下载器重生了
一句话定位:Motrix 是一款现代化的全功能下载管理器,沉寂三年多的 v1.x 系列最近突然"诈尸",2.0 版本用 Electron 44 + React 19 + TypeScript 完全重写,支持 HTTP、FTP、BitTorrent、magnet 链接,同时推出桌面应用和 Docker 无头服务器两种运行模式。
昨天看到推文说,Motrix 沉寂三年多,这两天突然开始疯狂更新——从 beta.1 一口气推到 beta.14,最新的 commit 到今天还在继续发。
我去 GitHub 看了一眼:agalwood/Motrix,这个项目最近一个月确实非常活跃,10 月 2 号刚发了 v2.0.0-beta.46,提交数超过 1400 个,看起来是真在往正式版冲刺。
一、v1 到 v2 发生了什么
先说说背景。Motrix v1.x 用的是旧版 Electron,架构比较传统——UI 和下载引擎耦合在一起,功能虽然有但扩展性有限。v1.8.19 是最后一个正式发布的稳定版,之后项目沉寂了大约三年,中间只有零星的 issue 回复,基本处于无人维护的状态。
然后今年 8、9 月开始,项目突然加速。README 里也提到了一个关键信息:Motrix Turbo 就是 v2 的代号——整个从地面重建,下载核心完全独立出来,不再绑死在 UI 层。
这个架构拆分带来了几个直接好处:
- 浏览器扩展可以独立存在——Chrome、Edge、Firefox(Manifest V3)都能装,拦截下载链接后通过 MDXP 协议交给桌面应用处理。
- 命令行工具也有了——
npm install -g @motrix/cli装完就能用,脚本化下载变得可行。 - 插件系统是正经的沙箱机制——用 QuickJS-Emscripten 隔离运行,不是随便塞个 JS 文件进去就跑。
二、技术栈有多新
这次重写把能用的最新框架全用上了:
| 组件 | 版本 | 说明 |
|---|---|---|
| Electron | 44 | 比 v1 的 Electron 22 整整跨了两代 |
| React | 19 | 用了 Concurrent Features 等新特性 |
| TypeScript | strict mode | 全量严格模式,类型安全有保障 |
| 构建工具 | Vite 8 | 分离 main / preload / worker / renderer 四个目标 |
| 下载引擎 | aria2 fork | Motrix 自己维护的 aria2 分支 |
| 数据持久化 | better-sqlite3 | 下载会话恢复靠它 |
| 插件沙箱 | QuickJS-Emscripten | 隔离运行,不能乱访问系统 |
| 服务端运行时 | Node.js + Fastify | Docker 无头模式的后端 |
亮点:架构分了四层——renderer(React UI)、app core(任务/设置/插件/桥接)、engine adapter(引擎适配器)、aria2(下载引擎)。CI 会强制检查依赖边界,为将来可能的 Rust 重写留好了路。
三、MDXP 是什么
这个协议名听起来挺唬人,其实就是 Motrix Download eXchange Protocol——基于 JSON-RPC 2.0 的一套通信协议,专门让浏览器扩展和 CLI 客户端跟桌面应用对话。
典型场景是这样的:
- 你在浏览器里看到一张图片,右键选"用 Motrix 下载"
- 浏览器扩展拦截到这个请求,把 URL 通过 MDXP 发给桌面应用
- 桌面应用接过来,交给 aria2 引擎去下载
- 进度实时反馈回浏览器扩展的侧边栏
整个过程不需要你切到 Motrix 窗口,浏览器扩展就像个遥控器一样。
协议层用了 Zod 4 做所有数据类型校验——设置、IPC 消息、wire schema 全部有严格类型约束,不会出现"传了个错字段结果崩掉"的问题。
四、两种运行模式
桌面应用
这是最常见用法——macOS、Windows、Linux 都有安装包。
Windows 用户注意:x64 版本目前未签名,第一次打开可能会触发 SmartScreen 警告,点"仍要运行"即可(这也是开源桌面软件的常见状况)。ARM64 和 32 位版本暂时不提供。
macOS 有 Universal 包(Intel + Apple Silicon 通用),Linux 除了 x86_64 还支持 arm32、arm64 和 armv7l。
Docker 无头服务器
这个才是 v2 真正的杀手锏之一。你可以把 Motrix 跑在任何一台有 Docker 的机器上——NAS、树莓派、家用服务器都行——然后通过 Web UI 或者远程客户端来管理下载任务。
官方推荐的启动方式:
1 | mkdir -p motrix-data downloads |
运行时的容器非 root,根文件系统只读,还有挂载点权限校验——安全性和普通下载管理器不是一个量级的。
Web 服务跑在 8080,MDXP 协议端口是 16801。如果公网 URL 暂时不可达,还可以用 SSH 手动审批远端客户端配对码,不需要额外开端口。
场景建议:如果你有一台 24 小时开机的 NAS 或者 VPS,把 Motrix Server 部署上去,手机、电脑、浏览器都能看到下载进度,回家也能随时管理任务,比单纯用桌面应用灵活得多。
五、生态工具链
v2 不只是改了桌面应用,整个生态都重新梳理了一遍:
- @motrix/mdxp——共享协议库,定义 JSON-RPC 2.0 的 wire schemas 和 Zod 类型
- @motrix/cli——命令行工具,
motrix命令,自动发现本地桌面应用或远端实例 - Motrix Extension——浏览器扩展,Chrome / Edge / Firefox(Manifest V3),拦截下载并对接桌面应用
- Motrix Plugin SDK——四个 npm 包,包括 manifest schema、API、CLI 和脚手架工具
- 内置插件——目前三个:文件名模板(下载前按规则重命名)、页面爬虫(从 HTML 提取直链)、URL 解析器(媒体解析基础组件)
- 插件注册表——
dl.motrix.app/registry/plugins.json,官网和应用内市场都从这里拉取
插件机制设计上走的是"签名"路线——官方插件用 .moext 打包,经过签名验证后才允许安装,防止恶意插件注入。
六、开发环境怎么搭
项目对 Node.js 版本有硬性要求:22 或以上,包管理器用 pnpm(具体版本看 package.json 的 packageManager 字段)。
1 | git clone https://github.com/agalwood/Motrix.git |
测试套件用 Vitest 做单元测试,Playwright 做 E2E,代码规范用 Biome 检查。开发体验和主流前端项目没差。
七、值得等正式版吗
Motrix 这次的重写不是小修小补——从 Electron 22 跳到 44,架构彻底翻新,协议层全新设计。项目最近一个月 Commit 密度非常高,beta 版本已经推到 46,说明核心团队确实在全力推进。
如果你之前用过 v1.x,这次 v2 的改动值得你重新试试看;如果你一直没接触过 Motrix,beta.46 已经能正常下载 HTTP / FTP / 种子 / magnet,基础体验是完整的。正式版什么时候发布不好说,但看这个速度,应该不会太久。
Electron 44 + React 19 重写的现代化下载管理器,支持 HTTP / FTP / BT / magnet,桌面 + Docker 双模式运行。





