This is an old revision of the document!
For those who want to find reasons for certain behavior of X2Go, read here: How To Debug or Troubleshoot your X2Go installation
No. It is not possible to use NX client to log on to an X2Go server and vice versa.
X2Go does use the same libraries for graphics, keyboard/mouse input, and clipboard sharing. However, X2Go aims for an even greater integration into the Linux environment. Therefore, X2Go performs session handling in an incompatible manner.
X2Go also performs SSH authentication in a different manner than NoMachine does.
Yes - the NX libraries of X2Go are actually the most recent stable versions of NXv3 libs available. They are versioned as 3.5.0.x and include the patchset developed by X2Go and others. NoMachine dropped the NXv3 development branch completely and NXv4 was released as closed source only .
In former times the NX libs shipped with X2Go installed into an X2Go'ish location so that they would not interfere with the original NX libraries.
Nowadays the NX libs shipped with X2Go work as a replacement for the NXv3 that are not maintained by NoMachine anymore.
(This FAQ article has been written by Mike Gabriel and Mike DePaulo. If someone does not agree with the given information on NoMachine, please be so kind to contact us, so that we can discuss it and possibly correct errors in the given information).
Note that originally, “nx-libs” was not a single git repo. Instead, it was 7 separate tarballs:
Only the topmost three are libraries.
Having separate tarballs made maintenance more difficult, so they were combined into one as the X2Go project started redistributing them.
You are probably referring to the LBX post-mortem
It is true that X11 forwarding's performance can be improved by SSH's zlib compression and by the use of XCB rather than xlib.
However, nx-libs performs 3 additional performance improvements:
The topmost two performance improvements also reduce bandwidth usage, which has the effect of improving performance when other users are sharing the same WAN link.
The simple answer is that the OpenSSH server treats the connection differently (in such a way that degrades nx-libs performance) unless X11 forwarding is enabled.
LTSP requires a high bandwidth on your network. It can efficiently be used in Local Area Networks (LANs) only.
However, X2Go is not a mere solution for local area networks, but it also allows for the integration of a mobile network into the system. Nomachine’s NX libraries - used by X2Go - enable the transport of whole desktop sessions over a narrow bandwidth connection through the internet.
Further bonuses of X2Go are that you can pause a desktop session and take it to a different thin client for further use.
Both packages (
x2goserver-one) are obsolete as of April 2011. They have been removed from the current .deb repositories and they should not be used anymore (in fact they break your system). On .deb based system they will automatically be uninstalled with an update of the
X2go Server currently does neither have any group membership restrictions any more as former versions had. This may well be re-introduced, though, if someone picks up work on that.
x2goserver-home package added all known users on the server system to the group
x2gousers which made some people nervous when testing X2Go on production systems. For this reason we have dropped the auto-adding of users to groups in Apr 2011.
No. The PostgreSQL database is only needed if you are planing to use more than one connected server (server array). By default X2Go Server installs with SQLite3 support enabled. To set up X2Go with PostgreSQL as the DB backend you have to edit X2Go Server's configuration in /etc/x2go.
Strictly speaking, the only daemon/service that needs to be running is the SSH daemon. If users can connect to your server via an SSH client, then they should be able to connect via X2Go Client or PyHoca-GUI/PyHoca-CLI.
Depending on your Linux distribution, there may be an X2Go server init script called
x2goserver or a systemd service called
x2gocleansessions.service. It is highly recommended that this service be enabled. It handles session cleanup, but does
'not' provide X2Go “login functionality”. You must not assume that the service is running correctly if logins via any of the X2Go client applications are possible. It is also
'not' a prerequisite for new X2Go sessions.
So long as X2Go uses the NX protocol exclusively for remote display and keyboard/pointer input, X2Go cannot support Wayland or Mir. Audio and file/printer sharing are handled by separate protocols. This is because NX works with the X11 protocol, rather than using an entirely separate protocol like SPICE and VNC do. NX improves X11 performance by caching the X11 traffic, compressing it, and eliminating the X11 “round-trips”.
If in doubt, pick the regular X2Go Client (x2goclient). It is the most widely used and tested.
Probably because the server does not listen to client connections. Check whether the file
/etc/pulse/default.pa on the client contains the line:
load-module module-native-protocol-tcp auth-cookie=".pulse-cookie"
If not, add it. Alternatively you can load the module at runtime:
pactl load-module module-native-protocol-tcp 'auth-cookie=".pulse-cookie"'
To set a print target, you'll need
x2goclient. For example you can use the RDP tunneling feature of X2Go.
Although some tools (e.g. Gnome Keyboard Indicator) might have trouble changing the layout, you should be able to change the keyboard layout using
setxkbmap de setxkbmap us
This happens because of a package called
kscreen. You might encounter an X2Go session trying to launch KDE and this KDE session not resizing properly to your client-side screen or session window size.
In general, this is not a bug. Using two applications -
kscreen and X2Go client applications' resizing features - that handle display resolution is not supported, as it can lead to many unexpected situations and race conditions.
On machines that act as an X2Go Server only, it may make sense to remove the
kscreen package completely. This, however, may have a negative effect on your X2Go server's plug'n'play capabilities. The
kscreen package handles hotplugging of display hardware. Hence, if your X2Go Server machine is also used as a physical desktop machine, consider well, if it is OK to remove that package or not.
For X2Go we suggest disabling the KScreen KDED module in the user's profile, since X2Go handles resolution switches for you:
System Settings -> Startup and Shutdown -> Service Manager, uncheck "KScreen 2"
To manually change output settings (rotation, enabling/disabling outputs etc) use the KScreen KCM.
Some people have asked for font size customizations in X2Go session windows. Please use the DPI value in the session setup to customize font sizes within your X2Go sessions:
Add users that shall be granted X2Go file and folder sharing functionality to the
fuse group on your system (openSUSE/SLES users: to the
trusted group). Example for user
$ sudo gpasswd -a foo fuse
# if on SUSE + derivatives $ sudo gpasswd -a foo trusted
This KB article shows one solution for this:
Currently, older versions of the ssh library used by X2Go called
libssh are unable to work with ECDSA keys.
However you may use an RSA key - if you need to - or go with the SSH default authenticating method using the remote user's password.
If you already use OpenSSH to get a shell on your x2go server, you may get this message when trying to connect with x2go:
The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist
This is related to the ECDSA host key (related to the previous FAQ entry - although there is a subtle difference between host and client keys.) To solve this issue, you can disable ECDSA keys on your OpenSSH server configuration, by commenting the following line in /etc/ssh/sshd_config file:
Then restart the SSH service. Now you should not get the error message anymore.
Eclipse and DartEditor crash on Debian Wheezy due to the
cairo library, as explained on http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721181.
The bug report and its links explain how to work around this problem by updating to the cairo library from Jessie, or modifying a line in the /usr/bin/eclipse launcher script, changing the last line:
exec $ECLIPSE "$@"
exec $ECLIPSE -vmargs -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false "$@"
If when using LibreOffice, text selections and copy/paste operations spike your CPU usage, disable anti-aliasing and selection transparency in the LibreOffice options.
If using Mate DE, your numlock key makes numeric keyboard act in a numeric manner or as a movement keys, disable the dconf setting with:
gsettings set org.mate.peripherals-keyboard remember-numlock-state false
Another interesting setting is:
gsettings set org.mate.peripherals-keyboard numlock-state 'on'
Lastly, you can tell X to always use numeric pad as digits, on keyboard options.
Using an buffered X-window and reducing the update rate can significantly improve performance for complex graphs.
#Only update Window every 5 seconds (you have to play with this value) options(X11updates = 5) #Open a new X-Window with buffered window X11(type = "dbcairo"); #Everything following this line will be drawn into this window.
Please visit de-compat to find out which Desktop Environments are supported on the X2Go Server side.