别让 NAS 只当网盘!Docker 部署 AirPlay,秒变家庭音响中心
Shairport Sync:
一款开源 AirPlay 音频接收器,支持 AirPlay 1/2(部分功能),让你的 NAS 或树莓派秒变家庭音响中心,打造多房间同步播放的体验。

项目特点:
协议支持:既可以作为经典的 AirPlay 1 播放器,也能构建为 AirPlay 2 播放器(有一些限制)。
音质与格式:支持立体声和多声道(5.1、7.1),甚至可以播放无损 24-bit 立体声,采样率高达 48kHz。
元数据处理:可以获取并传递艺术家信息、专辑封面等元数据给其他应用。
接口扩展:支持 MQTT、MPRIS-like 接口和 D-Bus,用于与其他应用交互和远程控制。
局限性:仅支持音频,不支持 AirPlay 的视频或照片流。
安装
Docker Compose
services:
airplay:
image: mikebrady/shairport-sync:latest
container_name: airplay
network_mode: host
volumes:
- ./shairport-sync.conf:/etc/shairport-sync.conf
devices:
- /dev/snd
group_add:
- audio
cap_add:
- SYS_NICE
restart: always
参数说明(更多参数建议去看文档)
shairport-sync.conf(挂载文件):用于配置参数
/dev/snd(设备):挂载声卡设备
group_add(权限组,可选):添加 audio 权限
cap_add(进程调度,可选):提升进程的调度优先级
配置
启动前先创建 shairport-sync.conf 配置文件,下面是一个基础模板,接下来将一个个说具体怎么配置
general = {
name = "FNOS-Speaker";
output_backend = "alsa";
};
alsa = {
output_device = "plughw:1,0";
output_format = "S16";
};
TIP:建议先安装 ALSA 工具包,方便查看声卡信息(如果懒得装,也可以使用通用兼容的参数)
# 安装 ALSA 工具包
apt update && apt install -y alsa-utils
# 查看所有音频设备
aplay -l
# 查看可用的 ALSA 控制接口
amixer -c 1 controls
# 查看声卡支持的采样格式
aplay -D plughw:1,0 --dump-hw-params /dev/zero 2>&1 | grep FORMAT
全局配置,其中 output_backend 是选择音频,操作声卡硬件默认选择 alsa 就行,兼容性比较好
general = {
name = "DXP-Speaker"; # AirPlay设备名称
output_backend = "alsa"; # 音频后端: alsa/pw/pa/jack
};
音频后端设置(下面会详细说,怎么填参数)
alsa = {
output_device = "plughw:1,0"; # 指定声卡输出
output_format = "S16"; # 音频位深格式
};
使用 SSH 工具连接设备,输入下面命令:
# 切换 root 权限
sudo -i
# 查看声卡级别(看有几张卡、编号和名字)
cat /proc/asound/cards
# 查看设备级别(看每张卡有几个 PCM 设备)
cat /proc/asound/pcm
这台设备有 3 张声卡,分别是:CPU 核显 HDMI/DP 通道、主板集成声卡、主板蜂鸣器。其中卡 1 就是需要的,如果不清楚,可以复制问 AI 就行

下面就是具体看每个卡下的 PCM 设备,01-00 就是需要用到的主板音频(耳机 / 音箱 / 麦克风),所以 output_device 填写是“plughw:1,0”
cat /proc/asound/cards
跟上面的对照关系
0 [HDMI] → 00-03 / 00-07 / 00-08 (三个 HDMI 口)
1 [PCH] → 01-00 / 01-02 (模拟口 + 备用)
2 [pcsp] → 02-00 (蜂鸣器)
至于 output_format 一般都是通用的填 S16 就行,也可以输入命令查看
aplay -D plughw:1,0 --dump-hw-params /dev/zero 2>&1 | grep FORMAT
使用
确认容器日志无报错后,在 iPhone/Mac 的控制中心点击音频投送,就能在列表里看到设备。
启动容器后查看日志,应该是没有警告或者报错的

下拉控制中心,点击投送就能看到接收器了

测试过 fnOS(笔记本)和 UGOS Pro(绿联全闪)两个系统都没问题,有扬声器就是扬声器播放,插上 3.5mm 音频也能正常出声

如果配置没有问题,容器日志也没报错,同时也可以正常找到设备,但就是没声音,大概率是声卡默认处于静音状态(比较常见情况)。可以安装 ALSA 工具包,通过 amixer 命令解除静音、调高音量,直接复制下面命令运行即可。
# 安装 alsa-utils
apt update && apt install -y alsa-utils
# 开音量+去静音
amixer -c 0 sset Master 100% unmute
总结
Shairport Sync 这款应用可以配置的参数还有很多,本教程只是将最基础的功能搭建起来。NTP 同步精度、解码后处理、多房间延迟对齐,这些高阶配置官方文档里都有。如果你的手里有闲置音箱/功放、又想给 iPhone 扩展一个无线音频出口的 NAS 用户,非常值得推荐!几十行配置让它重新上岗,性价比很高。
综合推荐:⭐⭐⭐(吃灰设备重新上岗,AirPlay 生态无缝接入)
使用体验:⭐⭐⭐(部署不复杂,但需要跟着步骤)
部署难易:⭐⭐⭐(中规中矩)︎
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
