Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to work on a GUI on a remote Linux (CentOs) server (I measured with iperf a ~8Mbits/sec connection between these two machines). I always used ssh -X instead of VNC for this since:

  • I need to open only one window so I like to have it as a window as if I opened this program on my computer
  • I can use my SSH key for this
  • I want the software to adapt to the size of my desktop, not the virtual VNC desktop (though I guess there are options for that with VNC)

But here what appears is that using my GUI with VNC is a lot faster than with SSH -X, I see a lot more quickly the changes in the GUI when I use it so I'm kind of obliged to use it.

It seems to me that VNC just sends a compressed image of the part of the screen that changes which is a lot faster than SSH that need to send all informations to me.

For instance with ssh -X it takes 5 to 10 seconds to react to me clicking to the 'File' menu of Firefox and display it. With VNC there is no visible delay.

So my question are:

  • Is VNC expected to be a lot faster than ssh -X?
  • If not, how can I troubleshoot to see why ssh -X is so slow?
share|improve this question
up vote 1 down vote accepted

Yes, X11 is network transparent, so it can be used over the network. However, X11 is also a very chatty protocol, meaning that it takes often hundreds of request/response cycles to display a single window. That is why X11 over network is usually only used locally, even 1GBit/s makes a big difference compared to a 100Mbit/s connection.

There are several ways around that, VNC is the one you have mentioned, NoMachine's NX is the other one - it optimizes the X11 protocol by caching, proxying and compression and can provide near-realtime performance even over slow links like ISDN. The free version of it is limited. There are free implementations of the core NX protocol (since it's open source) like FreeNX (server side) and OpenNX (client side), but both are not very actively developed and have some bugs which make them less than ideal for everyday use.

share|improve this answer

You must log in to answer this question.

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