47

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?

0

11 Answers 11

32

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.

3
  • 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. Jul 30, 2009 at 11:49
  • 1
    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. Mar 2, 2018 at 3:44
  • 1
    @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. Mar 15, 2018 at 19:57
19

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.

4
  • 1
    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
    Jul 30, 2009 at 3:35
  • > 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) Oct 6, 2009 at 19:12
  • 1
    NX Now supports OS X and Windows servers. It is much faster than traditional VNC.
    – Indolering
    Apr 27, 2014 at 22:42
  • After many years using VNC (RealVNC) for direct access over LAN from a Windows client to a macOS host, and having just recently tested NoMachine, I can confirm that NX is crazy fast. I have no input lag whatsoever, it's astonishing. It's at least as good as Microsoft's Remote Desktop. Good riddance, VNC. Aug 21, 2020 at 15:59
11

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.

2
  • 2
    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
    Jan 15, 2020 at 13:49
  • This worked for me as well, and this is the x11vnc -snapfb server command to kick it off May 5, 2022 at 22:43
2

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.

1

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.

0
1

When using the Xvnc server, I find setting the -FrameRate option to about 5 is reasonable for connections over the Internet. Lower framerate delivers a more efficient data transfer, at the penalty of a clunky feel. If your framerate is set higher than the network can reliably deliver, then you end up lagged badly watching the screen catch up a little at a time ... ultimately resulting in intense end-user aggression.

Test it by opening a web browser and using the mouse scroll wheel to move up and down, see how the screen responds. Clunky feel, or lagged horribly ... that's the trade off here. Unfortunately, not all VNC servers even have this option. Some do have it but without documentation on the man page, and the exact location of configuration files can be arbitrary and mysterious.

https://man.archlinux.org/man/x0vncserver.1#FrameRate

This sometimes works:

echo "FrameRate=5" >> ~/.vnc/config
-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.

-1

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
-1

Try KasmVNC. It's an open source VNC server with a web-based client, which provides better compression by using WebP images.

-2

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).

2
  • 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. Jul 30, 2009 at 0:13
  • RDC uses RDP underneath for its protocol, I believe? Too bad its windows only, it is nice and fast :)
    – rogerdpack
    Aug 11, 2017 at 16:00
-2

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

4
  • IMO TightVNC is just as slow, and I tweaked the settings a lot trying to find something better
    – zildjohn01
    Jul 30, 2009 at 0:01
  • 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
    Jul 30, 2009 at 0:07
  • 1
    I am using UltraVNC, which I've heard can be faster than TightVNC.
    – NickAldwin
    Jul 30, 2009 at 0:20
  • UltranVNC has the protocol improvements from TightVNC.
    – Evan
    Jul 30, 2009 at 3:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .