VNC and Similar

Important Note: Where software codebases for Linux are listed below with URLs for their 'upstream' developer sites, you as a Linux user should not in the general case download this (or any other) software from the 'upstream' site's code repositories, downloadable tarballs, etc. Instead, you should, where possible, favour distro-maintained packages -- created by and for your Linux distribution. There are a number of individually compelling reasons why this is so. -- RM.]


1. VNC/RFP Linux Implementations

VNC is a graphical desktop sharing system usable to remotely control another computer. Its basis in transport of pixels supports great flexibility, but limits network efficiency compared to remote graphics solutions with more abstraction of graphics (covered further down this page), such as NX and X11.

Its underlying bitmap-transport protocol "RFP" = Remote Framebuffer Protocol aka "RFB" = Remote Framebuffer, should not be confused with Microsoft's Windows-centric bitmap-transport protocol "RDP" = Remote Desktop Protocol, developed by Citrix.

2. VNC/RFP non-Linux Implementations

2X Software, AppliDis, Apple Remote Desktop, Apple Screen Sharing (iChat), Cendio ThinLinc, Chicken of the VNC, EchoVNC, Fog Creek Copilot, iTALC, Mac HelpMate, Microsoft Remote Desktop Services/Terminal Services, PocketVNC, Remote Desktop Manager, Royal TS, UltraVNC.

You'll find a number of resources about VNC over SSH in my ssh-clients

Also worth looking into:

3. NX Protocol

NX, developed by NoMachine, is a remote desktop-environment display technology that greatly improves on the performance of pixel-transport protocols such as VNC/RFP and RDP. NoMachine based the protocol on the Differential X Protocol Compressor (DXPC) project. All implementations include tunneling over SSH. Natively, NX was intended to optimise remote X11 sessions, but many NX server implementations also support proxying connections to RDP and/or VNC/RFP, giving those protocols some of the same speed improvements.

4. RDP (Remote Desktop Protocol)

RDP is the commodity form of Citrix's remote-imaging technology that it called ICA = Independent Computing Architecture, subsequently licensed to Microsoft. The server side is Windows-only for remote execution of Win32 code. There are numerous Linux clients, both open source and proprietary.

5. Tarantella

For completeness:
Oracle Secure Global Desktop: This is a remote-Win32-access technology formerly called Tarantella, until Sun Microsystems bought Tarantella, Inc., formerly Santa Cruz Operation (dubbed 'old SCO' to distinguish it from the Utah company formerly named Caldera Systems that renamed itself The SCO Group). Santa Cruz Operation in turn had developed Tarantella from code acquired when it bought IXI Limited of Cambridge, UK and Visionware Limited of Leeds, UK, in 1993 and 1994, respectively. Following the Oracle acquisition, Sun Secure Global Desktop became Oracle Secure Global Desktop. Proprietary.

6. TeamViewer

For completeness:
TeamViewer is a computer software package for remote control, desktop sharing, online meetings, Web conferencing, and file transfer between computers. Proprietary.

7. Others

For completeness:
Other non-VNC/RFB, non-RDP, non-NX remote-desktop solutions are available on Linux from Bomgar, Ericom, GO-Global, Google (Chrome Remote Desktop), GoToMyPC, Mikogo, NetSupport Manager, OpenText, Proxy Networks, Radmin, Remote Utilities, ScreenConnect, Splashtop Remote, Symantec pcAnywhere, and WebEx. All of these are proprietary.


The remainder of this page is mailing list discussion relevant to the options cataloged above.

