如何编译安装Debian xrdp?
- By : Will
- Category : Debian-Like

1 前言
一个问题,一篇文章,一出故事。
笔者使用apt安装系统默认版本的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
没有评论