VNC
VNC can be a tricky beast on Linux. If you ever connected to a Linux machine via VNC only to see an empty, grey window with nothing but an ugly, black, fat cursor, then you know what I mean.
In this article I will try to give an overview and some background about VNC on Linux. The focus is not distribution specific - nevertheless I will also give some SUSE Linux specific details.
The complexity of VNC on Linux comes mostly from the fact that VNC allows a multitude of different and completely independent access methods:
-
The “traditional” (and most cumbersome) way is for the user to run vncserver manually. Some distributions have streamlined this procedure by providing a VNC service that spares the user to have to run vncserver himself yet the biggest obstacles remain:
-
for each user a password file has to be created via vncpasswd
-
for each user a xstartup file has to be created which contains the commands to start his graphical environment
-
each user has to know the exact port/display number he has to connect to in order to get his own session and environment
-
-
Open a new session
[This is how Remote Desktop on Windows works by default]
via xinetd. On SUSE Linux you configure it via YaST > Network Devices > Remote Administration (VNC). The default port is 5901.For troubleshooting check whether XDMCP is enabled. -
Connect to the physical display session
[This is how VNC on Windows works and Remote Desktop in admin mode]
via the VNC module for X. On SUSE Linux you configure it via YaST > Hardware > Graphics Card and Monitor > VNC
[see TID 7003097]
. The default port is 5900.For troubleshooting check whether XDMCP is enabled. -
Through the desktop environment
[similar to “Remote Assistance” or running VNC in “User-Mode” on Windows]
( “Remote Desktop” (vino) on GNOME, “Desktop Sharing” (krfb) on KDE). On SUSE Linux you configure it via Control Center > System > Remote Desktop. The default port is 5900. -
Via ssh. This is not a distinct access method; it simply means that you tunnel any of the four above through ssh.