How can I make VNC faster?

30

11

I need to remotely access and use my work computer a few times a week. I'm currently using UltraVNC. I want to use VNC because of the price. I've used VNC before, mostly on my own network, where it's fast.

However, VNC over the internet is incredibly slow. Even at 256 colors and lower, with Aero turned off, it is unbearably slow. I recently used Ammyy Admin to connect to do something requiring a quick reaction time. Ammyy was really fast, with almost no lag, and it was running in full color with Aero on!

How can I make VNC faster, like Ammyy is? I'd use Ammyy, but I would probably run into the 15hr/month limit pretty quickly. Any suggestions?

NickAldwin

Posted 2009-07-29T23:36:11.947

Reputation: 1 305

Have you installed and enabled the mirror driver as suggested by Dillie-O? – stukelly – 2009-07-30T21:52:50.110

Answers

20

VNC has some limitations inherent in the protocol it uses. RFB, remote framebuffer, works by transmitting rectangles of pixels over a network. The higher the resolution and bit depth the more bandwidth required to send updates. There are a few optimizations VNC servers/clients already do:

  1. Only send changed regions, caching unchanged regions on the client.
  2. Copying cached regions on the client when changes do occur.
  3. Various forms of lossless and lossy compression

You can fiddle with the settings on both the client and server to see which settings work best for your internet connection. Any client can connect to any server because they negotiate to determine which protocol features both support but its best to use a client and server from the same company if you want to use more advanced protocol features.

RDP and X protocols transmit drawing instructions instead of patches of pixels. This is why under some conditions they are superior to VNC.

Other proprietary remote access services may use similar techniques but are undocumented. Remote access services do have the benefit of being able to punch through firewalls easier than direct remote access, they are usually easier to configure and have better support for encryption.

I've used VNC, Remote Desktop, LogMeIn Free, PCAnywhere and remote X. Each has its merits:

  • VNC actually performs better than the other protocols over extremely limited bitrates. (Think dialup connection) And it works on virtually any platform.
  • Remote Desktop works well over LANs and integrates seamlessly with ActiveDirectory.
  • LogMeIn is great for accessing Windows PC over the internet and also supports ActiveDirectory integration. It has ActiveX, Java, Firefox extensions and even an HTML based client. The free version allows you to manage up to 5 PCs. Paid versions increase this number, add file transfer and advance management features.
  • PCAnywhere is similar to VNC and Remote Desktop. It supports various levels of encryption, file transfers and remote configuration. Things you'd have to piece together with VNC and Remote Desktop.
  • X is the Unix world's equivalent of Remote Desktop. To be fair, it's been around a lot longer than any of the other protocols. It works great over a LAN but is too chatty over the internet. Several projects have attempted to improve this with varying levels of success. NoMachine NX, mentioned already, is one such project.

All of the remote access protocols I've mentioned are freely available (either with an OS or as a download) except PcAnywhere, which is sold by Symantec.

Personally I would try each of them and select the one that best suites your needs.

Kenneth Cochran

Posted 2009-07-29T23:36:11.947

Reputation: 2 109

The business I worked for installed it on all their customer's PCs. It worked effectively until customers started getting more security consious. Then it became to much of a hassle to configure each customer's firewall. So they switched to an IT version of GoToMyPC. But PCAnywhere was actually a pretty well rounded product. – Kenneth Cochran – 2009-07-30T11:49:31.037

I'd love to see how Chrome Remote Desktop performs compared to the options in this answer. I've found it to be very comparable to VNC when used over low-bandwidth connections. – Nathan Osman – 2018-03-02T03:44:42.720

@NathanOsman Chrome Remote Desktop uses the VP8 codec Google purchased from On2 a few years back so I imagine it's pretty good. I haven't looked into it but I think CRD just encodes the entire screen as frames using lossy compression similar to dozens of other video codecs. With the death of dialup there's little incentive to optimize for such limited bitrates anymore. That's where VNC really shined. – Kenneth Cochran – 2018-03-15T19:57:40.943

14

You can try NoMachine NX. A friend of mine used it with some success in increasing the speed of VNC.

As for me I am using RDP and I think it's definitely the way to go for Windows systems. Others had good results with TeamViewer or Remote Administrator.

Joey

Posted 2009-07-29T23:36:11.947

Reputation: 36 381

I was going to suggest NX. Just some more detail: you need a linux machine to the remote end (ie your office) to run the NX software. It has a VNC gateway to you can make the NX server connect to local VNC servers on its network. (Can also do the same with RDP.) – Evan – 2009-07-30T03:35:26.780

ockquote>

A friend of mine used it with some success in increasing the speed of VNC.

Just a nitpick, but NX is completely different from VNC (although they perform similar functions) – Jason Axelson – 2009-10-06T19:12:46.100

