Ubuntu – What free Remote Desktop (server) solutions are there

freenxneatxremote accessremote desktopvnc

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


Best Answer

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.