08-30-2019, 10:27 PM
*This tutorial is part of a series, visit the main thread to learn more*
Thanks to @"Hidden Refuge" suggestion, I successful set up a x2go sever to remote desktop access. I find the set up of x2go A LOT OF EASIER compared to the installation of VNC, you can find a step-by-step guide of VNC installation by @"Hidden Refuge" here.
On this tutorial we will learn what is a remote desktop access, why we are using x2go and how set up a x2go server/client.
Let's start with some information:
Thanks to @"Hidden Refuge" suggestion, I successful set up a x2go sever to remote desktop access. I find the set up of x2go A LOT OF EASIER compared to the installation of VNC, you can find a step-by-step guide of VNC installation by @"Hidden Refuge" here.
On this tutorial we will learn what is a remote desktop access, why we are using x2go and how set up a x2go server/client.
Let's start with some information:
- What is remote desktop access?
It is a feature that allow us to run and display a desktop environment session of a server (o personal computer) from a different device, often far from the server location. You will be able to remote graphically control a system using its own native UI. To develop this features a lot of protocols has been created and here a list of them (source Wikipedia):- Apple Remote Desktop Protocol (ARD): Proprietary protocol for Apple Remote Desktop on macOS machines.
- Appliance Link Protocol (ALP): A protocol for Sun Microsystems featuring audio (play and record), remote printing, remote USB, accelerated video.
- HP Remote Graphics Software (RGS): A proprietary protocol designed by Hewlett-Packard specifically for high end workstation remoting and collaboration.
- Independent Computing Architecture (ICA): A proprietary protocol designed by Citrix Systems.
- NX technology (NoMachine NX): A cross platform protocol featuring audio, video, remote printing, remote USB, H264-enabled.
- PC-over-IP (PCoIP): A proprietary protocol used by VMware.
- Remote Desktop Protocol (RDP): A Windows-specific protocol featuring audio and remote printing.
- Remote Frame Buffer Protocol (RF: A framebuffer level cross-platform protocol that VNC is based on.
- SPICE (Simple Protocol for Independent Computing Environments): A remote-display system built for virtual environments by Qumranet, now Red Hat.
- Splashtop: A high performance remote desktop protocol developed by Splashtop, fully optimized for hardware (H.264) including Intel / AMD chipsets, NVIDIA / ATI GPU & APU, Qualcomm Snapdragon, and NVIDIA Tegra. By optimizing for different profiles of media codecs, Splashtop can deliver high frame rates with low latency, and also low power consumption.
- Xpra: A protocol originally developed for forwarding X11 application seamlessly with audio, video, remote printing, etc - extended to support Windows and macOS servers.
- X Window System (X11): A cross-platform protocol mainly used for displaying local applications.
- Apple Remote Desktop Protocol (ARD): Proprietary protocol for Apple Remote Desktop on macOS machines.
- Why use x2go instead of VNC?
- x2go uses NX 3 protocol instead of RFB(VNC) protocol.
- When connecting hosts across the network, the NX protocol works as a generic tunnel, with additional framing and flow control information, and dynamically adapts compression and bandwidth according to network speed and capacity. For compatibility, multiplexing is based on the version 3 schema. [from Wikipedia, I couldn't express so good as it).
- The connection is established via SSH
- Works at full with 2D graphics.
- x2go uses client-rendering
- x2go-server is started on demand when a connection is established
- x2go uses NX 3 protocol instead of RFB(VNC) protocol.
- These aren't all the good things of x2go but I listed the main important information.
- Installing x2go-server (The commands should be runned as sudo or root):
- Connect to your server and login as root;
- Make sure that your system is up to date with the following command:
- UBUNTU:
Code: (Select All)apt-get update && apt-get upgrade
- CENTOS:
Code: (Select All)yum update
- UBUNTU:
- Now we need to add the x2go repository
- UBUNTU: x2go is available on x2go official PPA, to add the ppa run the following command:
On latest ubuntu versions, this command will automatically trigger a update but if you are on a <18.XX version you need to:Code: (Select All)add-apt-repository ppa:x2go/stable
Code: (Select All)apt-get update
- CENTOS: x2go is available on EPEL repository, so we need to add EPEL on our system:
Code: (Select All)yum install epel-release
- UBUNTU: x2go is available on x2go official PPA, to add the ppa run the following command:
- Now we can install x2go using the following command:
- UBUNTU:
Code: (Select All)apt-get install x2goserver x2goserver-xsession
- CENTOS:
Code: (Select All)yum install x2goserver x2goserver-xsession
- UBUNTU:
- Installing a desktop environment (The commands should be runned as sudo or root):
Now you can install whatever DE you want, but a server's resources are very valuable so I recommend to install a lightweight DE such as XFCE or LX.DE:- To install XFCE use the following command:
- UBUNTU:
Code: (Select All)apt-get install xfce4
- CENTOS: xfce is available on EPEL repository, but we have already installed it, so we need just to run this command:
Code: (Select All)yum groupinstall xfce
- UBUNTU:
- To install LX.DE use the following command:
- UBUNTU:
Code: (Select All)apt-get install lxde
- CENTOS: lx.de isn't available on official repository so I reccomend to don't install it.
- UBUNTU:
- Extra: LX.DE developers are now focused on the their newest project, LXQT, based on Qt. You can install LXQT on UBUNTU using the following command:
Code: (Select All)apt-get install lxqt
WARNING: If you use this guide on OpenVZ keep the following in mind! The desktop environment installs a network manager. This network manager is not capable of supporting and configuring network adapters on OpenVZ! What will happen is that it will override the network adapters with nonsense and the network will stop working after the first reboot.
- To install XFCE use the following command:
To fix this problem follow the instructions by @"Hidden Refuge" here
- Installing x2go client and creating a session:
- Download the official x2go client for your OS from here
- Install and open the program and go to Session->New session... to create a new session
- A windows pop-up will show up, there are few tabs: Session, Connection, Input/Output, Media, Shared Folder. We will focus only on Session tab, the others contains setting that are easy to understand.
- On "Session name" set a name that will help you to identify on which server are you going to log in
- On "Host" set your VPS IP address or domain
- On "Login" set a linux user name which can SSH into the server
- If you changed the SSH port you need to set it on "SSH port"
- If you are using SSH keys to connect to your server, select your key on "Use RDA/RSA key for connection"
- Lastely, on "Session Type" select the DE that you installed on your server. The commons DEs don't require a "command".
- Click OK to save your session.
- Now by clicking on your session you will start the connection. If you are using SSH password, you will be asked to insert the password.
- Download the official x2go client for your OS from here
- Connect to your server and login as root;