Networking

如何正確安全地設置 PulseAudio 遙控器?

  • September 30, 2018

我看到一篇關於有人使用 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在終端中打開並執行以下額外步驟:

客戶端上的網路訪問選項卡:

  • check 使可發現的 PulseAudio 網路聲音設備在本地可用

伺服器上的網路伺服器選項卡:

  • 檢查啟用對本地聲音設備的網路訪問
  • 勾選允許區域網路上的其他機器發現本地聲音設備
  • 檢查不需要身份驗證

只有在 GUI 中的這些更改之後,paprefs我才在客戶端上看到遠端輸出設備。如前所述,向遠端接收器播放音樂是有效的,但這些設置似乎不安全,我懷疑我錯過了配置中的一些重要內容。一旦我取消選中“不需要身份驗證”,流式傳輸就會停止。

另外,有沒有比使用 avahi 更好的方法呢?

在伺服器上,我更改了以下配置行:

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 並執行以下步驟:

啟動網路伺服器選項卡:

  • 取消選中“不需要身份驗證”

厘米

我還找到了另一種方法來完成基本相同的事情,即控制我的筆記型電腦上的音樂播放,同時在另一台充當音樂“伺服器”並連接到揚聲器(和 DAC、電源放大器或任何音樂設置)。我在 LAN 上的設備之間設置了方便的 ssh 訪問。我在我的音樂伺服器上安裝了應用程序cmus 。

cmus 是一款小巧、快速且功能強大的控制台音樂播放器,適用於類 Unix 作業系統。

現在我可以使用我的筆記型電腦(或手機)作為我的音樂伺服器的“遙控器”,方法是通過 ssh 進入音樂伺服器並cmus在終端中輸入。我嘗試過其他遠端控制在另一台電腦上播放的音樂的方法,我不得不說 cmus 的控制台界面有一種誘人的優雅。

對於 cmus 指令,鍵入man cmus-tutorialman cmus

引用自:https://unix.stackexchange.com/questions/470961