VNC

From Amahi Wiki
Revision as of 21:57, 1 April 2011 by Ghstryder (talk | contribs)
Jump to: navigation, search

Using VNC to use a remote desktop in the HDA

Using VNC is useful if:

  • You would like a Linux desktop to the HDA remotely
  • You run your HDA headless (no monitor) and like to still use a desktop in it
  • You would like to use a GUI to configure printer(s) or have a scanner or other device that requires a desktop program to configure and the machine is headless

What you need

  • A server
  • A client

Client: Installation

Download the client software and install:

  • Windows: RealVNC, UltraVNC, TightVNC
  • MAC: Chicken of the VNC - do not use the internal vnc client because there are some problems
  • For Linux, you have the vncviewer package, available in most, if not all distros. For Fedora 12, do the following as [Open_Terminal_as_root|root] user:
       yum -y install tigervnc

Server Installation

There are various ways to get the server going in your HDA. All of them require the server software.

  1. VNC: one-click install
  2. Manually as described below (notes may require some revision)

Manual Install

  • As root, install the server:
       yum -y install tigervnc-server

Method 1

  • Open a terminal, become root and install the VNC server (tigervnc-server) as stated in the Manual Install section.
   When the install has completed, press ctrl-D to end the root session. Leave the terminal open, or open one now.
  • The following commands are entered as User.
  • Type vncpasswd and press enter.
   The system will prompt you for a password. Type a password and press the enter key.
   The system will prompt you to verify the password. Type the password a second time and press the enter key.
  • Type vncserver and press the enter key.

The system will create the configuration files. You should see output similar to this:

     xauth: creating new authority file /home/user/.xauthority
     New 'host.localdomain:1 (user)' desktop is host.localdomain:1
     Creating default startup script /home/user/.vnc/xstartup
     Starting applications specified in /home/user/.xauthority
     Log file is /home/user/.vnc/host.localdomain:1.log


  • You can edit the configuration files using your choice of editor. Nano is used below.
   Note that when "user" is shown, you need to enter your user name.
  
  • Type nano /home/user/.vnc/xstartup and press the enter key. Nano will open the file.
   Find the following line:
     twm &
   Change that line to read:
     exec gnome-session &
 This change will open the VNC display with a Gnome desktop, even if the server is starting in Init 3 by default. 
   Press ctrl-X to exit Nano. You will see the prompt at the bottom "Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
   Press the Y key. The prompt will change, showing you the file name.
   Press the enter key, this will store your change and exit Nano.


  • The following commands are entered as Root.
  • Type su and press the enter key followed by the root password

You can edit the configuration files using your choice of editor. Nano is used below. Note that when "username" is shown, you need to enter your user name.

  • Type nano /etc/sysconfig/vncservers and press the enter key. Nano will open the file.
   Find the following lines:
     '#' VNCSERVERS="1:username"
     '#' VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -localhost"
  • Uncomment both lines by removing the # at the beginning of the lines.
   Edit the lines so they appear as follows:
     VNCSERVERS="1:username"
     VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"
 Enter your username in place of "username". After "geometry", you can enter any resolution you desire. You can come back and change this if necessary.
   Press ctrl-X to exit Nano. You will see the prompt at the bottom "Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
   Press the Y key. The prompt will change, showing you the file name.
   Press the enter key, this will store your change and exit Nano.
  • Finally, type chkconfig vncserver on and press the enter key. This will make the VNC server start when the computer starts.
  • Press ctrl-D to end the root session, and then press ctrl-D again to close the terminal.
  • That's it - Run your VNC Client and enter hda:1 as the host/IP address. You should now see your HDA Desktop screen.
  • If you are interested in more security for your VNC connection, check the link listed below under "General Instructions"
  • Repeat the configuration for each user you wish to be able to connect via VNC.
  • Note you can have displays for users 1-9 and each will connect to their VNC session at port 590n (some VNC clients 'know' the 590 part and only have you enter n)
  • Add -localhost to options if you are connecting through a ssh tunnel or only locally. This adds some security.

Method 2

  • To start the server in your HDA, you need install tigervnc-server rpm package:
  • From the root user:
       yum -y install xinetd
       chkconfig vncserver off
       service vncserver stop
  • Create /etc/gdm/custom.conf file and add the following:
       #GDM configuration storage
       [xdmcp]
       Enable=true
       [chooser]
       [security]
       DisallowTCP=false
       [debug]
  • Create /etc/xinetd.d/vnc1024 file and add the following (you can change the screen resolution by changing the geometry setting):
       service vnc1024
       {
       disable = no
       socket_type = stream
       protocol = tcp
       group = tty
       wait = no
       user = nobody
       server = /usr/bin/Xvnc
       server_args = -inetd -query localhost -geometry 1024×768 -depth 16 -once -fp /usr/share/X11/fonts/misc -securitytypes=none
       }
  • Edit /etc/services and comment out the two lines as listed below:
       #vnc-server      5900/tcp                # VNC Server
       #vnc-server      5900/udp                # VNC Server
  • Add this line below the two lines you commented out and save the changes:
       vnc1024         5900/tcp                # VNC and GDM
  • Now restart the xinetd service
       service xinetd restart
  • Run your VNC Client and enter your HDA IP address for host/IP address. You should now see your HDA Desktop login screen. If you don't see the login screen, a reboot of the HDA may be required. This can be done via the dashboard or by executing the following as root user:
       reboot now

Method 3 (the cpg method)

  • Every time the HDA is rebooted, when VNC is needed, ssh to the HDA
  • The first time without do:
     vncserver -geometry 1550x1100
  • After the first time, I type vncs. I have an alias in ~/.bashrc:
     alias vncs='vncserver -geometry 1550x1100 &> /dev/null &';

Notes:

  • Why that resolution? That fits my monitors with the VNC window and frame enough to not display scrollbars and move around nicely. Change at will!
  • It does involve the dreaded CLI.
  • Since my HDA does not get rebooted often, this is not a huge problem

General Instructions

More detailed instructions are available here.

Troubleshooting for Vista

This helpful page has helped with blocking VNC

Images for the App