You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需开启RDP会话,如何通过PuTTY的SSH连接实现Ubuntu主机音频播放?

无需开启RDP会话,如何通过PuTTY的SSH连接实现Ubuntu主机音频播放?

这问题我之前帮朋友排查过,核心原因其实是纯SSH登录时,Ubuntu默认不会启动PulseAudio服务,而RDP会话会自动拉起带图形环境的用户会话,顺带启动了PulseAudio,这时候SSH就能蹭上这个已运行的服务。要不用RDP也能让SSH出声音,咱们可以从配置PulseAudio自启动+端口转发入手,一步步来:

一、先让Ubuntu端的PulseAudio在纯SSH会话下能启动并被访问

  1. 确保PulseAudio能自动启动
    编辑你的用户bash配置文件,让每次SSH登录时自动检查并启动PulseAudio:

    nano ~/.bashrc
    

    在文件末尾添加一行:

    if [ -z "$(pgrep pulseaudio)" ]; then pulseaudio --start; fi
    

    保存退出后,执行source ~/.bashrc让配置生效。

  2. 配置PulseAudio允许本地TCP连接
    编辑PulseAudio的用户配置文件:

    nano ~/.config/pulse/default.pa
    

    添加下面这行(如果已有类似行,确保参数正确):

    load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
    

    这行的作用是让PulseAudio监听本地回环的TCP端口(默认4713),并且允许匿名访问(因为我们会通过SSH端口转发把这个端口映射到本地,安全性有保障)。

    然后重启PulseAudio让配置生效:

    pulseaudio -k && pulseaudio --start
    

二、配置PuTTY的端口转发

打开PuTTY后,按以下步骤设置:

  • 在左侧导航栏找到 Connection > SSH > Tunnels
  • 在「Source port」输入框填4713(PulseAudio默认TCP端口),「Destination」填localhost:4713
  • 点击「Add」按钮,你会看到转发规则出现在下方的列表里
  • 回到主界面输入Ubuntu主机的IP和SSH端口,正常登录即可

三、Windows端配置(让音频播放到本地扬声器)

如果你想让Ubuntu端的音频输出到Windows本地的扬声器,需要在Windows上做这些:

  1. 下载并安装Windows版PulseAudio客户端
  2. 找到安装目录下的pulse\etc\pulse\client.conf文件,用记事本打开
  3. 找到default-server这一行,把它改成:
    default-server = 127.0.0.1:4713
    
  4. 启动Windows的PulseAudio服务:可以打开命令提示符,进入PulseAudio安装目录,执行pulseaudio.exe --start

四、测试音频

现在在PuTTY的SSH终端里运行一个测试命令,比如播放系统自带的音频文件:

aplay /usr/share/sounds/alsa/Front_Center.wav

如果一切配置正确,你应该能在Windows本地听到声音了。

另外补充下:你之前试过的X11转发没用,是因为X11转发的音频依赖于图形会话的X服务器支持,而你要的是纯终端下的音频输出,所以那个方案不适用咱们这个场景。

备注:内容来源于stack exchange,提问作者N00B_141

火山引擎 最新活动