我看到一篇关于某人使用 PulseAudio 远程(客户端-服务器设置)的论坛帖子,这让我很感兴趣。 PulseAudio 有一些非常先进的功能,我希望能够在我的房子里播放音乐,而无需购买 Sonos 等商业系统来实现这一点。
到目前为止,我能够让 PulseAudio 远程工作,但不完全按照方向给予。特别是,我认为我已经打开了一些安全漏洞。我想给出我执行的确切步骤,看看是否有人可以告诉我哪里出错了。
需要明确的是,PulseAudio 正在工作,并且我没有收到错误。但我不得不打开比我应该打开的更多的设置。我的目标是从这种糟糕的工作配置转变为正确且安全的工作配置。
我的 PulseAudio 客户端和服务器都运行 Arch Linux。
客户端和服务器都
安装此软件包并启用 avahi-daemon:
pacman -S pulseaudio-zeroconf
systemctl enable avahi-daemon.service
systemctl start avahi-daemon.service
服务器步骤
编辑/etc/pulse/default.pa
并添加这些行:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
load-module module-zeroconf-publish
运行这些命令:
pulseaudio -k
pulseaudio --start
pacmd list-modules | grep native-protocol-tcp
pacmd list-modules | grep zeroconf-publish
模块是正确的。
客户步骤
编辑/etc/pulse/default.pa
并添加这些行:
load-module module-native-protocol-tcp
load-module module-zeroconf-discover
运行这些命令:
pulseaudio -k
pulseaudio --start
pacmd list-modules | grep native-protocol-tcp
pacmd list-modules | grep zeroconf-discover
PulseAudio 已启动且模块正确。
我的下一步应该是“运行图形化 PulseAudio 音量控制pavucontrol
。在“输出设备”选项卡下,您应该看到本地和远程输出设备。”但是,在执行此操作时,我在客户端上没有看到任何远程输出设备。
我必须paprefs
在终端中打开并执行以下额外步骤:
客户端上的网络访问选项卡:
- 检查使可发现的 PulseAudio 网络声音设备在本地可用
服务器上的网络服务器选项卡:
- 选中启用对本地声音设备的网络访问
- 选中允许 LAN 上的其他计算机发现本地声音设备
- 检查不需要身份验证
只有在 GUI 中进行这些更改之后,paprefs
我才在客户端上看到远程输出设备。如前所述,向远程接收器播放音乐是有效的,但这些设置似乎不安全,我怀疑我在配置中错过了一些重要的东西。一旦我取消选中“不需要身份验证”,流媒体就会停止。
另外,还有比使用 avahi 更好的方法吗?
答案1
在服务器上,我更改了以下配置行:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
到:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24
我将相同的 ~/.config/pulse/cookie 文件复制到所有设备。
接下来,在服务器上的终端中打开 paprefs 并执行以下步骤:
激活网络服务器选项卡:
- 取消选中“不需要身份验证”
CMUS
我还找到了另一种方法来完成基本相同的事情,即从我的笔记本电脑控制音乐播放,同时在另一台计算机上/通过另一台计算机播放音乐,该计算机充当音乐“服务器”并连接到扬声器(以及 DAC、电源)放大器或任何音乐设置)。我在 LAN 上的设备之间设置了方便的 ssh 访问。我安装了应用程序CMUS在我的音乐服务器上。
cmus 是一个小型、快速且功能强大的控制台音乐播放器,适用于类 Unix 操作系统。
cmus
现在,我可以通过 ssh 进入音乐服务器并在终端中输入内容,将笔记本电脑(或手机)用作音乐服务器的“远程控制” 。我尝试过其他方法来远程控制在不同计算机上播放的音乐,我不得不说 cmus 的控制台界面有一种诱人的优雅。
对于 cmus 指令,请键入man cmus-tutorial
和man cmus
。