NX Now supports OS X and Windows servers. It is much faster than traditional VNC. – Indolering – 2014-04-27T22:42:16.663

2

Try to use this:

-snapfb

Instead of polling the X display framebuffer (fb) for changes, periodically copy all of X display fb into main memory and examine that copy for changes. Under some circumstances this will improve interactive response, or at least make things look smoother, but in others (most!) it will make the response worse. If the video h/w fb is such that reading small tiles is very slow this mode could help. To keep the "framerate" up the screen size x bpp cannot be too large. Note that this mode is very wasteful of memory I/O resources (it makes full screen copies even if nothing changes). It may be of use in video capture-like applications, or where window tearing is a problem.

This solved the problem for me.

Denis

Posted 2009-07-29T23:36:11.947

Reputation: 21

I had issues with update latency of 10secs +. This flag made this problem completely go away. Don't know why this answer does not have more upvotes. – edr – 2020-01-15T13:49:23.903

2

I gave up on that, nowadays I just use LogMeIn Free when I'm on windows and ssh with X forwarding on linux.

Nifle

Posted 2009-07-29T23:36:11.947

Reputation: 31 337

I used to use that a while ago. Just gave it another try and it seems to be doing pretty well. Cool. Thanks! – NickAldwin – 2009-07-30T00:54:07.757

I would mark this as an answer (I really want to), but it offers an alternative instead of a solution. Sorry. It did work for me though, thanks! – NickAldwin – 2009-07-30T00:54:48.303

2

Have you looked into UltraVNC? They have a mirror video driver built into their system that helps speed up some of the refresh and notification issues. I think it could help in your case, and it is still free.

Dillie-O

Posted 2009-07-29T23:36:11.947

Reputation: 1 363

hehe, no worries. I know there are a million flavors of VNC out there, just wanted to toss that idea out. – Dillie-O – 2009-07-30T15:06:52.477

1

You can run TeamViewer as "only local" if you do that you connect to a machine based on their IP address. This is a huge speed improvement over VNC.

Eric

Posted 2009-07-29T23:36:11.947

Reputation: 11

1

Tested them all recently and Ammy Admin is the best in the list in general purposes. Temviewer works also perfectly and has Android and Mac support, so its a great option when connecting from/to another OS. Ammy Admin and TeamViewer both of them support Directx, so you can play or seen games in the screen, however Team Viewer is really slow and I wouldnt recommend it for games. Tested with Guild Wars 2 and Diablo 3. Also tested Directx with UltraVNC, TightVNC and RealVNC but I couldnt get them to work with Directx games. Just a black window is shown once you enter the game. (the computer is not hang, just shows a black window that you can minimize).

Team Viewer has great support and they frecuently answer emails.

The worst thing about Ammy Admin is the price and the support, because you need one license for each computer, one for client and another one for server, about (70+70) 140 euro with Premium license.

On the other side VNCs doesnt have so much support since they are free.

The best option is to test them all and see which one goes better in ur system.

xtrm

Posted 2009-07-29T23:36:11.947

Reputation: 111

0

I had terrible UX using VNC on local network, however when I tried to log in by:

ssh -X -C 

and using

xtightvncviewer :$THEDISPLAY

performance is much more better, comparing to any other combinations...

VNC server default format:
      16 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0
    Using default colormap which is TrueColor.  Pixel format:
      32 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
    Same machine: preferring raw encoding

Stanley Kaleta

Posted 2009-07-29T23:36:11.947

Reputation: 1

0

I've found the free VNC to be painfully slow. They do have a pay version - not sure if that will be much better?

If you're in a windows environment, i've had a lot of good luck with RDC (Remote Desktop Connection).

NoCarrier

Posted 2009-07-29T23:36:11.947

Reputation: 3 481

1+1 Coincidentally, just yesterday I switched over to RDC, and it definitely does seem to be a lot faster and more configurable for Windows computers. I still will use VNC for other OSes, but RDC for Windows it is. – Jorge Israel Peña – 2009-07-30T00:13:49.357

RDC uses RDP underneath for its protocol, I believe? Too bad its windows only, it is nice and fast :) – rogerdpack – 2017-08-11T16:00:29.270

0

There is a version of VNC for slower networks called TightVNC.

Nippysaurus

Posted 2009-07-29T23:36:11.947

Reputation: 1 223

IMO TightVNC is just as slow, and I tweaked the settings a lot trying to find something better – zildjohn01 – 2009-07-30T00:01:01.770

TightVNC has better compression than the "regular" VNC client, but it's not much faster. RDP is the way to go with Windows systems at least. – Joey – 2009-07-30T00:07:25.097

I am using UltraVNC, which I've heard can be faster than TightVNC. – NickAldwin – 2009-07-30T00:20:17.163

UltranVNC has the protocol improvements from TightVNC. – Evan – 2009-07-30T03:33:02.103