April 30, 2008

Control and keep an eye on many VNC sessions at once

Author: Ben Martin

With vncthumbnailviewer you can see many VNC desktops at once and jump in to control any of them with a double click. vncthumbnailviewer acts like many VNC clients, so it can help you monitor many VNC servers.

vncthumbnailviewer was created for monitoring desktops in a computer lab environment. It uses the TightVNC Java code, and is thus fairly stable and glitch-free.

There are no vncthumbnailviewer packages for Ubuntu, openSUSE, or Fedora. vncthumbnailviewer is written in Java, so you need a Java Runtime Environment (JRE) installed in order to run it. For this article I used version 1.4.1 of vncthumbnailviewer with IcedTea Runtime Environment (build 1.7.0-b21) 64-bit as my Java runtime.

Start vncthumbnailviewer by executing java -jar vncthumbviewer.jar. The main vncthumbviewer window that appears allows you to connect to one or more VNC servers. The file menu has an Add New Host option that allows you to establish a connection to a VNC server. It prompts you for a hostname, port, and authentication information. Supported authentication methods are none, password, VNC encrypted password, and MS-Logon. Aside from the authentication type you can enter the username and password. There is no direct support for the VNC display number concept, so if you are running multiple VNC servers on one machine you must enter the corrent port number for your display. Normally the port for a VNC server will be 5900 plus the VNC display number.

133026-1-thumb.png

Once you have used the Add New Host option to set up your sessions, you can save the list of hosts so that you can easily reestablish all your sessions the next time you run vncthumbnailviewer. Unfortunately, the per-host options that you have set through the GUI, such as the encoding used or whether a connection is read-only, are not saved when you save your list of hosts.

vncthumbnailviewer changes the size and positioning of the VNC sessions you have open so that all sessions are visible. For example, when you connect to a second VNC server, both of your connection views will become smaller so that both can fit on the screen.

Double-clicking any VNC session creates a new window with just that session shown. This lets you quickly control the VNC session and have a clear picture of what you are doing. When you take over a session in this way the main tiled window continues to update. Once you close the full-sized VNC window for the session of interest, vncthumbnailviewer will still monitor changes to that session in the tiled view.

If you use another VNC client to connect to a server that vncthumbnailviewer is monitoring, vncthumbnailviewer will quietly stop monitoring that VNC connection. This happens even if you tell vncthumbnailviewer to show that server in view-only mode. While you may be unlikely to do this, it would be nice if vncthumbnailviewer indicated that the particular VNC session was not being monitored anymore.

The record button above any tile allows you to capture and save the session to a frame buffer stream (FBS) file that you can play back using RfbPlayer or rfbproxy. RfbPlayer creates a new window and directly shows you the captured session, while rfbproxy creates a new VNC server that plays back the session. With rfbproxy you have to connect to the VNC server with a VNC client in order to see the playback.

Usage of both commands is shown below. The -l option to rfbproxy tells it to loop the playback, starting again when the capture is completed. The -p option tells it to play a specified capture file. The :30 at the end of the rfbproxy command line specifies that the VNC server will be the 30th display on localhost. When viewing the playback from rfbproxy in vncthumbnailviewer, I found that rfbproxy would disconnect and exit instead of looping the capture from the start.

$ cd rfb_player/classes
$ java RfbPlayer URL file:///home/ben/vncsession.fbs.001

$ rfbproxy -l -p ~/vncsession.fbs.001 :30

The ability to set up complex host configurations in the GUI and save them for next time would be a huge plus for using vncthumbnailviewer to monitor machines on small LANs where one might like different encodings or view modes for specific hosts. vncthumbnailviewer comes in handy when you want to keep track of multiple virtual machine instances running on a server, and be able to quickly switch to any virtual machine. In these cases the configuration limitations of vncthumbnailviewer are not as much of an issue.

Categories:

  • Reviews
  • Tools & Utilities
  • Networking
Click Here!