15
2026
05

阿里云 alibabalinux 安装gnome桌面,然后xrdp,然后有xorg,然后安装音频

阿里云 ECS (Alibaba Cloud Linux + GNOME) RDP 远程声音配置指南

适用场景

云服务器:阿里云 ECS(或其他云服务器)

操作系统:Alibaba Cloud Linux / CentOS 8 / RHEL 8

桌面环境:GNOME

远程协议:RDP (xrdp)

问题:Windows 远程连接后听不到声音

________________________________________

核心原理

云服务器默认没有物理声卡,需要:

1.编译 PulseAudio 源码(生成头文件)

2.编译安装 pulseaudio-module-xrdp(RDP 音频重定向模块)

3.配置 xrdp 和 PulseAudio,让声音通过 RDP 传输到 Windows 客户端

________________________________________

完整操作步骤

第一步:安装基础开发工具和依赖

bash

复制

下载

sudo yum install -y epel-release

sudo yum install -y git gcc gcc-c++ make autoconf automake libtool \

    pulseaudio-libs-devel meson ninja-build \

    glib2-devel libcap-devel libsndfile-devel \

    speexdsp-devel alsa-lib-devel dbus-devel \

    libtdb-devel openssl-devel libudev-devel lirc-devel \

    check check-devel doxygen

第二步:下载并编译 PulseAudio 源码

bash

复制

下载

cd /tmp

wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-15.0.tar.xz

tar -xf pulseaudio-15.0.tar.xz

cd pulseaudio-15.0


# 配置构建(禁用文档以加快编译)

meson setup build -Ddocumentation=false


# 编译

ninja -C build

第三步:下载并编译 xrdp 音频模块

bash

复制

下载

cd /tmp

git clone --depth=1 https://github.com/neutrinolabs/pulseaudio-module-xrdp.git

cd pulseaudio-module-xrdp


# 生成配置

./bootstrap


# 指向 PulseAudio 源码目录

./configure PULSE_DIR=/tmp/pulseaudio-15.0 PULSE_CONFIG_DIR=/tmp/pulseaudio-15.0/build


# 编译安装

make

sudo make install

第四步:配置自动加载

bash

复制

下载

# 创建 PulseAudio 自动加载配置

mkdir -p ~/.config/pulse/default.pa.d/

cat > ~/.config/pulse/default.pa.d/xrdp.pa << 'EOF'

### Load xrdp module for RDP audio redirection

.ifexists module-xrdp-sink.so

load-module module-xrdp-sink

.endif

.ifexists module-xrdp-source.so

load-module module-xrdp-source

.endif

EOF


# 设置 xrdp-sink 为默认输出设备(登录时自动执行)

echo 'pactl set-default-sink xrdp-sink' >> ~/.profile

第五步:配置 xrdp 服务端

bash

复制

下载

# 编辑 /etc/xrdp/xrdp.ini,确保 [channels] 部分有:

# audio=true

# rdpsnd=true


sudo sed -i '/\[channels\]/,/^$/ s/^;*audio=true/audio=true/' /etc/xrdp/xrdp.ini

sudo sed -i '/\[channels\]/,/^$/ s/^;*rdpsnd=true/rdpsnd=true/' /etc/xrdp/xrdp.ini


# 重启 xrdp

sudo systemctl restart xrdp

第六步:Windows RDP 客户端设置

在 Windows 上打开远程桌面连接(mstsc):

显示选项 → 本地资源 → 远程音频 → 设置

远程音频播放 → 在此计算机上播放

点击确定

第七步:测试声音

重新 RDP 连接后,在服务器终端执行:

bash

复制

下载

# 检查设备

pactl list sinks short


# 播放测试音

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

或者在 GNOME 设置 → 声音 → 输出设备中选择 xrdp-sink,点击测试。

________________________________________

常见问题速查

问题解决方案

pactl list sinks 看不到 xrdp-sink执行 pactl load-module module-xrdp-sink

编译缺依赖根据报错用 yum search 找到对应 devel 包安装

PulseAudio 启动失败检查 XDG_RUNTIME_DIR 环境变量,应为 /run/user/1000

声音卡顿/延迟Windows RDP 客户端降低音频质量为"动态"

重启后声音消失确认 ~/.config/pulse/default.pa.d/xrdp.pa 存在

________________________________________

关键文件路径

文件/目录作用

/usr/lib64/pulse-15.0/modules/module-xrdp-sink.soxrdp 音频模块

~/.config/pulse/default.pa.d/xrdp.pa用户级 PulseAudio 自动加载配置

/etc/xrdp/xrdp.inixrdp 服务配置

/tmp/pulseaudio-15.0/PulseAudio 源码目录(编译用)

________________________________________

这套流程的核心是:让 PulseAudio 识别到 RDP 虚拟出来的音频通道。关键是编译 pulseaudio-module-xrdp 时需要正确的 PulseAudio 源码头文件路径。

以后如果换服务器或重装系统,按这个文档一步步来就行


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。