|
Linuxdig.Com : Linux News : VNC - Remote Desktop for Linux
Author: HumanX | Friday July 09, 2004
VNC server is your choice for remote desktop, thin client computing with Linux and X Windows. Installation is simple, execution is easier and you will be up and running with VNC in no time.
VNC is short for Virtual Network Computing and was developed by AT&T laboratories in Cambridge. It allows remote VNC clients to connect to remote GUI desktops running the VNCserver. Both VNCserver and VNCclients are cross platform and run on a variety of operating systems. The client is platform independent and can connect to any remote server regardless of the platform. There is also a java version of the client which allows you to embed the client in a web page. (* Great for building online demos of products)
Note:
I have not covered installation with VNC in this article. The VNC site offers a good deal of documentation. Many Linux Distros install VNC but do not activate the package in the startup scripts. Check your system for VNC, it might already be installed.
Once VNC server has been installed on your machine, the first thing you need to do is to create VNC passwords for the users who will have access to the service. "vncpasswd" creates passwords for your users and a ".vnc" directory (in the users home directory) which contains session startup scripts. These startup scripts are used during initialization and initial user connections.
Note:
KDE, GNOME all run within VNCserver/Client. In Fedora Core 2, I had to modify .vnc/xstartup in my .vnc home directory to get GNOME to display.
Note 2: (Ports)
I use the term "ports" loosely in this article. VNCserver runs on a single tcp port on your server. The :0,:1 are VNC displays which you can connect to and are internal to the VNC application.
Once the above has been completed, login to your shell account and type "VNCserver :0", this starts a server session which you can connect to. The ":0" is a port which the client uses to connect to the server. The ":0" can be any number, and each number is a separate session, but you cannot have two simultaneous servers running from the same port.
Example (not allowed)
vncserver :0
vncserver :0
Example (allowed)
vncserver :0
vncserver :1
In the above example, two different users can connect to your server each using a different port. 0 and 1.
Type "man VNCserver" will give you a list of options that are available to you when initiating the VNCserver. Such as the --geometry which specifies the desktop size. Example, my geomety settings in figure 1.1 and 1.2 are 1250x1000 which allows the VNCclient to fill the desktop on my windows workstation.
--name sends the name of the session to your VNCclient which displays in the title bar of the client. --depth sets the color bit depth that will be transported from the server to the client, 8,16 or 24 bit. 8 Bit is best for modem users, 16 dsl and 24 is good for local lan. The speed of the connection is not only dependent on bit depth but also the geometry, so you should consider the two when establishing your connection and find the one that is best for your connectivity options. 800x600 at 8bit works well for me over a modem.
To end a VNCserver session you need the --kill switch and the port. Typing vncserver --kill :0 will terminate the VNCserver running on port 0.
Other Bandwidth Considerations
The VNCclient only communicates with the VNCserver if there is activity within the session. Example, a blinking cursor or mouse movement will cause the server to send that information to the client. But if there is no activity from the server, the connection between the server and client are quiet except for the occasional keep alive. The VNCclient is efficient. Another example, I had the SETI graphical display showing within the client, when I minimized the client, the session transmission fell silent.
For those of you wandering, a VNC session is much faster then a remote X session using your local X server.
Security
VNC does not claim to be the most secure application in the world, so it is up to you to improve upon that security. There are a number of ways people accomplish this. You can create tunnels with SSH, use commercial secure VNCclients/Servers and take advantage of your firewalls filtering capabilities. All of these listed will improve the security capabilities of VNC, I would suggest combining multiple types together. SSH for secure sessions and IPTables to limit users allowed to connect by IP or Subnet.
As with all things their lies dangers. If you were to run VNC on a public server pay close attention to the security of your box. VNC allows a user to virtually sit at the workstation.
Cross Platform
VNCserver is also available for Microsoft Products. This gives ISP's/Administrators a free solution to remotely control all of there computers with one common software package. Need thin clients for your office, look no further then VNC, this might just be the solution for you.
VNC home is located at: VNC
|