From: David Golden (
Subject: Re: [ILUG] RE: VNC Opinions
Date: Fri, 21 Dec 2001 10:56:55 +0000

On Friday 21 December 2001 10:23, Siobhan Kelly wrote:

> x-application-windows on my Unix machine, I wanted to
> run a X-desktop such as KDE though and wasn't able to
> configure this.

As I've mentioned out-of-the-blue a few days ago on this mailing list, there are two different ways to use VNC on Unix boxes - the original way makes VNC export a completely different X desktop to the normally configured defaults, by using a special server binary based on XFree 3.3 called "Xvnc".

Normally, Linux distributions which include VNC set this up to export a lightweight desktop environment based on twm - in theory, you could alter the startfiles Xvnc uses (which are normally completely independent from the normal X ones) to start a heavyweight desktop environment like KDE or GNOME - just change "twm" to "startkde" in ~/.vnc/xstartup, for example - but beware that KDE <3.0 won't reliably support two instances of the environment it establishes running at the same time for the same user.

The second method, more similar to the way VNC works on Windows and Mac, is to export a pre-existing X desktop. The program to do this is called (pretty badly from a marketing perspective) "x0rfbserver". You just start up an X server, and then the end-user can start up x0rfbserver to export that display via VNC. This could potentially be very useful for tech support, "persistent" remote logins, and so on. It also breaks the normal X security/authentication model (obviously enough, it's bypassing it totally), so should be used with care. (2005 note: Site is defunct, and project apparently died during 2004)

Date: Fri, 21 Dec 2001 02:23:33 -0800 (PST)
From: Siobhan Kelly (
Subject: [ILUG] RE: VNC Opinions

I've just read this week's IBM DeveloperWorks article about VNC and SSH ( The article will concentrate on X next week, and by then I should have my answers.

By the way thanks for you tips on X but I was really interested in your opinion of VNC. I know somebody is going to point out that the clear-text/hash password sub-thread was about VNC but, all the other postings were about VNC. If I can run VNC over SSH, is this not better than X over SSH? Since VNC will run an any platform (where binaries are not available it will run in a JVM). As I said in my earlier mail, we use VNC to get remote views on Windows clients and vice-versa from those Windows clients to our Windows and Unix servers. This is why I prefer VNC over X. I tried X before and was happy to run individual x-application-windows on my Unix machine. I wanted to run a X-desktop such as KDE, though, and wasn't able to configure this.



From: "Robert Gallagher" (
Subject: RE: [ILUG] VNC opinions
Date: Fri, 21 Dec 2001 01:34:33 -0000

You could also try using an exported X desktop.

First, start an X server on your local machine; I find labtam's Xwinpro to be the best,

Then from your shell, set the DISPLAY environment variable like so: "export DISPLAY=<your-ip>:0.0".

Where your-ip is the IP of the machine you started the X server on earlier. And that's basically it; fire up an xterm to see that it's working, and then you can go off and start up window managers or whatever.

You could also set the DISPLAY variable automatically by putting this line in your shell start-up profile:

export DISPLAY=`w | grep <username> | awk '{print $3}' | head -n 1`:0.0

I've found exported desktops to be a lot faster than VNC, if you're just planning on running X apps remotely, it's usually a better option.

You can also tunnel X traffic over an SSH connection using something like plink, but I'm not 100% too sure how to go about that :)

From: David Golden (
Date: Tue, 4 Dec 2001 23:02:03 +0000
Subject: [ILUG] VNC and X

Something that maybe not everyone on the list has seen- I came across a useful little utility today - x0rfbserver (RM 2005 note: Site is defunct, and project apparently died during 2004)

Unlike the normal Unix VNC server (which is a modified X server, and independent from your normal desktop), this one acts more like VNC on Windows and Mac OS, allowing remote access to a pre-existing X desktop by vncclients.

Now, this sucks compared to X for normal remote GUI work, but could be very useful for support and teaching environments - the one thing you can't normally do with X is see the exact same screen as the end-user - with this application, you can "remote control" their display, and maybe even walk them through step-by-step what they're supposed to be doing.

So, now you can have the best of both worlds on Linux - proper X remote GUIs, and the style of brute-force remote-control of whole displays popular with Windows-admin-monkeys.

Date: Thu, 1 Mar 2001 12:01:34 -0800
Subject: Re: [Pigdog] VNC r0xx
From: Rick Moen (

begin PaoTzu quotation:

> There is a ton of instructions on how to set up ssh+VNC.

Stuff I have on hand, relevant to that:

Cameron Simpson's ( VNC over SSH instructions at ,
Frank Stajano's ( "SSH-protected VNC" paper at and ,
Mindbright Technology AB's (Mats Andersson's) MindVNC. GNU General Public License. Java source or bytecode. Implements secure (SSH-tunneled) VNC-client sessions, as example of how MindTerm's ssh-package can be used to SSH-tunnel TCP-based protocols, generally. SSH protocol v. 1.5.
Using VNC over ssh on NT
VNC/SSH through firewalls

Also covered in Sean Boran's SSH article:

Subject: Re: [svlug] VNC
From: Nathan Myers (
Date: Sat, 5 Jun 1999 08:56:04 -0700

Rob Walker wrote:

> Are you guys seeing any (more!) windows stability issues while you are
> running VNC? Larry Augustin was seeing some problems running vnc and
> just one app.

I have no access to MS systems, but the VNC FAQ on their Web site has a long list of MS bugs and workarounds, and also mentions a memory leak in older versions of the server. I did notice that it's pretty easy to hang Netscape's Java interpreter by running the VNC Java viewer, which would otherwise have been pretty cool. Amusingly, in light of Mandrake's comments, it was Enlightenment's pop-up tooltips that first hung the Java viewer.

A good way to hang VNC itself, by the way, is to try anything recursive. Too bad; that would be the ultimate cool, like a hall of mirrors in a window.

Nathan Myers

Subject: [svlug] VNC
Message-Id: E10q3SX-0008Ew-00@localhost
From: Nathan Myers (
Date: Fri, 4 Jun 1999 16:33:09 -0700

I have been trying out VNC (Virtual Network Computing) and it's uber-cool. The magic formula (for those who have it installed already; maybe you need

apt-get install vncserver xvncviewer

(or the equivalent, if any, for non-Debian users) first) is:

1. Quit out of X.
2. Start the VNC server

vncserver :0 -geometry 1024x768 -depth 16 -pixelformat rgb565

Maybe you need to change the geometry to match your video card. E.g., it might be

vncserver :0 -geometry 1280x1024 -depth 32

(If you use 8bpp, it is less pretty.) This creates an invisible X desktop with all your gadgets.

3. Start the viewer

xinit `which xvncviewer` -passwd ~/.vnc/passwd -geometry 1024x768 -display localhost:1.0 localhost:0.0 -- :1

Again, maybe the geometry spec for your screen is different. This allows you to see your desktop gadgets in the server.

4. Your screen looks pretty much the same as before, except the mouse pointer has a little square in it and everything is a bit slower. The uber-cool part comes next. Go to another machine on the network, preferably one where you can watch the first screen, and say:

xvncviewer -shared yourmachine:0.0

Now you have a second view of the same desktop. You can quit (or crash) out of both viewers, and the desktop is still there waiting to be connected to. (BTW: Since the first viewer is running on an X server with no window manager, you'll have to kill the viewer, e.g., from an xterm, to get out of it.)

They have VNC viewers for practically everything, even Palm Pilots. ( The Windows viewer is only 145K and can be run directly from a floppy. They have one in Java, too, that works under Netscape.

VNC traffic can be encrypted with SSH or SSL, instructions are on their Web page (which changed hands recently):

Nathan Myers

Date: Thu, 8 Oct 1998 12:45:17 -0700
From: Seth David Schoen (
Subject: Re: [svlug] VNC or XMX for helping others with linux.

Mike Rushford writes:

> For both a NT to NT or Linux to NT connection you are allowed to
> interact with the VNC consoles on both machine and whatever happens on
> one happens on either systems screen. However when a VNC connection
> occurs from NT to Linux or Linux to Linux then it's only observable
> and controllable from the originator or client side of a Linux or NT
> connection; no screen appears on the server Linux box.
> I would like to get the Linux X session screen :0.0 to appear on the
> NT box rather than a new X server and screen session. I would like to
> use this when I want to help a friend at some problem he is having on
> his Linux box. In this way he can see what I am doing on his Linux
> box. I would like this whether I use a NT or Linux box to VNC-connect
> to this Linux box. Is there a way to do this?

Sure: Run an ordinary X server on your Linux box, and then run a VNC X server in the background (no graphical display), which will have to listen on display :1 rather than :0.

Then run the VNC client for Linux from your regular X session, and tell it to connect to the VNC server on localhost. You are now using a VNC client under Linux to control an X session on the same Linux box (even though it is not actually your "outer" X session). Since another person can also connect to the VNC server there, you should be able to use this for demonstration purposes to show how to do something under X.

If you make the VNC server your default X server, you can even make the ordinary X server into a sort of client for your default X session, by running a very large VNC client... :-)

(This is all conjecture, since I have never used a VNC client on any platform other than the PalmPilot; I'm almost certain that it would work, though.)

Seth David Schoen L&S '01 (undeclared) /
He said, "This is what the king who will reign over you will do." And they
said, "Nay, but we will have a king over us, that we also may be like all the
nations." (1 Sam 8)

Date: Sat, 26 Jan 2002 12:13:29 +1100
From: Mike MacCana (
Subject: Re: Remote desktop (GUI) access to Linux systems behind firewalls
To: hogan (

hogan ( wrote:

> Other than VNC and standard X, are there any solutions/protocols for
> remote desktop access to linux machines across slow network links such
> as dialup PPP given the network and systems environment described
> above?

Yes. MLView DXPC craps all over both VNC (regular, tight, hextile or whatever), X, LBXProxy, and standard DXPC -- and according to its makers equals Citrix ICA in terms of compression, around 60:1 when compared to the standard X protocol. It's also in beta, but seems to work well enough. It's open source, too, IIRC.

Get it from

Date: Thu, 24 Jan 2002 10:32:15 +1100
From: Penguin (
Subject: Re: Remote desktop (GUI) access to linux systems behind firewalls to
which I have SSH access?
To: hogan (,

On Thu, 24 Jan 2002 04:18, hogan wrote:

> I'd like ultimately to be able to see my work desktop at home, and my home
> desktop at work (in both cases, the systems are running Linux with XFree86
> 4.1.x and Debian unstable..
> ... going through packages available for Debian, and looking at the VNC
> Web site, it would seem that the vncserver available for Linux at the
> present time is based upon the XFree86 3.x codeset.
> A. Am I correct in my guess?
> B. Either way, is there support out there for XFree86 4.x stuff?
> Maybe I shouldn't even think about using VNC, but just X? Problem
> there is that the link between work and home is a 33.6kbps modem link.

You should probably look at tightvnc Vnc will be very slow & forget about X over a 33k modem.

From rick Wed Jan 23 17:16:58 2002
Date: Wed, 23 Jan 2002 17:16:58 -0800
Subject: Re: Remote desktop (GUI) access to linux systems behind firewalls to which I have SSH access?

Quoting Penguin (

> You should probably look at tightvnc

This is very, very cool stuff. I hadn't seen it before. Even better than the flagship AT&T Cambridge VNC software, and just the thing for running remote Win32 applications from a nice, comfortable X11 desktop.

"Is it not the beauty of an asynchronous form of discussion that one can go and
make cups of tea, floss the cat, fluff the geraniums, open the kitchen window
and scream out it with operatic force, volume, and decorum, and then return to
the vexed glowing letters calmer of mind and soul?" -- The Cube,

[Someone in private mail informed me of ]

Date: Thu, 28 Mar 2002 18:56:48 -0800
From: Benjy Feen (
Subject: rdesktop, VNC, tightvnc

I've had great luck using rdesktop from my RH7.2 desktop to access our red-headed stepsystems. In a pinch I've been able to VNC into a Windows box running the VNC server, then run the Terminal Services client from there. This is a little icky, but those who dance with the Devil should get used to his breath.

As an aside, if you use VNC, you should check out TightVNC, which desuckulates VNC's bandwidth issues.
rdesktop is available at

From: Jacco de Leeuw (
Subject: Suggestion for inclusion: rdesktop
Date: Sun, 05 May 2002 19:35:36 +0200

I noticed that vncviewer is included with LNX-BBC. How about adding a similar program called rdesktop?

rdesktop ( is an implementation of the RDP 4 protocol as used Windows NT/2000/XP Terminal Server. rdesktop was created by Samba team member Matthew Chapman and released under the GNU Public License.

Generally the "unified patch" by Peter Bystroem is also applied (

Binaries are fairly small, only 200 KB or so. Less if OpenSSL is available. I've made Red Hat RPMs and Linux binaries available at

A demo Windows 2000 Terminal Server is available at ( This server can be used (with permission of the owners) for testing purposes. No password is required.


Jacco de Leeuw (
van Wessemstr. 54
1501 VM Zaandam, Holland tel:+31(0)756352068
Sign in lab: "Do not look into laser with remaining eye".

Date: Tue, 16 Jul 2002 09:13:11 +1000
From: Mike MacCana (
Subject: Re: VNC question.
To: Seon Rozenblum (

On Tue, 2002-07-16 at 08:18, Seon Rozenblum wrote:

> I have vncserver working on my Linux box (Red Hat 7.2), and can use VNC
> viewer on my PC (Win2k) to see it, but all I see is an Xterm shell on
> an empty X11 screen. How can I use VNC to view my current KDE
> session on the Linux box, so I can take over the KDE session and have
> all of the apps and icons and stuff available to me.
> On a Win2k machine, when I use VNC, I get to control the entire
> current desktop, as if I was sitting in front on that machine.
> Currently, VNCServer is using display 2. I have tried to view display
> 1 and display 0 (0 is the normal default), and cannot connect to host.

Rohan's answer was helpful, but not a hundred percent correct. Unix VNC traditionally acted very differently from Windows VNC - it would create a new session, rather than use your existing desktop (as Unix is multiuser, and Windows traditionally wasn't - "Hey, who wouldn't want a new login if you could have one?").

This changed recently. You can now use VNC to take over an existing desktop with an application called x0rfbserver.

x0rfbserver. How obvious :) Right up there with `gnorpm'. Linux on the desktop, here we come!

Anyway, for KDE, there's a nice little x0rfbserver replacement / front end called `kfrb'. It's designed to work a little like the `remote desktop' function of Windows, giving you a simple way to change the password, decide whether to allow the connecting user to take over the keyboard and mouse or just see your screen, and whether to prompt you before allowing someone else to connect.

krfb is what you want to install on your PC. IIRC, you can download packages for Red Hat from the KDE apt repository I mentioned last night. If you can't, mail me and I'll send you my own. If you use another distro, then have a hunt and I'm sure you'll find packages.


From: Ken Bloom (
User-Agent: Mutt/1.3.28i
Subject: [vox-tech] Re: remote desktop question
Date: Sun, 28 Jul 2002 16:28:06 -0700

Quoting Matt Holland (

> It's also not clear to me what the connection is between vnc and krfb,
> which is probably why your port numbers are different (I guess 5500 is
> the standard port for X display :0.0?).


KRfb Server is a small server for the RFB protocol, better known as VNC. Unlike other Unix/Linux RFB servers, KRfb shares your X11 session instead of creating a new one. This allows a friend or administrator to fix problems on your computer, or you can use it to show your desktop to somebody else at a remote location. It is compatible with all regular VNC / RFB clients.


There's a similar tool included in LinuxMandrake called x0rfb (in the rfb package). These tools are very useful for helping newbies over the phone and Internet, because you don't need to explain how to run the whole session through VNC (which would require them restarting all of the programs in their session), you just need to tell them to run krfb, and to click the button that says "Accept Connection" when you the UNIX guru try to connect.

Date: Wed, 25 Sep 2002 17:12:17 -0500
From: "Peter A. Peterson II" (
Subject: remote controlling satanic computers
User-Agent: Mutt/1.3.20i
X-pw: reindeer flotilla

Hey Rick,

Just found out something that might be interesting to you, or useful for you to tell others. I was, for a while, using vnc to remote control a headless Windows workstation for "job reasons", but found that vnc was too slow and non-updatey to be very useful for this, so I went to a KVM switch.

However, XP/NT/2000 have something called "terminal services" (and the terminal services client) that runs an MS-specific Remote Desktop Protocol that they have optimized pretty nicely (whereas vnc remote control for Windows was really brute-forced (an afterthought, as they say) since its windowing is not as network-friendly as is X11) --


Someone has written an X11 client for MS Terminal Services called rdesktop (, it's in Debian (the newest version is even in woody), and it's fan-freaking-tastic! It feels better than Terminal Services client feels on WINDOWS!

So tell your friends who are using vnc to ditch it and use rdesktop and Terminal Services client.

Hope you're well,


    Peter A. Peterson II, technician and musician.
    ---=[ ]=---

Date: Fri, 21 Nov 2003 03:25:56 +0000
From: Mike MacCana (
To: LUV (
X-Mailer: Ximian Evolution 1.4.5 (1.4.5-7)
Subject: Re: remote desktop displayed locally - easy?

On Fri, 2003-11-21 at 00:58, Ron Palmer wrote:

> I have a few LAN server computers sitting without monitors, keyboards,
> and mice. I would like to display their entire desktop on another
> computer (RH9 notebook or if I really have to, WinXP). I have read a
> few comments I have saved in the past, looked at a few HOWTOs, but I
> can't quite get it. Does anyone have a few simple 1-2-3 points to
> suggest?

The (modern) Linuxey way to get access to a Linux machine's desktop:

Make a shortcut to, or run the following command:

ssh linuxbox -C "/usr/X11R6/bin/Xnest :1 & export DISPLAY=linuxbox:1; gnome-session"

It'll log into the remote machine, prompt for a password if necessary, start Xnest, tell subsequent apps to run on Xnest's desktop rather than your own, and then start GNOME. Use `startkde' rather than `gnome-session' if you wish.

Install a decent X server on Windows (WinAxe Plus) or Mac.

You could alternatively use VNC, but since X is already network-aware, I personally find it kinda hacky.


Mike MacCana (

Date: Sun, 05 Dec 2004 19:04:32 +0000
From: Niall Walsh (
Subject: Re: [ILUG] Remote desktop Windows->Linux

Kae Verens wrote:

>Can't wait for the FreeNX project to release some test software!

Knoppix has included FreeNX for a while now. The packages they used (not too surprising, it appeared here first when it was Fabian Franz who wrote the missing pieces to make it complete) were on, but they are repopulating their archive for some reason. There are debs and a tarball on (tarballs in knoppix/experiments) and also

Now, I don't think there is a FreeNX server for Windows yet, but the NX client is free from, anyway.

Date: Tue, 1 Nov 2005 06:05:22 +0800
From: echan (
X-Mailer: Sylpheed version 2.0.1 (GTK+ 2.6.1; i486-pc-linux-gnu)
Subject: Re: Xwindows and remote login

On Mon, 31 Oct 2005 16:14:49 +1100, Jason White ( wrote:

> There was an article (cited on a few weeks ago, I think)
> stating that FreeNX was a good solution to this problem, being less
> consumptive of bandwidth than VNC or other alternatives.
> It does work (low bandwidth consumption). I tried all 3 remote desktop
> mechanisms (TightVNC, SSH -C -X, FreeNX) in supporting a desktop
> connected to a 33 kB dial-up connection. FreeNX is about 5 times
> faster (and at those speeds ( 33 kB) very noticeable ). The other two
> (TightVNC and ssh -C -X ) is almost unusable. (We are talking about
> running a GUI, here ).

With a 56 kB dialup; it is quite usable; on a 512 kB ADSL, it's like running X across a 10 MB NIC. On a 10 MB NIC, it's like on a 100 MB NIC. That is FreeNX I am talking about.

I am currently developing methods and procedures for implementing all of 3 of the above at CBV, to help with remote desktop support for their end-users, most of whom are on dial-up.

Except in the "current situation" (a simple 2 PC network (5 - 20 meters apart)); it may not be necessary to go to this level of performance.

Ed Chan

Date: Mon, 31 Oct 2005 16:12:00 -0800
From: Rick Moen (
Subject: Re: Xwindows and remote login

Quoting Jason White (

> On Tue, Nov 01, 2005 at 06:54:59AM +0800, echan wrote:
> > Freenx ( I meant Freenx when I use "NX" ) is GPL.
> Indeed it is, but there doesn't appear to be a free (as in freedom)
> client, although there is a project to integrate one into KDE (not
> sure about GNOME).

The free-software / open source NX client is called kNX, "written as a proof-of-concept within 2 half-days of hacking during LinuxTag 2004". That project has now joined forces with the developers of the core FreeNX library, nxc.

User discussion list is here:

It seems pretty beta-ish; code can be checked out of CVS/SVN.

There doesn't seem to be a canonical set of informational Web pages for the client piece (other than that concerning the mailing list), but there is this wiki page cluster:

Pay no attention to obsolete references to "" such as on , ad that domain appears to have been snatched by one of those domain... er... collectors, and equipped with a useless "search engine" to keep you there, racking up hits.

I find no signs of a parallel GNOME effort.