Efficient Remote Desktop on linux: xrdp with RemoteFX
The two most known Remote Desktop Service on linux are XDMCP and VNC.
- XDMCP because of the nature of X11, allowing network support directly into the protocol by design. Mostly known by advanced linux admins and seniors unix users.
- VNC because of the easy to install a server, the availability to get a free server and client. Mostly known by users working on other platform (Windows, Mac).
These two protocol suffer from performance issue.
There is still place for RDP, mostly known because of the remote desktop service for microsoft servers, also some implementation exist in Linux: xrdp
xrdp is a old project. Its website is "WEB 1.0 Ready", but don't pay attention,
xrdp is still maintened and new features are coming. If you look on Github's Repository, the project is active. One interesting feature added recently, appart the RDP driver for Xorg, is the support for RemoteFX Codec:
RemoteFX covers three part: vGPU, USB redirection, and a codec to stream videos (RDP 7.1). RemoteFX Codec is the feature available now in xrdp
The library itself to use is librfxcodec and you need to compile
xrdp with the option
Note: don't use packages version of xrdp, it's probably 0.6, and is very old. Prefer using source. There is still no tarballs available for xrdp, but get sources from github, it's currently stable.
#!bin/bash # Get packages apt-get install libx11-dev libxfixes-dev libssl-dev libpam0g-dev libtool libjpeg-dev flex bison gettext autoconf libxml-parser-perl libfuse-dev xsltproc libxrandr-dev python-libxml2 nasm xserver-xorg-dev fuse #clone repo git clone https://github.com/neutrinolabs/xrdp.git git submodule init git submodule update #lib RFXcodec cd librfxcodec make cd .. #rdp module for xorg cd xorgxrdp/ ./bootstrap ./configure make sudo make install cd .. #xrdp itself ./bootstrap ./configure --enable-fuse --enable-rfxcodec --enable-fuse --enable-jpeg make sudo make install #generate keys: sudo xrdp-keygen xrdp auto 2048 service xrdp start
You'll need a RDP client capable to support remoteFX RDP 7.1. : Windows7 native client,
Microsoft Remote Desktop on mac (based on freerdp)
xfreerdp /rfx /v:remote-server.local
At login, choose
Session Manager in the combo box to use Xorg + RDP module, instead of the old X11rdp binary
To see the difference with "RemoteFX", play a video from youtube in your browser in the remote session. Even on a slow link, you'll be able to watch the video without lag!