The x2go Package



X2Go enables you to access a graphical desktop of a computer over a low bandwidth (or high bandwidth) connection.

X2Go is a Remote Desktop solution. This is not to be confused with Microsoft Remote Desktop Connection, which is a competing Remote Desktop solution and protocol.

With X2Go, you mainly access Linux computers. The Linux computer you are accessing is the X2Go Server. You can connect from a computer running Linux, Windows or Mac OS X. This computer is the X2Go Client.

Multiple users/clients can access a single X2Go Server at the same time, with each user/client having an individual Desktop session by default - however, Desktop sharing (Remote Assistance) is possible, too (see below).

For the graphical part of remote desktop sessions, X2Go uses No Machine NX3 technology under the hood.

When used with the UoB VPN, this program allows you start desktop sessions on servers such as and which you cannot ssh to directly. You don't need a VPN to run an x2go session on If you are having problems with the VPN, see the section at the end for a solution.


Documentation is at


Start the client by typing:
Then select 'new session' from the menu at the top left. Fill in the following details, eg for mensa:
Session name: mensa
login: your_username
then click on the settings tab and either select a custom screen size or use one of your displays if you have two (or more) screens. Then click OK.

Back in the main x2goclient screen, click on mensa on the word mensa on the RHS and log in as usual.

This should be much faster than just using X as the data is compressed between the server and client allowing for faster redraws of the screen.


The current version of X2Go Client is (Qt - 4.6.2) 23/6/2015.



Problems and Solutions

If you get this error:
X2Go Agent terminated unexpectedly. Aborting session startup. 
Then one possible solution is to remove /lib64 and /usr/ lib64 from LD_LIBRARY_PATH befor logging on with x2go. However, this may break other programs. You could also try completely removing all mention of LD_LIBRARY_PATH from you initialisation files. Test this by ssh-ing to the targe host and typing 'echo $$LD_LIBRARY_HOST' to see if it is defined.

If a window pops up complaining about D-bus, and when you click OK, it logs you out, then the problem is with your PATH variable. Specifically, the system python 2 must be the default python not a python 3 from Anaconda. The solution is to not have Anaconda python as the first python and use an alias command to make python 3 the default python if required. You could also use a virtual environment in python.

A typical command to add to your .bashrc file to make Anaconda python the default python would be:

alias ana3='export PATH=${HOME}/anaconda3/bin:${PATH}'
This assumes that you installed anaconda into a directory called anaconda3 in your home directory. Typing ana3 will put python3 at the start of your PATH and therefore the default. You can test this using the command 'which python'.

If you are having problems with the VPN and want to access a server eg or your desktop without the VPN, then here is a solution using a 'ssh proxy'.

Rhys Morris
Last modified: Tuesday, 31 March 2020