如何编译安装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.20/xrdp-0.9.20.tar.gz
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.9.19/xorgxrdp-0.9.19.tar.gz
tar -xf xrdp-0.9.20.tar.g
tar -xf xorgxrdp-0.9.19.tar.g

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

2.2 编译安装xrdp

2.2.1 执行编译引导程序

cd ~/xrdp-0.9.20/
./bootstrap

2.2.2 执行预编译安装

cd ~/xrdp-0.9.20/
./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.

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

systemctl unmask xrdp-sesman

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

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 普通用户登录蓝屏错误

[20221103-09:19:50] [INFO ] Socket 12: AF_INET connection received from 10.168.0.250 port 52303
[20221103-09:19:50] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20221103-09:19:50] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20221103-09:19:50] [INFO ] Security protocol: configured [SSL|RDP], requested [SSL|HYBRID|HYBRID_EX|RDP], selected [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
[20221103-09:19:50] [INFO ] Socket 12: AF_INET connection received from 192.168.0.250 port 52304
[20221103-09:19:50] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20221103-09:19:50] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20221103-09:19:50] [INFO ] Security protocol: configured [SSL|RDP], requested [SSL|HYBRID|HYBRID_EX|RDP], selected [SSL]

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

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

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

软件编译教程
————
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

没有评论

发表评论

Debian-Like
如何编译安装Debian tigervnc?

1 前言 一个问题,一篇文章,一出故事。 笔者使用默认安装的Debian Tigervnc感觉不够完 …

Debian-Like
如何安装Debian 11抓屏tigervnc?

1 前言 一个问题,一篇文章,一出故事。 笔者需要查看远程Debian的远程电脑操作屏幕,于是安装非 …

Debian-Like
如何安装Debian 11标准tigervnc?

1 前言 一个问题,一篇文章,一出故事。 笔者需要远程Debian的远程电脑,于是安装标准版本的VN …