Skip to Content
X2Go

X2Go

Remote desktop sessions for Linux using the NX protocol

X2Go is an open source remote desktop server for Linux that uses the NX technology protocol. In QuickBox Pro, X2Go is installed as a system service (x2goserver) and is accessed through the X2Go client over a dedicated SSH port.

It is not a browser-based dashboard or web app. Access is provided via the X2Go client using the server host and the assigned QuickBox username.


Overview

X2Go provides remote desktop sessions for Linux servers and is designed for users who need a full GUI environment over an efficient NX-based connection. QuickBox Pro installs the X2Go server packages, enables the x2goserver service, and prepares per-user session directories.

If you need a web UI or browser-based control panel, X2Go is not the right tool. It requires the X2Go client and connects over your server’s SSH port (4747 unless a different port was chosen at install). If you do prefer browser-based remote access, check out noVNC for browser-based remote access options.

Key features

QuickBox Pro wires X2Go as a system-managed service with a predictable connection workflow. The install process pulls packages from the X2Go apt repository and keeps the service managed by systemd.

NX-based Remote Desktop

Open source Linux remote desktop using the NX technology protocol.

SSH-Based Sessions

Client connections use your server's SSH port (4747 unless a different port was chosen at install).

System Service

Managed by systemd as x2goserver during install and updates.

Per-User Session Files

Creates /home/username/.x2go with an ssh/ directory for user sessions.

X2Go Server Packages

Installs x2goserver, x2goserver-xsession, and pulseaudio via apt.

Official Repository

Adds the X2Go apt repository in /etc/apt/sources.list.d/x2go.list with keyring support.

When to use it

Use X2Go when you need a full Linux desktop session on a server instead of a web UI. It is ideal for administrators who want a dedicated client-based workflow rather than a browser route.

Good fit when

  • You need a remote Linux desktop session instead of a browser UI.
  • You can install and use the X2Go client on your personal computer.
  • You want a system-managed service that runs as x2goserver.
  • You are an administrator and can install admin-only software from the dashboard.

What QuickBox sets up

  • QuickBox installs X2Go server packages and enables the x2goserver service.
  • Client connections use your server's SSH port (4747 unless a different port was chosen at install) with your QuickBox username.
  • Session directories are created under /home/username/.x2go.
  • X2Go appears in the Package Management catalog for installs and reinstalls.

Installation

Install from the Dashboard

Open App Dashboard → Package Management (/dashboard?mode=packages), find X2Go in the Remote Access category (or search), and click Install. X2Go is a system-wide service, so it is an admin operation; the catalog is filtered by your group membership and admin role. The dashboard streams the install log live; Reinstall, Update, and Remove are on the same panel. X2Go pulls the X2Go server packages plus a desktop session stack, so its install takes longer than most apps.

See App Management for the full flow.

Install from the CLI (automation)

The CLI runs the same script. X2Go is system-wide, so no -u is needed:

qb install x2go qb reinstall x2go qb update x2go qb remove x2go

Full flag reference: CLI Reference.

Access and authentication

X2Go access details are provided by the QuickBox access output after install. Use those values in the X2Go client to establish a session over SSH.

URL / route

The QuickBox access output for X2Go provides connection details and does not list a web URL. Access is handled through the X2Go client over SSH.

Login / credentials / tokens

Use the X2Go client and connect with the values provided after install:

Field
Host
Value
Server IP shown in the QuickBox access output
Field
Login
Value
QuickBox username
Field
SSH port
Value
4747 unless a different port was chosen at install
Field
Session type
Value
XFCE
Field
Session type (alternate)
Value
MATE

Security notes

X2Go connections use your server’s SSH port (4747 unless a different port was chosen at install), as documented by the QuickBox access output. The CLI install output prints the real port for your server.

Open with X2Go from the dashboard

The App Dashboard can hand your X2Go client a ready-made session so you do not have to rebuild the connection by hand. The X2Go row has an Open with X2Go launch button, and because IPTVBoss is a desktop-only app, the IPTVBoss row’s Desktop Access offers the same Open with X2Go option (next to Open in Browser, which launches noVNC when it is installed).

Clicking Open with X2Go does two things: it downloads a small session file named quickbox-username.x2go, and it opens a Connect with X2Go Client dialog with first-time setup for your operating system plus the copyable connection details (Host, SSH port, Login, and the XFCE session type). The X2Go client must already be installed on your own computer; the file carries the connection details, not the client itself, and never your password.

Whether double-clicking the downloaded file opens it depends on your client version:

  • X2Go Client version 4.1.2.3 or newer (the current Linux packages on Debian 13 and Ubuntu 24.04) opens .x2go session files directly.
  • The Windows and macOS downloads, and older Linux packages, ship version 4.1.2.2 and need the one-time setup below, or you can enter the connection details from the dialog once.

