Linux远程桌面服务:xrdp

为Ubuntu服务器安装xrdp服务,可通过Windows系统的“远程桌面连接”控制服务器

AI导读:为在Ubuntu服务器上安装xrdp服务以实现Windows系统的远程桌面连接,用户需先确保已安装Ubuntu桌面环境。接着,通过systemctl安装和配置xrdp,并将用户加入ssl-cert组以访问所需文件夹,同时开放3389端口。若遇到黑屏、频繁要求输入密码或桌面显示问题,可以按照特定步骤修改配置文件解决这些bug。此外,若需要转发声音,需要安装Pulseaudio及其相关组件,并对配置进行调整,以确保声音正常运行。

Step0 前提

安装了ubuntu-desktop,一般的桌面系统已安装。

如果没有安装,使用命令

1
sudo apt install ubuntu-desktop

Step1 安装xrdp

1
sudo apt install xrdp

使用systemctl管理xrdp

1
sudo systemctl status xrdp # 查看状态

Step2 配置xrdp

将用户添加到ssl-cert组以访问/etc/ssl/private/文件夹

1
sudo adduser jankiny ssl-cert # jankiny是用户名

xrdp监听3389端口,需要打开端口允许RDP客户端通过

1
2
3
sudo ufw allow from 192.168.3.0/24 to any port 3389
sudo ufw reload # 重启防火墙
sudo ufw status

Step3 Windows远程连接ubuntu系统

Bug Fix

1 远程连接黑屏

由于用户没有注销导致,需要修改/etc/xrdp/startwm.sh文件

1
sudo vi /etc/xrdp/startwm.sh

在第一个if代码块后添加以下代码

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence

if test -r /etc/profile; then
. /etc/profile
fi
# 添加以下两行代码
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

重启xrdp

1
sudo systemctl restart xrdp

2 远程登录需要输入多次密码

解决“色彩管理设备” / “color managed device” 弹窗

创建文件 /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

1
sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

并写入内容

1
2
3
4
5
6
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

解决“刷新系统软件源需要认证” / “refresh the system repositories” 弹窗

创建文件 /etc/polkit-1/localauthority/50-local.d/46-allow-packagekit.pkla

1
sudo vi /etc/polkit-1/localauthority/50-local.d/46-allow-packagekit.pkla

并写入内容:

1
2
3
4
5
6
[Allow Refresh Repository all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=no
ResultInactive=no
ResultActive=yes

3 桌面没有文件没有任务栏(桌面美化)

新建或打开配置文件

1
vi ~/.xsessionrc

添加:

1
2
3
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg

重启xrdp

1
sudo systemctl restart xrdp

4 远程桌面声音转发

参考:甲骨文ARM Ubuntu20.04 Gnome远程桌面开启声音

安装Pulseaudio所需的所有组件

1
2
3
4
sudo apt install software-properties-common -y
sudo apt install git libpulse-dev autoconf m4 intltool dpkg-dev libtool libsndfile-dev libcap-dev libjson-c-dev -y
sudo apt build-dep pulseaudio -y
sudo apt update

下载Pulseaudio源码

1
2
sudo apt build-dep pulseaudio -y
sudo apt source pulseaudio

设置权限

1
sudo chmod 777 pulseaudio_13.99.1-1ubuntu3.13.dsc

删除Palseaudio源码文件夹

1
sudo rm -rf pulseaudio-13.99.1

重新下载源码,进入源码目录,配置

1
2
3
sudo apt source pulseaudio
cd pulseaudio-13.99.1
sudo ./configure

pulseaudio-module-xrdp

1
2
cd ..
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git

编译

1
2
3
4
5
cd pulseaudio-module-xrdp
sudo ./bootstrap
sudo ./configure PULSE_DIR="/home/jankiny/pulseaudio-13.99.1"
sudo make

安装动态链接库

1
2
3
4
5
cd src/.libs
sudo install -t "/var/lib/xrdp-pulseaudio-installer" -D -m 644 *.so
sudo install -t "/usr/lib/pulse-$pulsever/modules" -D -m 644 *.so
sudo install -t "/usr/lib/pulse-13.99.1/modules" -D -m 644 *.so
reboot

使用

1
2
pulseaudio -k && pulseaudio
pulseaudio

错误:执行 pulseaudio & ,声卡变成****,点击测试没有声音,终端输出 [xrdp-sink] module-xrdp-sink.c: sink_process_msg: not running,这是因为模块module-xrdp-sink 没有加载

解决方法:在文件 /etc/pulse/default.pa 末尾另起一行,添加 load-module module-xrdp-sink 保存重启

1
sudo vi /etc/pulse/default.pa

参考文章:
参考链接

作者

Janki

发布于

2022-12-20

更新于

2024-09-03

许可协议

评论