通过 USB CH341(1a86:5512)连接 MFi 模块,在 Linux / NAS 的 Docker 中提供认证服务。
从 Releases 最新版 下载 remote-mfi-docker-v1.0.3.zip 并解压,进入包含 Dockerfile、compose.yaml 和 mfi_service/ 的目录。只复制 Compose 文本不能构建。
将模块插到运行 Docker 的 Linux 主机,执行 lsusb,确认显示 1a86:5512。
编辑 compose.yaml,将 MFI_AUTH_TOKEN: "CHANGE_ME" 改为自己生成的至少 24 字符令牌:
openssl rand -hex 32不需要创建 .env;不要在令牌前加 $,也不要让两个 MFi 服务同时占用同一模块。
飞牛 NAS:打开 Docker → Compose → 创建项目,项目目录选择上一步解压后的源码目录,选中 compose.yaml 后构建、启动。
普通 Linux:在上述源码目录运行:
docker compose config --quiet
docker compose up -d --build
docker compose ps
docker compose logs --tail=50 mfix86-64 / ARM64 使用默认 Compose。32 位 ARMv7 使用:
docker compose -f compose.yaml -f compose.armv7.yaml up -d --build首次构建需要下载镜像和 Python 依赖。已取得 x86 离线镜像的用户可按 离线部署步骤 跳过构建。
在运行 Docker 的主机执行:
curl -i http://127.0.0.1:8787/healthzHTTP 200 且响应中包含 "ready":true 表示芯片初始化与自检成功。容器显示 healthy 后,再配置客户端连接。
默认 Docker 映射 TCP 8787 到主机所有网络接口,同一局域网设备可直接打开 http://NAS内网IP:8787/healthz。公网直连需要在服务器防火墙或路由器放行 TCP 8787;没有公网 IP 则通过 VPS 中转。
公网服务器直连或 NAS 经公网服务器中转的具体操作见 远程部署教程。客户端填写服务基础地址和 Compose 中的令牌;地址后面不要加 /mfi 或 /healthz。
| 现象 | 检查 |
|---|---|
Dockerfile: no such file |
解压完整源码,使用含 Dockerfile 的目录 |
variable is not set |
令牌误写成 $ 或 ${…} |
503 / ready:false |
CH341 USB 连接、Docker USB 权限、芯片占用 |
| 401 | 客户端令牌是否与 Compose 一致 |
| 502 | 公网代理与 SSH 中转是否连接 |
| 外部访问超时 | 端口绑定、路由器端口转发、防火墙 |
停止:docker compose down。注意:HTTP 连接上的认证令牌并不加密。