Once the client has the session, X2Go Client 4.1.2.2 shows the QuickBox session tile for you to click; 4.1.2.3 selects it for you. Then type your password to connect, as the session file never contains it.

Any platform: enter the details once

The connection details in the dialog always work. Open X2Go Client, add a session with the dialog’s Host, SSH port, Login, and the XFCE Session type, and the client remembers it for next time.

Windows

Run this block once in PowerShell (current user, no administrator rights needed). Afterwards, double-clicking a downloaded .x2go file opens the session.

# Optional: if X2Go Client is installed somewhere unusual, put the full path to x2goclient.exe here. $x2go = '' if (-not $x2go) { $found = @() foreach ($k in 'HKLM:\SOFTWARE\WOW6432Node\x2goclient', 'HKLM:\SOFTWARE\x2goclient') { $d = (Get-ItemProperty -Path $k -ErrorAction SilentlyContinue).'(default)' if ($d) { $found += Join-Path $d 'x2goclient.exe' } } foreach ($k in 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\x2goclient', 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\x2goclient', 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\x2goclient') { $u = Get-ItemProperty -Path $k -ErrorAction SilentlyContinue if ($u.DisplayIcon) { $found += ($u.DisplayIcon -replace '"', '' -replace ',\d+$', '') } if ($u.InstallLocation) { $found += Join-Path $u.InstallLocation 'x2goclient.exe' } } $open = (Get-ItemProperty -Path 'HKCU:\Software\Classes\Applications\x2goclient.exe\shell\open\command' -ErrorAction SilentlyContinue).'(default)' if ($open -match '^"?([^"]*x2goclient\.exe)') { $found += $Matches[1] } try { $shell = New-Object -ComObject WScript.Shell foreach ($m in "$env:ProgramData\Microsoft\Windows\Start Menu\Programs", "$env:APPDATA\Microsoft\Windows\Start Menu\Programs") { Get-ChildItem -Path $m -Filter 'X2Go Client.lnk' -Recurse -ErrorAction SilentlyContinue | ForEach-Object { $found += $shell.CreateShortcut($_.FullName).TargetPath } } } catch { } $cmdInfo = Get-Command x2goclient.exe -ErrorAction SilentlyContinue if ($cmdInfo) { $found += $cmdInfo.Source } foreach ($drive in [System.IO.DriveInfo]::GetDrives() | Where-Object { $_.DriveType -eq 'Fixed' -and $_.IsReady }) { foreach ($sub in 'Program Files (x86)\x2goclient', 'Program Files\x2goclient', 'x2goclient') { $found += Join-Path (Join-Path $drive.RootDirectory.FullName $sub) 'x2goclient.exe' } } $x2go = $found | Where-Object { $_ -and (Test-Path -LiteralPath $_ -PathType Leaf -ErrorAction SilentlyContinue) } | Select-Object -First 1 } if ($x2go -and (Test-Path -LiteralPath $x2go -PathType Leaf)) { $cmd = '"' + $x2go + '" "--session-conf=%1"' foreach ($k in 'HKCU:\Software\Classes\.x2go', 'HKCU:\Software\Classes\QuickBox.X2GoSession\shell\open\command', 'HKCU:\Software\Classes\Applications\x2goclient.exe\shell\open\command') { if (-not (Test-Path $k)) { New-Item -Path $k -Force | Out-Null } } Set-Item -Path 'HKCU:\Software\Classes\.x2go' -Value 'QuickBox.X2GoSession' Set-Item -Path 'HKCU:\Software\Classes\QuickBox.X2GoSession\shell\open\command' -Value $cmd Set-Item -Path 'HKCU:\Software\Classes\Applications\x2goclient.exe\shell\open\command' -Value $cmd Write-Host "Done. .x2go session files now open with $x2go" } else { Write-Host 'X2Go Client was not found. Set $x2go on the second line to the full path of x2goclient.exe (for example D:\Program Files\x2goclient\x2goclient.exe) and run this again, or install it from https://wiki.x2go.org/doku.php/download:start' }

The script finds X2Go Client in its usual install locations on any drive. If X2Go Client is installed somewhere unusual, enter its location in the dialog’s X2Go Client location field (for example D:\Program Files\x2goclient\x2goclient.exe). The command updates to match, and the dashboard remembers the location in this browser. If you copied the command from this page instead, put the path on its second line.

Harmless console line on Windows

A line reading Deprecated option UsePrivilegeSeparation can appear in the console when the session opens. It comes from X2Go Client’s own bundled SSH helper and does not affect the connection.

Linux (X2Go Client older than 4.1.2.3)

If your Linux client is older than version 4.1.2.3, run this block once to associate .x2go files with X2Go Client. The same field fills in the client’s path for a non-standard install.

