====== Remote GUI Desktops ======
**General Information**
Remote desktop application setup.
**Checklist**
* Pre-req: [[linux_wiki:gui_desktops|Install a GUI desktop]] on the remote server.
----
====== X2Go ======
X2Go is "an open source remote desktop software for Linux that uses the NX technology protocol".
* Official Site: https://wiki.x2go.org/doku.php
\\
===== X2Go: Install =====
**Desktop Environment Compatibility**
* Compatible, No Workarounds
* LXDE
* XFCE
* MATE
* Compatible, with Workarounds
* KDE 5 (plasma) -> very slow
* Cinnamon -> Buggy, requires fallback mode
* More Details: https://wiki.x2go.org/doku.php/doc:de-compat
----
==== X2Go: Install on Servers ====
* **CentOS 6 and 7**: Install x2go serveryum install fuse-sshfs x2goserver x2goserver-xsession
* Note: There is no service to start, as the x2go clients connect via ssh and use the NX protocol to forward the graphical display.
----
==== X2Go: Install on Clients ====
* Download the last client from: https://wiki.x2go.org/doku.php/download:start
* Follow online instructions and launch client after install
----
===== X2Go: Configure =====
Configuring x2go.
X2Go config files are located:
* /etc/x2go/
**Server: Fix for atom/other text editors crashing connected via X2GoClient**
* Edit server side config file (/etc/x2go/x2goagent.options) and append#- Fix for Atom Crashing: https://github.com/atom/atom/issues/4360 -#
X2GO_NXAGENT_DEFAULT_OPTIONS+=" -extension BIG-REQUESTS"
**Client: Fix for Windows Firewall Messages Popping Up**
* Windows Firewall messages pop up about various features being blocked during connection. To make these go away, some X2GoClient session features can be disabled.
* X2Go Client Window: Session > Session management...
* Select your saved session > click Session preferences
* Click the Media tab
* Uncheck "Enable sound support"
* Uncheck "Client side printing support"
* Click "Ok"
* On Session Management, Click "Exit"
**Client: Performance Settings**
* Various performance settings in the X2Go Client
* Session Preferences
* Connection tab
* Connection Speed: Adjust to connection speed
* Compression Method and Quality
----
====== XRDP ======
xrdp runs on a Linux system and allows for native Windows RDP to connect to it.
**Note:** xrdp checks only if a session with the same geometry is already opened. It will start a new session if the geometry/resolution doesn't match. This means if you connect using an external monitor initially, and resume with a different monitor with different resolution being sent, you will get a new session. Resolution settings are configurable via the RDP client display settings. (Full screen is the default)
===== XRDP: Install =====
Install xrdp
yum install xrdp
===== XRDP: Configure =====
**Performance Settings**
* Change xrdp bpp to 16 (/etc/xrdp/xrdp.ini)sed -i 's/max_bpp=32/max_bpp=16/' /etc/xrdp/xrdp.ini
* Increase Max Sessions (/etc/xrdp/sesman.ini)sed -i 's/MaxSessions=10/MaxSessions=50/' /etc/xrdp/sesman.ini
**Security Settings**
* Only Allows TLS1.2sed -i 's/ssl_protocols=.*/ssl_protocols=TLSv1.2/' /etc/xrdp/xrdp.ini
* Set Ciphers to AESsed -i 's/#*tls_ciphers=.*/tls_ciphers=AES/' /etc/xrdp/xrdp.ini
**Log Settings**
* Set logging levels to warning instead of debugsed -i 's/LogLevel=.*/LogLevel=WARNING/' /etc/xrdp/xrdp.ini
sed -i 's/SyslogLevel=.*/SyslogLevel=WARNING/' /etc/xrdp/xrdp.ini
**PATH Settings**
* Add 'source /etc/profile' to xrdp's start script to get login PATH settingsvim /etc/xrdp/startwm.sh
if [ -f /etc/X11/xinit/xinitrc ]
then
source /etc/profile
. /etc/X11/xinit/xinitrc
exit 0
fi
Restart and enable xrdp
systemctl restart xrdp
systemctl enable xrdp
Ensure we are still starting the server in multi-user (no gui), change if not
systemctl get-default
systemctl set-default multi-user.target
----