飞牛 NAS 部署 Shairport Sync 实现 AirPlay2 音频接收(适合所有AUX,蓝牙等音箱)
本教程以飞牛 NAS 为例,通过 Docker 部署 Shairport Sync,实现将 iOS/macOS 设备的音频通过 AirPlay2 推送到小米音箱 Pro,全程适配小米音箱硬件特性。

前置准备
1. 安装 ALSA 音频工具包
飞牛 NAS 系统默认缺少aplay/amixer等音频工具,需先安装:
# 登录你的飞牛NAS终端,切换到root用户(输入NAS管理员密码确认)
sudo -i
# 执行以下命令安装ALSA工具包
apt update && apt install -y alsa-utils
2. 确认音频设备信息(关键)
安装完成后,查询本地音频设备编号(小米音箱 Pro 对应的声卡):
# 列出所有音频设备
aplay -l # 列出混音器控制项(确认PCM控制名称)
amixer -c 2 controls # 替换2为实际声卡编号
记录输出中的card 2: xxx(声卡编号)和PCM(混音器名称),后续配置需用到。
Shairport Sync 部署步骤
- 创建配置目录及文件
# 创建工作目录
mkdir -p /vol1/1000/shairport-sync && cd /vol1/1000/shairport-sync
# 创建shairport-sync.conf配置文件
vim shairport-sync.conf
将以下配置粘贴到文件中(根据实际声卡编号修改):
# 通用配置段
general = {
name = "小米音箱Pro AirPlay2"; # AirPlay设备名称(蓝牙搜索显示)
volume_range_db = 40; # 扩大音量调节范围(更细腻)
volume_max_db = 0; # 软件音量上限拉满(无衰减)
mdns_backend = "avahi"; # Linux设备发现服务
output_format = "S16LE"; # 音频输出格式(16位小端序)
output_rate = 44100; # 标准音频采样率
playback_mode = 0; # 默认播放模式
};
# ALSA音频后端配置(核心)
alsa = {
output_device = "plughw:2,0"; # 替换为实际声卡编号(card:device)
mixer_control_name = "PCM"; # 替换为查询到的混音器名称
mixer_device = "hw:2"; # 声卡编号
mixer_index = 0; # 默认索引
ignore_alsa_mixer_errors = "yes";# 忽略小错误避免服务崩溃
};
# 禁用未使用的音频后端
pipewire = { enabled = "no"; };
pulse = { enabled = "no"; };
- 创建 docker-compose.yml 文件
vim docker-compose.yml
粘贴以下配置(适配飞牛 NAS 环境):
# Shairport Sync (AirPlay2音频接收服务)
services:
shairport-sync:
image: mikebrady/shairport-sync:latest # 官方最新镜像
container_name: shairport-sync # 容器名称
restart: unless-stopped # 异常退出自动重启
network_mode: host # 宿主机网络(确保AirPlay发现)
volumes:
- /etc/localtime:/etc/localtime:ro # 同步宿主机时区
- ./shairport-sync.conf:/etc/shairport-sync.conf:ro # 挂载自定义配置
environment:
- TZ=Asia/Shanghai # 时区配置
- PULSE_SERVER=disable # 禁用PulseAudio
- AUDIO_BACKEND=alsa # 指定ALSA音频后端
devices:
- /dev/snd:/dev/snd # 挂载音频设备
- /dev/bus/usb:/dev/bus/usb # 挂载USB音频设备
group_add:
- audio # 添加音频组权限
privileged: true # 特权模式(解决设备访问权限)
command: --verbose # 开启详细日志(便于调试)
- 启动容器
# 启动容器(后台运行)
docker-compose up -d
# 查看容器状态
docker-compose ps
# 查看日志(验证是否正常启动)
docker logs shairport-sync
验证使用
- 打开 iOS/macOS 设备的控制中心,找到「隔空播放」选项;
- 选择显示的「小米音箱 Pro AirPlay2」设备;
- 播放音频,验证小米音箱是否正常出声;
- 若音量异常,可通过amixer -c 2 set PCM 80%(替换 2 为声卡编号)调整硬件音量。
常见问题
- 设备搜索不到:检查容器是否启动、network_mode: host是否配置,飞牛 NAS 防火墙是否放行 5000/7000 端口;
- 无声音输出:核对output_device声卡编号是否正确,确保小米音箱 Pro 已正确连接 NAS;
- 音量调节无效:确认mixer_control_name与实际混音器名称一致。