Saturday, May 2, 2009

Enable remote desktop on linux using VNC


As an Windows administrator, I always have to work with many Windows servers. Most of the time, I use remote access rather than go to in front of each server. This can be done easily because they’re the same platform. But sometime I also need to access Linux server from Windows XP, too. This can be done by using VNC. By default, VNC is alrealy installed on Redhat so I only need to configure it as VNC server and I have to install VNC Viewer on Windows XP. When enable this service, please keep in my that others can also remote to the server with this protocol, too!. So if your network can’t be trusted, do not enable the vncserver service. But in my case, I have firewall to limit only from my computer and the network is trusted.

VNC stands for Virtual Network Computing. It is remote support software which allows you to view and fully interact with one computer desktop (the “VNC server”) using a simple program (the “VNC viewer”) on another computer desktop anywhere on the Internet. The two computers don’t even have to be the same type, so for example you can use VNC to view a Windows Vista desktop at the office on a Linux or Mac computer at home. For ultimate simplicity, there is even a Java viewer, so that any desktop can be controlled remotely from within a browser without having to install software.


In this section, I’ll show how to configure VNC server on Redhat server and using VNC Viewer connect the server remotely from Windows XP.

  1. On Redhat server, login with your username that you want to enable remote access. In this example, I will use ‘admin’ user.
    Redhat Gnome's desktop
  2. Open Terminal, type ‘vncpasswd’. Type your password and verify password again. This command will use to set you password for remote access for the current user.
    Set VNC password
  3. Before next step, you need to logged on as root by type ’su root’.
    Log as root using su
  4. Edit the file /etc/sysconfig/vncservers by type ‘ vi /etc/sysconfig/vncservers’.
    Note: If you are new to Linux, vi is an editor tool in command line mode on Linux.
    Edit /etc/sysconfig/vncservers
  5. You’ll see text file as in the figure below. Next, I’ll edit on the highlight line.
  6. Uncomment on the highlight line. If you have more than one usernames that want to enable remote acces, you can change VNCSERVERS value in this format, “1:username1 2:username2 3:username3 ….”. In this example, I have only one user which is root so this line of mine is ‘VNCSERVERS = “1:admin”‘.
    Edit /etc/sysconfig/vncservers
  7. Now save the file and exit. To save file, hold ESC + ‘:’ and type ‘wq’ to write and quit file.
    Write and quit file in vi editor
  8. Next, log off the user if you are not user ‘root’ and log in as root. Enable VNC service by type ‘chkconfig vncserver on’. Then, start the VNC service by type ’service vncserver start’.
    Set up VNC server as service and start
  9. If you have firewall enable on Redhat, be sure that your firewall configuration won’t block connection from remote computer by open port TCP 5901 for remote access. Open Applications -> System Settings -> Security Level. Add ‘5901:tcp’ on Other ports.
    Note: VNC uses TCP protocol on port 5901.
    Open TCP port 5901 for remote access
  10. Now you can connect Redhat server from remote computer. On my Windows XP computer, open VNC Viewer on Windows XP, type IP Address of Redhat server with number as a username specify in step 6. In this example, I want to remote to Redhat server as ‘admin’ user which I assign as number 1 in step 6 (1:admin) and my Redhat server is So I type ‘′.
    Note: You can download VNC Viewer for free at
    Test connect to Redhat server from remote computer
  11. Type your password for ‘admin’ user which has been assign in step 2.
    Specify password
  12. Now you have connect to Redhat server remotely. But you’ll see that the interface looks different. You have to do a little thing more.
    Remote screen
  13. On Redhat server, open terminal and type ‘vi /home/username/.vnc/xstartup’. In this example, I type ‘vi /home/admin/.vnc/xstartup’.
    Note: If you going to enable remote access for user ‘root’, the file would be at ‘/root/.vnc/xstartup’.
    Edit /home/admin/.vnc/xstartup
  14. Uncomment these two lines and save the file.
    Note: If you want to force to load Gnome or KDE Desktop on remote access, edit the last line from ‘twm &’ to ’startx &’ for Gnome and ’startkde &’ for KDE Desktop.
    Edit xstartup
  15. Type ’service vncserver restart’ to apply changes.
    Restart VNCServer service
  16. Reconnect using VNC viewer on remote computer again. Now you will see the desktop as you were log in at the server but now you’re remotely :).
    Connect to Redhat server remotely

No comments: