Motrix 是一款基于 aria2 的下载工具,支持 HTTP、FTP、BT、磁力链等多种资源下载,界面简洁易用。
Motrix 在 v1.8.19 版本中开始支持 arm64 设备,可以在树莓派等设备上运行。树莓派功耗低、运行安静,很适合 24 小时运行下载服务。由于我的树莓派没有安装桌面系统,所以通过 docker-baseimage-gui 项目制作了一个 docker 镜像。docker-baseimage-gui 提供了集成轻量级桌面环境、VNC 服务和 Web 访问功能的基础镜像,专门用于在无头服务器上运行 GUI 应用。
项目是开源的,具体实现可以查看:eMUQI/motrix-arm64-vnc
使用说明
以下以我的树莓派 5 为例:
Raspberry Pi 5 Model B Rev 1.0
OS: Debian GNU/Linux 12 (bookworm) aarch64
Kernel: 6.12.34+rpt-rpi-2712
1. 前置条件
请确保您的宿主机系统已安装 Docker 及 Docker Compose。
2. 创建并配置 docker-compose.yml
在宿主机上创建项目目录,并在该目录中新建 docker-compose.yml
文件。
mkdir motrix-server
cd motrix-server
touch docker-compose.yml
将以下内容写入 docker-compose.yml
文件:
docker-compose.yml
services:
motrix:
image: emuqi/motrix-arm64-vnc:latest
container_name: motrix-vnc
ports:
# 5800: 用于 noVNC (Web 浏览器) 访问的端口
- "5800:5800"
# 5900: (可选) 用于标准 VNC 客户端直接访问的端口
- "5900:5900"
volumes:
# 将宿主机的 ./data 目录映射到容器的 /config/Downloads 目录
# 用于持久化存储下载的文件
- ./data:/config/Downloads
environment:
# 关键:设置容器内应用的用户与用户组 ID。
# 建议修改为宿主机当前用户的 UID 和 GID,以避免挂载目录的权限冲突。
# 可在宿主机终端执行 `id` 命令获取。
- USER_ID=1000
- GROUP_ID=1000
# 设置 VNC 会话的显示分辨率
- DISPLAY_WIDTH=1280
- DISPLAY_HEIGHT=720
# (可选) 设置 VNC 访问密码。取消注释并替换为强密码。
# - VNC_PASSWORD=your_secret_password
restart: unless-stopped
3. 启动容器服务
在 docker-compose.yml
文件所在的目录下,执行以下命令以启动服务:
docker compose up -d
访问方式
Web 浏览器 (noVNC): 访问
http://<宿主机IP地址>:5800
VNC 客户端: 使用 VNC 客户端 (如 RealVNC Viewer, TigerVNC) 连接至
vnc://<宿主机IP地址>:5900
关键配置:设定下载路径
为确保下载文件能正确保存至宿主机映射目录,首次启动后必须在 Motrix 应用内完成以下配置:
在 Motrix 图形界面中,导航至 偏好设置 -> 基础设置。
定位到 下载路径 选项,点击 “更改”。
将路径手动设置为容器内部的绝对路径:
/config/Downloads
。保存并应用设置。
此操作仅需配置一次。完成后,所有下载任务产生的文件,都将被保存在您之前创建的
motrix-server
项目目录内的data
文件夹中。
其他提示
noVNC 不支持传统意义上的直接、无缝剪贴板调用。这主要是由于现代网页浏览器的安全限制。
当你通过浏览器访问此项目时,需要通过以下方式将下载链接复制 Motrix:
在你的本地电脑上复制文本。
打开 noVNC 界面侧边的控制条,找到剪贴板工具。
将文本粘贴到 noVNC 的剪贴板文本框中。
此时,文本被发送到远程服务器的剪贴板。你现在可以在远程桌面环境中使用粘贴命令(如 Ctrl+V)来粘贴内容。
环境变量参考
环境变量 | 描述 | 默认值 |
---|---|---|
USER_ID |
定义容器内运行 Motrix 进程的用户 ID (UID)。 | 1000 |
GROUP_ID |
定义容器内运行 Motrix 进程的用户组 ID (GID)。 | 1000 |
DISPLAY_WIDTH |
VNC 会话的屏幕显示宽度(单位:像素)。 | 1280 |
DISPLAY_HEIGHT |
VNC 会话的屏幕显示高度(单位:像素)。 | 720 |
VNC_PASSWORD |
为 VNC 服务设置连接密码。若留空或注释,则无需密码即可访问。 | (未设置) |