mkdir -p ~/.local/share/applications ~/.local/share/mime/packages cat > ~/.local/share/mime/packages/x-x2go.xml <<'XML' <?xml version="1.0" encoding="utf-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"><mime-type type="application/x-x2go"><comment>X2Go session file</comment><glob pattern="*.x2go"/></mime-type></mime-info> XML update-mime-database ~/.local/share/mime printf '[Desktop Entry]\nType=Application\nName=X2Go Client (session file)\nExec=x2goclient --session-conf=%%f\nMimeType=application/x-x2go;\nNoDisplay=true\n' > ~/.local/share/applications/quickbox-x2go.desktop xdg-mime default quickbox-x2go.desktop application/x-x2go

macOS

Finder cannot hand session files to X2Go Client. Add the session once in the client using the dialog’s Host, SSH port, Login, and the XFCE Session type, or run this Terminal line (replace <username> with your session user).

open -a x2goclient --args "--session-conf=$HOME/Downloads/quickbox-<username>.x2go"

The session file uses your dashboard address as the host. If your dashboard sits behind a proxy such as Cloudflare, the file uses the server’s own IP instead so the connection reaches SSH directly. The SSH port written into the file is the same port shown in Access and authentication above.

Configuration and files

QuickBox creates a per-user X2Go directory and SSH subfolder for session data. It also manages repository and service files that are removed during an uninstall.

/home/username/.x2go
ssh/# X2Go session SSH data

System-level files and directories created or managed during install/remove include:

  • /etc/apt/sources.list.d/x2go.list
  • /usr/share/keyrings/x2go.gpg
  • /etc/x2go
  • /var/lib/x2go
  • /var/spool/x2goprint

Common tasks

Use systemd to control the X2Go server service. Use QuickBox CLI commands for lifecycle operations like update, reinstall, and removal.

Start/stop the service

systemctl start x2goserver systemctl stop x2goserver systemctl restart x2goserver

Update, reinstall, or remove

qb update x2go qb reinstall x2go qb remove x2go

Typical workflows

  • Install X2Go from the CLI or the dashboard Package Management tab.
  • Install the X2Go client on your personal computer and connect using the host, username, and SSH port from the access output (4747 unless a different port was chosen at install).
  • Or use the App Dashboard: click Open with X2Go on the X2Go row to download a ready-made session file and open it with your client.
  • Choose XFCE or MATE as the session type when creating a profile.
  • Use systemctl to start or stop x2goserver if needed.

FAQ

These answers summarize the connection details and requirements printed by QuickBox during install. If your environment differs, use the access output as the source of truth.

Download the X2Go client from the official X2Go installation page.
By default X2Go uses SSH port 4747. If a different SSH port was chosen at install, X2Go uses that port instead. The access output printed after install shows the real port for your server.
Yes. The App Dashboard X2Go row has an Open with X2Go button that downloads a ready-made session file. Open that file with your locally installed X2Go client and enter your password - the file carries the host and port, not your password, and X2Go must be installed on your own computer.
Use the QuickBox username shown in the access output after install.
No. X2Go is accessed through the X2Go client over SSH rather than a web URL.

Best practices

Follow the QuickBox workflow and the supported session types for consistent connections. This keeps your client profile aligned with the settings QuickBox expects.

Do

  • Use qb install x2go and qb update x2go for lifecycle management.
  • Install the X2Go client on your personal computer before attempting to connect.
  • Select XFCE or MATE when configuring the session type.

Don't

  • Do not attempt to connect without the X2Go client installed.
  • Do not choose a session type other than XFCE or MATE.

Troubleshooting

Most issues come down to connection details or session selection. Confirm the values from the QuickBox access output before troubleshooting deeper.

Connection fails on the X2Go SSH port

Symptom: The client cannot connect to the X2Go server.
Checks: Confirm you are using your server’s SSH port (4747 unless a different port was chosen at install) and the server IP shown in the QuickBox access output.

Login fails

Symptom: Authentication fails after connecting.
Checks: Ensure the login username matches the QuickBox username shown in the access output after install.

Session type not available

Symptom: The session does not start or shows errors about the desktop environment.
Checks: Choose XFCE or MATE as the session type in the X2Go client.

Running X2Go alongside noVNC

X2Go and noVNC can run on the same server at the same time. Installing X2Go stands up a per-user D-Bus session; on an older noVNC install that could leave the browser-based noVNC desktop showing a blank grey screen. QuickBox’s current noVNC session startup launches its Xfce desktop on its own isolated D-Bus, so the two coexist cleanly and both render fine.

If your noVNC desktop went blank after installing X2Go, update (or reinstall) noVNC to apply the fix - X2Go itself needs no change:

qb update novnc -u username

Resources

Use these upstream references for client installation and repository details. They match the sources QuickBox uses during install.


Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server
Last updated on