xrdp

C/C++ 2025-08-09

xrdp开源RDP服务器

概述

xrdp使用Microsoft Remote桌面协议(RDP)提供了远程计算机的图形登录。 xrdp接受来自各种RDP客户端的连接:

  • freerdp
  • rdesktop
  • Krdc
  • 中子
  • Windows MSTSC(Microsoft终端服务客户端,又名mstsc.exe
  • Microsoft远程桌面(在Microsoft Store上找到,与MSTSC不同)

其中许多在某些或全部Windows,Mac OS,iOS和/或Android上工作。

默认情况下,使用TLS对RDP传输进行加密。

特征

远程桌面访问

  • 使用从任何地方使用RDP连接到Linux桌面(需要XORG xrdp XORG模块)
  • 重新连接到现有会话
  • 会话调整大小(无论连接和即时)
  • RDP/VNC代理(通过xrdp连接到另一家RDP/VNC服务器)

访问远程资源

  • 双向剪贴板传输(文本,位图,文件)
  • 音频重定向(需要构建其他模块)
  • 麦克风重定向(需要构建其他模块)
  • 驱动重定向(安装本地客户端驱动器在远程机器上)

支持的平台

xrdp主要针对GNU/Linux操作系统。 X86(包括X86-64)和ARM处理器是运行xrdp最成熟架构。另请参见平台支持层。

一些组件(例如XORG xrdp和RemoteFX编解码器)使用SIMD指令对X86具有特殊优化。因此,在X86处理器上运行xrdp将获得完全加速的体验。

快速开始

大多数Linux发行版应在其存储库中分发xrdp的最新版本。您需要xrdp和XORG xrdp软件包才能获得最佳体验。建议xrdp取决于XORG xrdp ,因此应该足以安装xrdp 。如果未提供XORG xrdp ,请使用XVNC服务器。

xrdp在3389/TCP上听。确保您的防火墙可以从您要访问的位置接受3389/TCP的连接。

Ubuntu / Debian

apt install xrdp

软呢帽,RHEL和衍生品

如果您不运行Fedora,请确保首先启用Epel软件包。

dnf install epel-release

(所有系统)与以下方式安装xrdp : -

dnf install xrdp 

编译

另请参见https://*gi*th*ub.com/neutrinolabs/xrdp/wiki#building-from-sources

先决条件

要从包装来源编译xrdp ,您需要基本的构建工具 - 编译器( GCCClang )和Make程序。此外,您将需要Openssl-Develpam-devellibx11-devellibxfixes-devellibxrandr-devel 。根据您的配置,需要更多其他软件。

要从检查的GIT存储库中编译xrdp ,您还需要AutoConfAutomakeLibtoolPkg-Config

获取来源并建立

如果从包装的源中编译,请拆开tarball并更改为生成的目录。

如果从检查的存储库中编译,请确保您也将子模型克隆(使用git clone --recursive https://github.c*om**/neutrinolabs/xrdp

然后运行以下命令以编译并安装xrdp :

./bootstrap
./configure
make
sudo make install

如果要使用音频重定向,则需要构建和安装其他脉冲模块。可以在Wiki上找到构建说明。

  • 如何设置音频重定向

目录结构

xrdp ├── common ······ common code ├── docs ········ documentation ├── fontutils ··· font handling utilities ├── genkeymap ··· keymap generator ├── instfiles ··· installable data file ├── keygen ······ xrdp RSA key pair generator ├── libpainter ·· painter library ├── librfxcodec · RFX codec library ├── lib xrdp ····· core RDP protocol implementation ├── m4 ·········· Autoconf macros ├── mc ·········· media center module ├── neutrinordp · RDP client module for proxying RDP connections using NeutrinoRDP ├── pkgconfig ··· pkg-config configuration ├── scripts ····· build scripts ├┬─ sesman ······ session manager for xrdp |├── chansrv ···· channel server for xrdp |├── libsesman ·· Code common to sesman and its related executables |└── tools ······ session management tools for sys admins ├── tests ······· tests for the code ├┬─ tools ······· tools |└┬─ devel ······ development tools | ├── gtcp_proxy GTK app that forwards TCP connections to a remote host | └── tcp_proxy · CLI app that forwards TCP connections to a remote host ├── vnc ········· VNC client module for xrdp ├── vrplayer ···· QT player redirecting video/audio to clients over xrdp vr channel ├── xrdp ········ main server code ├── xrdp api ····· virtual channel API ├── xrdp vr ······ API for playing media over RDP └── xup ········· xorg xrdp client module">
 xrdp
├── common ······ common code
├── docs ········ documentation
├── fontutils ··· font handling utilities
├── genkeymap ··· keymap generator
├── instfiles ··· installable data file
├── keygen ······ xrdp RSA key pair generator
├── libpainter ·· painter library
├── librfxcodec · RFX codec library
├── lib xrdp ····· core RDP protocol implementation
├── m4 ·········· Autoconf macros
├── mc ·········· media center module
├── neutrinordp · RDP client module for proxying RDP connections using NeutrinoRDP
├── pkgconfig ··· pkg-config configuration
├── scripts ····· build scripts
├┬─ sesman ······ session manager for xrdp
|├── chansrv ···· channel server for xrdp
|├── libsesman ·· Code common to sesman and its related executables
|└── tools ······ session management tools for sys admins
├── tests ······· tests for the code
├┬─ tools ······· tools
|└┬─ devel ······ development tools
| ├── gtcp_proxy  GTK app that forwards TCP connections to a remote host
| └── tcp_proxy · CLI app that forwards TCP connections to a remote host
├── vnc ········· VNC client module for xrdp
├── vrplayer ···· QT player redirecting video/audio to clients over xrdp vr channel
├── xrdp ········ main server code
├── xrdp api ····· virtual channel API
├── xrdp vr ······ API for playing media over RDP
└── xup ········· xorg xrdp client module
下载源码

通过命令行克隆项目:

git clone https://github.com/neutrinolabs/xrdp.git