Remote GUI Desktops

General Information

Remote desktop application setup.



X2Go is “an open source remote desktop software for Linux that uses the NX technology protocol”.

Desktop Environment Compatibility

  • CentOS 6 and 7: Install x2go server
    yum 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.

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: -#

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 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)

Install xrdp

yum install xrdp

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.2
    sed -i 's/ssl_protocols=.*/ssl_protocols=TLSv1.2/' /etc/xrdp/xrdp.ini
  • Set Ciphers to AES
    sed -i 's/#*tls_ciphers=.*/tls_ciphers=AES/' /etc/xrdp/xrdp.ini

Log Settings

  • Set logging levels to warning instead of debug
    sed -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 settings
    vim /etc/xrdp/
    if [ -f /etc/X11/xinit/xinitrc ]
        source /etc/profile
        . /etc/X11/xinit/xinitrc
        exit 0

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

  • linux_wiki/remote_gui_desktops.txt
  • Last modified: 2019/05/25 23:50
  • (external edit)