面向 NAS 小白的完整手把手教程 · 附可复制命令 · Docker 与群晖套件双路线
吾韵 Soundery 是一款面向车机的音乐播放 App,它的核心能力是连接你自己的 Navidrome 音乐服务器,播放你自己收藏的音乐。
这样做的好处:
| 需要的东西 | 说明 |
|---|---|
| 一台 NAS | 群晖、威联通、极空间、绿联等品牌均可,只要能跑 Docker 或安装套件 |
| 音乐文件 | MP3 / FLAC / M4A 等常见格式,先整理到一个文件夹里 |
| 一台车机(Android) | 安装吾韵 Soundery App。手机端暂未适配界面,暂不支持(手机可用第三方 Navidrome 播放器替代,见 FAQ) |
| 一个 Tailscale 账号 | 用于内网穿透,免费,用邮箱即可注册(也可用节点小宝,见路径 C) |
Docker 是最通用、最稳定的方式,适用于群晖、威联通以及任何支持 Docker 的 NAS。先看一张总览图,了解完整流程:
整个流程里,只有第④步「创建容器并配置」需要你认真填对。下面这张「照填图」标出了三个必填项,照着填即可:
下面是两种部署写法,任选其一。如果你更习惯图形界面,跳过代码直接看后文「路线二」也可以。
在你的 NAS 的终端(或 SSH 连接)里,运行下面这条命令。注意把 /volume1/music 换成你自己的音乐文件夹真实路径。
docker run -d \
--name navidrome \
--restart unless-stopped \
-p 4533:4533 \
-e ND_SCANSCHEDULER=1h \
-e ND_LOGLEVEL=info \
-e ND_BASEURL="" \
-v /volume1/music:/music:ro \
-v /volume1/docker/navidrome/data:/data \
deluan/navidrome:latest
新建一个文件 docker-compose.yml,内容如下:
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
ports:
- "4533:4533"
environment:
ND_SCANSCHEDULER: 1h
ND_LOGLEVEL: info
volumes:
- /volume1/music:/music:ro
- /volume1/docker/navidrome/data:/data
然后在 docker-compose.yml 所在目录运行:
docker-compose up -d
| 参数 | 作用 |
|---|---|
-p 4533:4533 | 把容器的 4533 端口映射出来,App 连接时用这个端口 |
/volume1/music:/music | 把你 NAS 上放音乐的文件夹挂载进容器(左边是你的路径,右边固定是 /music) |
/data | Navidrome 的数据库和配置存放位置 |
ND_SCANSCHEDULER=1h | 每 1 小时自动扫描一次音乐库,新歌自动加入 |
/volume1/music 只是示例,群晖的共享文件夹真实路径通常是 /volume1/共享文件夹名,威联通是 /share/文件夹名。务必换成你自己的,否则容器里看不到歌。如果你用的是群晖,并且更习惯图形化操作,可以用套件源的方式(适合不想碰命令行的用户)。
部署完成后,打开浏览器访问 http://你的NAS内网IP:4533,你会看到 Navidrome 的登录界面。
/volume1/music)。打个比方:你的 NAS 就像一个放在自己家里的保险柜,只有「家里这间屋子」(你家的 WiFi/局域网)里的人能打开它。车机开着车在外面,等于站在屋子外面,够不着这个保险柜。
「内网穿透」就是想办法,让你人在外面也能安全地打开家里这个保险柜。
市面上做这件事的方法很多,但核心就三条路,难度和条件各不相同。先看总览图:
别被三个方案吓到,其实判断很简单,按顺序往下走:
什么是公网 IP?简单说,就是给你家宽带分配一个"全世界都能直接访问的地址"。有了它,车机在外面直接输入这个地址就能连到家里,最省事、速度也最快。
怎么申请:
拿到公网 IP 后要做两件事:
4533 端口,转发到 NAS 的内网 IP 的 4533 端口。这个在路由器后台「端口转发 / 虚拟服务器」里设置。之后车机里填的地址就是:http://你的公网IP:4533。
这是什么思路?现在几乎所有家庭宽带都已经支持 IPv6 了。IPv6 地址是"海量"的,你家每个设备都能分到一个全球唯一的 IPv6 地址——这天然就是"公网可达"的。问题是:IPv6 地址又长又会变,让人手填根本不可能。
于是有了 DDNS-GO 这个免费小工具:它自动检测你家 NAS 的 IPv6 地址,一旦变了就自动更新到"一个你记住的域名"上。以后你只需要记那个域名,不用管 IP 变不变。
example.com 举例——你实际买的叫什么,就填什么。这是"固定地址"的载体。test-ipv6.com,如果显示 IPv6 是通的,就可以走这条路。docker run -d \
--name ddns-go \
--restart unless-stopped \
--network host \
-v /volume1/docker/ddns-go:/root \
jeessy/ddns-go
部署后浏览器访问 http://NAS内网IP:9876,进入 DDNS-GO 的图形设置界面:
example.com,这里可以填 music.example.com——给音乐服务起个子域名,方便辨认。之后车机里填的地址就是:http://music.example.com:4533(把 example.com 换成你自己买的域名)。
这是最推荐的兜底方案:不依赖公网 IP、不依赖 IPv6,任何网络环境几乎都能用,而且最安全。原理是给 NAS 和车机拉一条"只有你能走的隐形专属通道"。先用一张图看懂这个原理(节点小宝、Tailscale 都是这么工作的):
这一类工具里,首推「节点小宝」——国产、全中文、界面极简,比 Tailscale(英文界面)对小白友好得多。
它是什么?节点小宝是一款国产的"内网穿透 + 异地组网"二合一工具,官网 iepose.com。最大特点:不用懂公网 IP、不用配路由器、不用碰命令行,装好登录就能用,全中文界面,小白秒上手。
owjdxb 容器);车机(Android)装节点小宝 App。100.66.x.x)。192.168.1.100:4533、会给你一个二级域名(形如 xxx.iepose.cn)。约 20 秒生效。之后车机里填组网 IP(http://100.66.x.x:4533)或穿透域名(http://xxx.iepose.cn:4533)就能连上。
如果更想用开源方案,Tailscale 和 ZeroTier 是同类工具,原理和上面那张图一模一样,效果相同,只是界面是英文的,操作稍繁琐些。下面以 Tailscale 为例说明:
Tailscale 官网是英文的,这是很多小白卡住的地方。别慌,下面用中文把每一步都标出来了:
tailscale.com,点右上角 Sign in(意思就是"登录")。Google 或 Microsoft(微软)账号一键登录。如果没有,注册一个免费的 Gmail 或 Outlook 邮箱即可。Machines(设备)列表,现在是空的,正常。Tailscale 安装(若搜不到,用下面 Docker 方式)。docker run -d \
--name tailscale \
--restart unless-stopped \
--network host \
--cap-add NET_ADMIN \
--cap-add NET_RAW \
-e TS_AUTHKEY=你的AUTHKEY \
-e TS_STATE_DIR=/var/lib/tailscale \
tailscale/tailscale:latest
NAS 装好 Tailscale 并登录账号后,回到 Tailscale 后台网页,在 Machines 列表里能看到 NAS 已加入,并被分配了一个 100.x.x.x 地址。记下这个地址,后面吾韵 App 要填它。
TS_AUTHKEY= 后面。这是让 NAS 自动登录账号的"口令",复制粘贴即可。100.x.x.x 地址。到这一步,车机和 NAS 已经在同一条「隐形通道」里了。不管车机在哪,只要有网络,就能通过那个 100.x.x.x 地址连到家里的 Navidrome。
如果更习惯 ZeroTier(另一个同类工具),原理完全一样:注册 → 创建网络 → 各设备加入同一 Network ID → 用分配的虚拟 IP 访问。两者选一个即可,Tailscale 对小白更友好。
不管你走哪条路,最终你都会得到一个「能连到家里 Navidrome 的地址」,把它和账号密码一起填进吾韵 App 就行。三种方案对应的地址长这样:
| 方案 | 吾韵 App 里「服务器地址」填什么 |
|---|---|
| 路径 A 公网 IP | http://你的公网IP:4533 |
| 路径 B IPv6+DDNS | http://music.你的域名:4533 |
| 路径 C P2P 打洞 | http://100.x.x.x:4533(或节点小宝给的 http://xxx.iepose.cn:4533) |
账号和密码,永远是你在 Navidrome 里创建的那个管理员账号,三种方案都不变。
| 填写项 | 填什么 |
|---|---|
| 服务器地址 | 根据你选的穿透方案填(见下表) |
| 账号 | Navidrome 管理员账号 |
| 密码 | Navidrome 管理员密码 |
| 你的情况 | 「服务器地址」填这个 |
|---|---|
| 在家(同一 WiFi) | http://NAS内网IP:4533 |
| 路径 A 公网 IP | http://你的公网IP:4533 |
| 路径 B IPv6+DDNS | http://music.你的域名:4533 |
| 路径 C P2P 打洞 | http://100.x.x.x:4533(或节点小宝给的 http://xxx.iepose.cn:4533) |
按顺序排查:① 确认 NAS 上 Navidrome 容器正在运行;② 确认端口 4533 正确;③ 家里场景用内网 IP,外面场景用你选的穿透地址(公网 IP / 域名 / 100.x.x.x);④ 若用路径 C,检查 Tailscale 两台设备是否都登录且在线;若用路径 B,确认车机当前网络有 IPv6。
通常是音乐文件格式不支持,或文件标签信息缺失。建议使用 MP3 或 FLAC,并用音乐标签工具(如 MusicBrainz Picard、MP3tag)补全歌名、歌手信息。
检查挂载路径是否正确,/volume1/music 这个左边路径必须是你 NAS 上真实存在的文件夹路径。
能申请到公网 IP 就选公网 IP(最快最省事);没有就看你车机有没有 IPv6,有就用 IPv6 + DDNS-GO;都不行就用 P2P 打洞(Tailscale),几乎任何环境都能用,是最稳的兜底。
个人使用免费(支持一定数量设备)。速度取决于两端网络,一般打洞成功后可跑满带宽,够听无损音乐。
暂时不支持。吾韵目前只针对车机屏幕做了界面适配;手机上虽然能登录,但界面没有适配、显示会乱,无法正常使用。等我们完成手机端适配后会更新这里。
着急用手机在外面听的话,可以装一个支持 Navidrome 协议的第三方手机播放器,填和车机一样的服务器地址 + 账号密码即可,穿透方案完全相同。