如何编译安装Debian xrdp?

Debian-Like

1 前言

一个问题,一篇文章,一出故事。
笔者使用apt安装系统默认版本的xrdp无法使用,于是想通过编译安装比较新的版本解决,于是总结此文。
二进制的安装详细如下,如果有需要请参阅,

如何安装配置Debian xrdp?

2 最佳实践

2.1 安装前的准备

2.1.1 安装编译环境

apt install -y git autoconf libtool pkg-config gcc g++ make

2.1.2 卸载系统默认的安装包

apt remove -y xrdp xorgxrdp

2.1.3 准备软件包

cd ~
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.21.1/xrdp-0.9.21.1.tar.gz
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.9.19/xorgxrdp-0.9.19.tar.gz
tar -xf xrdp-0.9.21.1.tar.gz
tar -xf xorgxrdp-0.9.19.tar.gz

以上只是演示,如果不能下载或者需要更新的版本,请从如下链接下载,
https://github.com/neutrinolabs/xrdp/releases
https://github.com/neutrinolabs/xorgxrdp/releases

2.2 编译安装xrdp

2.2.1 执行编译引导程序

cd ~/xrdp-0.9.21.1/
./bootstrap

2.2.2 执行预编译安装

cd ~/xrdp-0.9.21.1/
./configure --enable-fuse --enable-mp3lame --enable-pixman

如果遇到如下错误提示,

configure: error: please install libssl-dev or openssl-devel

可通过如下命令解决依赖关系,

apt install -y libssl-dev

如果遇到如下错误提示,

configure: error: please install libpam0g-dev or pam-devel

可通过如下命令解决依赖关系,

apt install -y libpam0g-dev

如果遇到如下错误提示,

configure: error: please install libfuse-dev or fuse-devel

可通过如下命令解决依赖关系,

apt install -y libfuse-dev

如果遇到如下错误提示,

configure: error: please install libmp3lame-dev or lamemp3-devel

可通过如下命令解决依赖关系,

apt install -y libmp3lame-dev

如果遇到如下错误提示,

configure: error: Package requirements (pixman-1 >= 0.1.0) were not met:

可通过如下命令解决依赖关系,

apt install -y libpixman-1-dev

如果遇到如下错误提示,

configure: error: please install libx11-dev or libX11-deve

可通过如下命令解决依赖关系,

apt install -y libx11-dev

如果遇到如下错误提示,

configure: error: please install libxfixes-dev or libXfixes-devel

可通过如下命令解决依赖关系,

apt install -y libxfixes-dev

如果遇到如下错误提示,

configure: error: please install libxrandr-dev or libXrandr-devel

可通过如下命令解决依赖关系,

apt install -y libxrandr-dev

如果遇到如下错误提示,

configure: error: no nasm (Netwide Assembler) found
configure: error: ./configure failed for librfxcodec

可通过如下命令解决依赖关系,

apt install -y nasm

2.2.3 执行编译安装

make
make install

2.2.4 创建执行文件软连接

ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin

2.3 编译安装xorgxrdp

2.3.1 执行编译引导程序

cd ~/xorgxrdp-0.9.19/
./bootstrap

2.3.2 执行预编译安装

cd ~/xorgxrdp-0.9.19/
./configure

如果遇到如下错误提示,

configure: error: please install xserver-xorg-dev, xorg-x11-server-sdk or xorg-x11-server-devel

可通过如下命令解决依赖关系,

apt install -y xserver-xorg-dev

2.3.3 执行编译安装

make
make install

2.4 配置服务

2.4.1 确认服务配置文件

ls /etc/xrdp/{cert,key}.pem
ls /etc/xrdp/{xrdp,sesman}.ini

2.4.2 尝试启动服务

systemctl start xrdp

如果遇到如下错误提示,

Failed to start xrdp.service: Unit xrdp-sesman.service is masked.
Failed to start xrdp.service: Unit xrdp.service is masked.

可通过如下命令解决异常,

systemctl unmask xrdp-sesman
systemctl unmask xrdp.service

最后,你可通过如下命令确认服务正常并设置默认自启动,

systemctl status xrdp
systemctl status xrdp-sesman
systemctl enable xrdp
systemctl enable xrdp-sesman

2.5 错误处理

2.5.1 错误日志的位置

tail -f /var/log/xrdp.log
tail -f /var/log/xrdp-sesman.log
tail -f /var/log/messages

2.5.2 登录蓝屏错误

vim /etc/xrdp/sesman.ini

可通过修改如下配置处理,参数修改如下,

#param=Xorg
param=/usr/lib/xorg/Xorg

请注意,以上参数不同的系统需要使用不同的配置,详细请参阅如下,

; Fedora 26 or later    :  param=/usr/libexec/Xorg
; Debian 9 or later     :  param=/usr/lib/xorg/Xorg
; Ubuntu 16.04 or later :  param=/usr/lib/xorg/Xorg
; Arch Linux            :  param=/usr/lib/Xorg
; CentOS 7              :  param=/usr/bin/Xorg or param=Xorg
; CentOS 8              :  param=/usr/libexec/Xorg
; FreeBSD (from 2022Q4) :  param=/usr/local/libexec/Xorg

修改完成后,你需要重启服务使配置生效,

systemctl restart xrdp-sesman.service

2.5.3 SSL错误

[20221103-09:19:50] [ERROR] SSL_read: I/O error
[20221103-09:19:50] [ERROR] libxrdp_force_read: header read error
[20221103-09:19:50] [ERROR] Processing [ITU-T T.125] Connect-Initial failed
[20221103-09:19:50] [ERROR] [MCS Connection Sequence] receive connection request failed
[20221103-09:19:50] [ERROR] xrdp_sec_incoming: xrdp_mcs_incoming failed
[20221103-09:19:50] [ERROR] xrdp_rdp_incoming: xrdp_sec_incoming failed
[20221103-09:19:50] [ERROR] xrdp_process_main_loop: libxrdp_process_incoming failed
[20221103-09:19:50] [ERROR] xrdp_iso_send: trans_write_copy_s failed
[20221103-09:19:50] [ERROR] Sending [ITU T.125] DisconnectProviderUltimatum failed

【Windows+R】->【mstsc】
单击【Advanced】->“Server authentication”中选择“Connect and don’t warn me”即可

2.6 使用Windows客户端登录

mstsc /v:10.168.0.10

需要注意的是,如果你的登录用户已经登录,你需要先注销才能正常登录,

pkill -kill -u will

参阅文档
===========================

软件编译教程
————
https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8

软件下载链接
————
https://github.com/neutrinolabs/xrdp/releases
https://github.com/neutrinolabs/xorgxrdp/releases

错误参阅文档
————
https://github.com/neutrinolabs/xrdp/issues/2224

问题解决方法
—————–
https://unix.stackexchange.com/questions/629505/cant-connect-to-xrdp-as-normal-user-connecting-as-root-is-fine
https://github.com/FreeRDP/FreeRDP/issues/4956

没有评论

发表回复

Debian-Like
如何解决Bumblebee不能加载GPU驱动错误?

1 前言 一个问题,一篇文章,一出故事。 笔者有使用Bumblebee实现双显示器屏幕扩展,但是最近 …

Debian-Like
如果解决Linux WPS导出PDF文件的过程中遇到错误?

1 前言 一个问题,一篇文章,一出故事。 笔者使用WPS另存为PDF时遇到“WPS导出PDF文件的过 …

Debian-Like
如何安装部署Debian Slack?

1 前言 一个问题,一篇文章,一出故事。 Slack是一款流行的即时通讯软件,主要用于团队协作和沟通 …