前言
xrdp可以做两件事,第一件事就是可以使得linux支持RDP协议,使得linux桌面能够通过mstsc连接,第二件事就是RDP代理,我们能通过xrdp连接到其他人的RDP资源
前者,需要编译xrdp和xorgxrdp两个工程;后者,需要编译xrdp和neutrinordpRDP两个工程,本文偏向后者
前者不建议源码编译,直接yum编译会好些
Linux 非源码安装 xrdp_qq_38781075的博客-CSDN博客
正文
下载基础源码
GitHub - neutrinolabs/xrdp: xrdp: an open source RDP server
下载相关依赖项,并放入源码中(点击中间两个带颜色的文件夹),下载完了之后,要把名字也改为相应的名字(libpainter、librfxcodec)
并修改里面librfxcodec的脚本的权限
chmod 777 librfxcodec/src/nasm_lt.sh
官方安装文档
Home · neutrinolabs/xrdp Wiki · GitHub
点击自己的系统进入安装的步骤界面,下面以Ubuntu为例讲解
Ubuntu安装依赖
sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev \
libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev \
intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev \
libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev
Centos 7
yum update
yum install -y finger cmake patch gcc make autoconf libtool automake pkgconfig openssl-devel gettext file \
pam-devel libX11-devel libXfixes-devel libjpeg-devel libXrandr-devel nasm \
flex bison gcc-c++ libxslt perl-libxml-perl xorg-x11-font-utils xmlto-tex
# 清理的时候卡住
systemctl stop initial-setup-text
Centos 8
yum install -y cmake patch gcc make autoconf libtool automake pkgconfig openssl-devel gettext file pam-devel libX11-devel libXfixes-devel libjpeg-devel libXrandr-devel flex bison gcc-c++ libxslt perl-libxml-perl xorg-x11-font-utils
安装
./bootstrap
./configure
make CFLAGS="-Wno-missing-braces"
make install
开启xrdp,并开机启动
sudo systemctl enable xrdp
sudo service xrdp start
现在可以连接linux上的3389端口试试xrdp了,如果有界面就成功了
题外话
此外,如果想要连接windows的rdp,需要安装libfreerdp-dev的1.0.2版本
安装方法一(目前暂时无法使用)
https://pkgs.org/search/?q=freerdp
上图中,四个都安装
前面configure的时候需要加配置项
./configure --enable-neutrinordp
make安装的时候会报错,找不到代码,只需要找到对应文件,把有问题的代码用双斜线注释即可
freerdp旧版本手动编译很困难,建议用rpm之类的办法安装
编译freerdp-mxcai2005-ChinaUnix博客
安装方法二
下载这个版本的freerdp
GitHub - matt335672/NeutrinoRDP at later-gcc
Ubuntu安装依赖
sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev \
libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev \
libxrandr-dev libavutil-dev libavcodec-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
Centos 7
sudo yum install -y gcc git cmake openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel \
libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel libXrandr-devel pam-devel
Centos 8
yum install -y gcc git cmake openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel libXdamage-devel libXv-devel alsa-lib-devel cups-devel libXrandr-devel pam-devel
Centos 8还需要额外下载安装依赖
rpm -ivh libxkbfile-devel-1.1.0-1.el8.x86_64.rpm nasm-2.15.03-3.el8.x86_64.rpm
安装方法
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON .
make
sudo make install
前面xrdp的configure的时候需要加配置项,xrdp后面安装方法一样,这个安装方法make不会报错
./configure --enable-neutrinordp
如果报错
No package 'freerdp' found
请把上面下载的freerdp目录下的freerdp的pc文件拷贝到pkgconfig目录下,如
cp freerdp.pc /usr/lib64/pkgconfig/
xrdp启动可能找不到库文件
vim /etc/ld.so.conf
后面追加一行
/usr/local/lib/
在命令行输入,重新刷新一下配置就好了
ldconfig
或者
echo /usr/local/lib >> /etc/ld.so.conf.d/neutrinordp.conf
ldconfig
启动xrdp命令
systemctl start xrdp