X2Go is a free, open-source remote desktop system for Linux servers, used by sysadmins, researchers and small teams who need a responsive graphical Linux desktop over slow or distant links. X2Go Client is available for Windows, macOS and Linux; the X2Go Server side runs only on Linux and uses SSH for both login and transport, so a server that already accepts SSH needs no extra ports.
It is built on a modified version of the NX 3 protocol, which compresses and caches X11 traffic much better than plain VNC. Sessions keep running on the server when you disconnect, so you can suspend a desktop at the office and resume it from home. The project is maintained, but releases are infrequent: the most recent client came out in 2023.
X2Go at a glance
| Item | Details |
|---|---|
| Latest version | X2Go Client 4.1.2.3 (June 2023); X2Go Server 4.1.0.6 (August 2023) |
| Licence | Free and open source, GPL-2.0-or-later |
| Platforms | Client: Linux, Windows, macOS. Server: Linux |
| Developer | X2Go project (community; core developers include Oleksandr Shneyder, Heinz-M. Graesing, Mike Gabriel and Mihai Moldovan) |
| Official website | wiki.x2go.org |
| Best for | Fast remote Linux desktops and single applications over SSH, especially on slow or high-latency links |
What it does
- Runs a separate graphical Linux session for each user, independent of the server’s monitor.
- Tunnels everything through SSH, including password or key authentication, so port 22 is the only port to open.
- Uses NX compression and caching to stay usable over low bandwidth and high latency.
- Suspends and resumes sessions: applications keep running when the client disconnects.
- Publishes single applications so a remote program appears as a normal window on the user’s desktop.
- Forwards sound, shares local folders with the remote session and supports client-side printing.
- Can share an existing local desktop with the X2Go Desktop Sharing add-on, for help-desk style sessions.
- Scales to larger setups with the X2Go Session Broker, and offers PyHoca-GUI and PyHoca-CLI as alternative clients.
How IT teams use it
Set up an X2Go server on Ubuntu or Debian
- Install a compatible desktop and the server packages from the distribution repositories:
sudo apt update sudo apt install xfce4 x2goserver x2goserver-xsessionOn Fedora, and on RHEL-based systems with EPEL enabled, use
sudo dnf install x2goserver. - Make sure the SSH service is running and the firewall allows it, for example
sudo ufw allow OpenSSH. - In X2Go Client create a new session: host, login, SSH port 22, session type XFCE.
- Pick a connection speed preset that matches the link (for example ADSL or WAN for remote users) and connect.
Use SSH keys instead of passwords
- Generate a key on the client with
ssh-keygen -t ed25519and copy the public key withssh-copy-id user@server. - In the session settings choose the private key file, or enable the option to try automatic login through the SSH agent or default keys.
- Once keys work, disable password logins in
/etc/ssh/sshd_configon Internet-facing servers.
Publish one Linux application
- In the session settings set the session type to Single application and enter the command, for example
/usr/bin/firefox. - Connect: only that application’s window appears on the user’s desktop.
- Alternatively choose Published applications to let users pick from the server’s application menu.
Clean up stuck sessions on the server
- As the affected user list their sessions with
x2golistsessions. - End a broken one with
x2goterminate-session <session-id>.
Install and first run
Linux client. Install x2goclient from your distribution’s repositories (Debian, Ubuntu, Fedora, openSUSE and EPEL all package it).
Windows client. Use the official Windows installer listed on the X2Go wiki. The last officially announced Windows build is 4.1.2.2 from February 2020, and the 4.1.2.3 announcement warned that Windows and macOS builds might follow later; it still connects to current servers.
macOS client. Requires XQuartz to be installed first. Separate packages exist for older (OS X 10.11 and later) and newer (macOS 10.13 and later) systems.
Server. Linux only, with an SSH daemon and a supported desktop. LXDE, Xfce and MATE work without tweaks. GNOME 3.8 and later and modern KDE Plasma have compatibility problems because the NX agent lacks newer X extensions such as compositing and recent GLX. Wayland sessions are not supported.
Limitations
- The server runs only on Linux; X2Go cannot host Windows or macOS desktops.
- Modern GNOME and KDE desktops, Cinnamon and LXQt are poor fits; plan for Xfce or MATE.
- No Wayland support; sessions are X11 only.
- Slow release cadence: no new client or server release since 2023, and the Windows build lags behind.
- No web browser client and no commercial vendor support.
- GPU-heavy applications run without hardware acceleration in the session.
X2Go vs alternatives
ThinLinc covers the same need with a web client, clustering and vendor support, but it is free only up to 10 concurrent users. TigerVNC is simpler and works with modern desktops and Wayland, but it is not as fast on slow links. xrdp, a separate open-source project, lets standard RDP clients such as Remmina or Windows Remote Desktop connect to Linux, which is handy when users already have an RDP client.
FAQ
Is there an X2Go client for Windows?
Yes. An official Windows build of X2Go Client is linked from the X2Go wiki, together with installation and usage documentation.
Is X2Go available for Mac?
Yes, as a client. Install XQuartz first, then the X2Go Client package that matches your macOS version. There is no X2Go server for macOS.
Is X2Go free?
Yes. It is free and open source under the GPL, version 2 or later, for personal and commercial use.
X2Go vs xrdp: which is better?
X2Go is usually faster on slow links and needs only SSH, while xrdp works with standard RDP clients and tolerates modern desktops better. Choose X2Go for remote users with poor connections and xrdp when RDP compatibility matters.
Does X2Go support Wayland?
No. X2Go sessions run on X11 through the NX agent, so use an X11 desktop such as Xfce or MATE on the server.
How do I install X2Go?
On Ubuntu or Debian run sudo apt install x2goserver x2goserver-xsession on the server, install X2Go Client on your computer and connect over SSH.
X2Go vs VNC?
VNC sends screen images, while X2Go compresses X11 drawing commands, so X2Go is typically more responsive over the Internet. VNC is more universal and can share the physical screen and non-Linux systems.
Last checked against official sources: 1 October 2026 (developer website: wiki.x2go.org). Versions and licence terms change — confirm on the developer's site before deploying in production.
