QUICK ANSWER
NAS 上装什么,散帅才能连接?
最直接的选择是 Navidrome 或 Jellyfin。如果主要管理音乐,Navidrome 更轻量,并通过 Subsonic / OpenSubsonic 兼容 API 向客户端提供资料库;如果 NAS 已经用 Jellyfin 管理电影、电视剧和音乐,可以直接继续使用 Jellyfin。OpenSubsonic 本身是一份 API 规范,不是需要单独安装的服务器。
OpenSubsonic、Navidrome 和 Jellyfin 是什么关系?
客户端与服务器如何认证、列出专辑、搜索、获取封面和播放音频的开放 API 规范。它定义“怎么沟通”,不负责扫描你的硬盘。
专门管理个人音乐收藏的自托管服务器。它扫描音乐文件,并提供兼容 Subsonic / OpenSubsonic 生态的接口。
覆盖视频、电视与音乐的自托管媒体服务器。它使用自己的服务器 API,不是 OpenSubsonic 服务器。
所以,正确流程不是“安装 OpenSubsonic”,而是安装兼容服务器,然后让散帅按对应服务器类型连接。不同服务器对扩展能力的实现可能不同,兼容某个 API 不代表每一项扩展都完全一致。
部署前需要准备什么?
- 确认处理器架构
Navidrome 官方镜像覆盖常见 amd64 与 arm 架构;Jellyfin 也提供多架构官方镜像。老旧或特殊架构 NAS 应先核对镜像支持。
- 准备两个目录
一个持久化目录保存数据库、配置和缓存;一个音乐目录保存音频文件。音乐目录建议先以只读方式挂载。
- 确认文件权限
容器使用的 UID:GID 必须能读取音乐目录并写入配置目录。`1000:1000` 只是示例,不应不加核对地复制。
- 保留固定局域网地址
可在路由器为 NAS 保留 DHCP 地址,避免 NAS IP 改变后客户端失联。
- 先做局域网部署
确认扫描和播放正常后,再考虑 HTTPS、VPN 或反向代理。不要一开始就把服务端口直接暴露到公网。
如何用 Docker Compose 部署 Jellyfin?
如果你希望用同一服务器管理音乐和视频,可以选择 Jellyfin。示例只映射散帅连接所需的 8096/TCP;7359/UDP 用于局域网自动发现,不是手动填写服务器地址的必要条件。
services:
jellyfin:
image: jellyfin/jellyfin:10.11
container_name: jellyfin
user: "1000:1000"
ports:
- "8096:8096/tcp"
restart: unless-stopped
volumes:
- /YOUR_APP_DATA/jellyfin/config:/config
- /YOUR_APP_DATA/jellyfin/cache:/cache
- /YOUR_MUSIC:/media:ro启动后打开 http://NAS-IP:8096,完成初始化向导,创建用户,并添加“音乐”媒体库。选择文件夹时使用容器内部路径 /media,不要填写宿主机上的 `/YOUR_MUSIC`。
官方镜像支持固定版本、次版本和 `latest` 标签。示例固定在 10.11 次版本线以降低意外跨版本升级风险;升级前应备份 `/config`,并阅读当前版本说明。
飞牛、群晖和其他主流 NAS 分别从哪里部署?
| NAS 系统 | 推荐入口 | 需要注意 |
|---|---|---|
| 飞牛 fnOS | 在应用中心启用 Docker,进入 Docker 的 Compose / 项目页面,粘贴或导入 YAML。 | 在文件管理器中复制音乐与配置目录的原始绝对路径;不同 fnOS 版本的菜单名可能调整。 |
| 群晖 DSM 7.2+ | 安装 Container Manager,在“项目”中选择包含 `compose.yaml` 的共享文件夹并构建。 | 为容器用户授予共享文件夹读取权限;配置目录需要写入权限。 |
| QNAP QTS / QuTS | 在 Container Station 中选择 Create Application,粘贴 Compose YAML 并验证。 | 先建立持久化共享文件夹,确认端口没有被其他应用占用。 |
| TrueNAS SCALE | 优先查看 Apps Catalog;也可以使用 Custom App 的 Compose YAML 编辑器。 | 先选择 Apps 存储池,并为应用身份配置 dataset/host path 权限。 |
| Unraid | 通常通过 Community Applications 或“Add Container”逐项填写镜像、端口和路径。 | Unraid 官方文档说明它不原生提供 Docker Compose;应把 YAML 中的映射转换为容器表单字段。 |
无论使用哪种界面,本质上都要得到同样四项结果:正确镜像、持久化配置目录、只读音乐目录、可从局域网访问的端口。不要照抄别人的 `/volume1`、`/vol1` 或 `/mnt/user` 路径;它们必须换成你自己的目录。
平台资料:飞牛开发者 Docker 文档、Synology Container Manager Project、QNAP Container Station、TrueNAS Apps、Unraid Docker Overview。
服务器部署完成后,如何连接散帅播放器?
- 先用浏览器验证服务器
iPhone 与 NAS 连同一 Wi‑Fi,确认 Safari 能打开 Navidrome 或 Jellyfin 登录页。浏览器都打不开时,先不要排查散帅。
- 允许本地网络访问
首次访问局域网服务时,允许散帅使用 iOS 本地网络权限。
- 选择正确的服务器类型
Navidrome 选择 Navidrome / OpenSubsonic 兼容类型;Jellyfin 选择 Jellyfin。具体入口文字以当前 App 版本为准。
- 填写完整基础地址
Navidrome 示例:
http://192.168.1.20:4533;Jellyfin 示例:http://192.168.1.20:8096。如果反向代理使用子路径,地址也要包含子路径。 - 填写服务器账号
使用在 Navidrome 或 Jellyfin 中创建的账号,不是 NAS 系统管理员账号。建议为日常播放创建权限较小的独立用户。
- 连接并等待首次同步
大型音乐库第一次读取专辑、艺人和封面需要时间。先用一张已知专辑测试浏览与播放,再处理远程访问。
如何从外网安全连接 NAS 音乐服务器?
优先使用可信 VPN 回到家庭网络,或使用带有效证书的 HTTPS 反向代理。不建议把 4533、8096 等明文 HTTP 端口直接映射到互联网。
- 使用独立域名或明确的子路径,并在散帅里填写最终可访问地址;
- 使用受信任证书。自签名证书常导致移动客户端兼容问题;
- 为账号设置强密码,及时更新 NAS、容器镜像和反向代理;
- Navidrome 默认可以直接放在反向代理后;如果代理另做登录,不能误拦客户端需要的
/rest/*API; - Jellyfin 反向代理需要正确传递请求头;使用子路径时,客户端地址必须包含 Base URL;
- 不要在公开日志、截图或支持邮件中暴露密码、API Key、令牌和完整私人域名配置。
安全资料:Navidrome Externalized Authentication、Jellyfin Networking、Jellyfin Reverse Proxy。
连接失败时按什么顺序排查?
| 现象 | 先检查 |
|---|---|
| Safari 也打不开服务器 | 容器状态、端口映射、NAS 防火墙、IP 是否变化,以及手机是否处于同一局域网。 |
| 网页能打开,散帅提示无法连接 | 服务器类型、地址中的 http/https、端口、子路径、本地网络权限和证书是否有效。 |
| 提示账号或密码错误 | 确认使用的是音乐服务器账号;重新输入,避免密码管理器附带空格。不要把 NAS 管理员账号当成媒体账号。 |
| 连接成功但音乐库为空 | 宿主目录是否映射到 `/music` 或 `/media`、容器是否有读取权限、服务器扫描是否完成。 |
| 能看到封面但无法播放 | 先在服务器网页端播放同一首歌;检查原文件、转码设置、反向代理超时和移动网络连通性。 |
| 局域网可以,外网不行 | VPN/反向代理、DNS、HTTPS 证书、端口和 Jellyfin 用户的远程访问权限。 |
如果仍无法定位,联系 [email protected] 时请提供 App 版本、iOS 版本、NAS 系统、服务器类型、局域网或外网场景、脱敏后的地址结构和错误提示。不要发送密码、令牌或未脱敏日志。
音乐、账号和播放数据会发到哪里?
散帅会直接连接你填写的 NAS 或音乐服务器,Himhuu 不作为音乐流量的中转站,也不会把个人音乐库、服务器账号或播放记录上传给 Himhuu。服务器地址和连接设置保存在设备上,凭据或访问令牌保存在系统钥匙串。
但这不等于所有使用过程都“完全不联网”:你选择的 Navidrome、Jellyfin、反向代理、DNS 或远程访问服务可能处理连接日志;当服务器缺少歌词或封面并触发散帅的在线查询时,第三方服务可能收到歌曲名、艺人、专辑名或时长。完整边界以散帅播放器隐私政策为准。
常见问题
OpenSubsonic 需要在 NAS 上单独安装吗?
不需要。OpenSubsonic 是 API 规范。你需要安装 Navidrome 等兼容服务器,再用支持该协议的客户端连接。
Navidrome 和 Jellyfin 应该选哪个?
只想管理音乐并重视轻量体验时可优先考虑 Navidrome;已经使用 Jellyfin 管理多种媒体时,可以直接建立音乐库并连接。最终选择还取决于你的 NAS 性能和现有服务。
散帅连接 Navidrome 时要在地址后面加 /rest 吗?
通常不需要。填写 Navidrome 的基础地址即可,例如 http://192.168.1.20:4533。只有反向代理明确配置了子路径时才把该子路径写入地址。
为什么不建议把 NAS 端口直接开放到公网?
直接暴露服务会扩大攻击面,而且明文 HTTP 无法保护账号和媒体请求。优先使用 VPN,或使用正确配置、带有效证书的 HTTPS 反向代理。
音乐目录为什么建议只读挂载?
服务器通常只需要读取音频和元数据。只读挂载能降低错误配置或服务漏洞修改原始音乐文件的风险;数据库、缓存和服务器设置另存到可写配置目录。
这份 Compose 可以直接复制吗?
结构可以复用,但路径、UID:GID、镜像版本和端口必须按你的 NAS 调整。部署前备份配置,并以项目当前官方文档为准。