How can I make VNC faster?

152,816

Solution 1

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.

Solution 2

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.

Solution 3

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.

Solution 4

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.

Solution 5

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.

Share:
152,816

Related videos on Youtube

NickAldwin
Author by

NickAldwin

Disclaimer: The man in the picture is not intended to represent NickAldwin's actual appearance. Any similarities between Dr. Strangelove and NickAldwin are completely coincidental.

Updated on September 17, 2022

Comments

  • NickAldwin
    NickAldwin over 1 year

    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?

  • zildjohn01
    zildjohn01 almost 15 years
    IMO TightVNC is just as slow, and I tweaked the settings a lot trying to find something better
  • Joey
    Joey almost 15 years
    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.
  • bgee
    bgee almost 15 years
    +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.
  • NickAldwin
    NickAldwin almost 15 years
    I am using UltraVNC, which I've heard can be faster than TightVNC.
  • Evan
    Evan almost 15 years
    UltranVNC has the protocol improvements from TightVNC.
  • Evan
    Evan almost 15 years
    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.)
  • Kenneth Cochran
    Kenneth Cochran almost 15 years
    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.
  • Jason Axelson
    Jason Axelson over 14 years
    > 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)
  • Indolering
    Indolering about 10 years
    NX Now supports OS X and Windows servers. It is much faster than traditional VNC.
  • rogerdpack
    rogerdpack over 6 years
    RDC uses RDP underneath for its protocol, I believe? Too bad its windows only, it is nice and fast :)
  • Nathan Osman
    Nathan Osman about 6 years
    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.
  • Kenneth Cochran
    Kenneth Cochran about 6 years
    @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.
  • edr
    edr over 4 years
    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.
  • Oscar Hierro
    Oscar Hierro over 3 years
    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.
  • Admin
    Admin about 2 years
    This worked for me as well, and this is the x11vnc -snapfb server command to kick it off