What free Remote Desktop (server) solutions are there?

I know Ubuntu comes with a "Remote Desktop" option that appears to be a straightforward VNC server, and I'm trying to understand the alternatives. Here are the possibilities I've heard about so far:

  • VNC
  • VNC + SSH Tunnelling
  • NX Server, free edition
  • FreeNX
  • NeatX
  • X2Go
  • X11 Forwarding over SSH
  • xrdp

I'm coming at this from a Windows user's perspective: To the best of my experience, RDP (aka Terminal Services) is a reasonably secure (barring mitm/server spoofing), efficient desktop sharing protocol with well-supported clients, that can be exposed to the internet when necessary without major fears of intrusion. To the best of my knowledge straight VNC is none of those things, which is where I get confused - why wouldn't a better desktop sharing technology be developed or used in the open-source world? I know VNC can be wrapped with SSH, but that seems beyond the reach of a casual user. X11 forwarding over SSH may be more or less efficient, I have no idea, but is definitely even more complicated, and doesn't (as far as I know) give you access to already-running stuff (no desktop sharing as such, just remote application running).

So, I'd like any feedback/preferences amongst these or any other "Free" desktop sharing options, using these criteria and/or any others:

  1. Security (esp. for access across internet)
  2. Efficiency (bandwidth usage, responsiveness, etc)
  3. Free-ness, as in Speech (not sure where RDP or FreeNX lie for this)
  4. Free-ness, as in Beer (are there any commercial solutions with usable dependable free offerings?)
  5. Ease of use (server and client side)
  6. Cross-OS Client availability
  7. Cross-OS Server availability
  8. Support for independent sessions and shared (and/or "Console") sessions
  9. Ongoing support/maintenance/development

Thanks!


Solution 1:

I'm using right now FreeNx in production, and in the past our company has been a NoMachine customer. We use FreeNX on the server and the proprietary but free NoMachine client on the desktops (both Ubuntu and Windows).

The relationship isn't complex, NoMachine had a proprietary product (free as in beer up to 3 users) but releases the back-end stuff as open source. FreeNx is build with this back-end and is always somewhat less polished, and a couple of versions behind the NoMachine server. NoMachine has announced on December 21th 2010 that the next version it's NX technology (NxServer 4) will be close source only.

x2go was another company that build a open source product based on NoMachine open source libs.

Finally, Google has released NeatX, a complete independent implementation of the NX protocol. It's far from complete but usable, and totally open source.

So, recap you needs:

  1. Security: They all are SSH connections. Tick.
  2. Efficiency: Right now I'm tunnelling Windows RDP sessions in NX and having better speeds than naked RDP. Tick.
  3. Free-ness as in speech. FreeNX, NeatNX, tick. NxServer. Fail.
  4. Free-ness as in beer: NxServer up to 3 users
  5. Ease of use: NxServer is very easy to setup and administer. Others are worse on the server side. FreeNx is on the official repos.
  6. Cross-OS client: I haven't found a decent Andriod client. Great clients for all main desktop OSes and a java-based one that can be embeded on a web.
  7. Cross-Os server: Nope. NxServer can tunnel RDP sessions, but doesn't work on windows.
  8. Independent and shared sessions: Tick.

Solution 2:

I stumbled upon this while researching xrdp, which is the only one you mentioned that I haven't used. Some observations:

NX Server: not so speedy (v3, still awaiting v4), might pose performance issues depending on your environment. The Qt-based client software is clunky but better than any open source implementations. Can't share a user's session remotely.

FreeNX: similar to NX Server, not the fastest, no opensource client software worth mentioning. I used this for 16+ months. Can't share a user's session remotely.

neatx: has some showstopper bugs, eg. the session disconnect bug that won't let you login again using the same login credentials if your session fails (clear temp files using another login, then it works until your next failure). This is a 1+ year old bug IIRC. I used this for 10+ months. Can't share a user's session remotely.

VNC: ultra slow, no inbuilt security, however the client software options are pretty good for *nix/Windows platforms. No good VNC server for OSX yet. Unique selling point: CAN see a user's screen. Sufficient for remote desktop support but nothing else. Used this at a Windows "managed services" shop for the past few years, mostly K-VNC (enterprise) and UltraVNC servers.

x2go: fast, polished, the best so far. Supports remote audio, printing, clipboard etc. Can't share a user's session remotely.

I'm about to give xrdp a shot because I dislike installing more stuff on fragile Windows systems, and I always end up working on the darned things. Cheers.

Solution 3:

I'm very fond of X2Go. XRDP wouldn't let me do anything such as mounting USB drives or changing system settings. X2Go meets my needs perfectly and I'm going back & forwards between Windows 8.1 and Kubuntu 14.04

Setup is a breeze on *Ubuntu and the Windows client works very well. You'll have to manually set a screen resolution from within *Ubuntu once your first connection is established and then the Windows client can automatically readjust the size flawlessly from there.

Related cioby23's answer in Unable to install FreeNX Server on Ubuntu Trusty. Alternatives?