VNC, Remmina, X2Go: Remote desktop options for Linux

published Dec 22, 2015 02:10   by admin ( last modified Dec 22, 2015 03:47 )

I have used VNC for many, many years - but I am now experimenting with x2go to see if it can give better performance when the client is run from a Raspberry pi, and over remote connections.

VNC

There are many varieties of VNC clients and servers. TightVNC is in the Ubuntu repositories, as is Xvnc. TigerVNC should allow changing the resolution of the desktop on the fly.

Some advantages of VNC (points below taken almost verbatim from here):

  • Can be integrated into a hypervisor. It is integrated into KVM, Xen, VMware Workstation. This enables administering a VM before the OS is installed, and you can administer a VM with no network connection. You connect to the host's IP address, not the VM's IP address.
  • When properly setup with VirtualGL, TurboVNC can take advantage of a server's graphics card for 3D rendering.
  • VNC has support for 3D/compositing desktops such as GNOME3.

 

X2Go

X2Go seems to be an offshoot from Nomachine NX, which is a high-performance-to-bandwidth remote desktop solution used by large companies such as Ericsson.

I am currently testing X2Go, and actually sharing the screen from a VNC-started X session that has its own desktop on the server. The reason for this is that the server does not have a monitor connected to it and I already have a VNC server running there with its own desktop. There are other ways to do this on a headless server, mentioned here: Running a lightweight GUI on your vps via X2Go - Tutorials and Guides - vpsBoard. I have now tested a proper x2go connection to a Ubuntu server running the MATE desktop environment, much snappier.

start [X2Go - everywhere@home]

Advantages of X2Go (points below taken almost verbatim from the same place):

  •  Audio support
  • Folder Sharing
  • Printer sharing
  • High performance for 2D desktop usage
  • Works natively over SSH

Update: X2Go has this propensity to disappoint me, eventually. Last time I tried it it segfaulted. That did not happen this time. Right now it is instead because the Raspbian version of X2GoClient is too old to connect to the modern version of X2GoServer for Ubuntu 15.04:

wiki:repositories:start [X2Go - everywhere@home] - Newer / more packages are not available currently. X2Go's upstream package archive does not include Raspbian packages.

Still, it works from laptops, which is half the solution I wanted, at least. Will try to see if it is possible to somehow make Raspbian x2goclient play nice.

Update: You can get the Raspbian x2goclient to work again! You need to configure the ssh server (Ubuntu 15.04 in my case) where x2goserver resides to accept deprecated (and hence somewhat insecure) ciphers. This line added to my sshd_config made it possible:

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

Do note that it should all be on one line, especially the "KexAlgorithms" should not be on its own line. Because then ssh logins get disabled wholesale, I am privy to know.

And you will need to delete the server from the ~/.ssh/known_hosts file, or x2goclient will refuse to connect.

Remmina

Untested by me so far. Seems to be able to speak many protocols and doesn't propose a new one. The web site seems to not have been updated in one year, but the there is recent activity in the source code repository. It should be able to connect to both VNC and Nomachine NX, among other protocols.

FreeRDP/Remmina

"Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported."