Table of Contents

Overview 

VNC = Virtual Network Computing http://en.wikipedia.org/wiki/VNC enables you to set up a connection from a remote host (e.g. a PC offsite) to a session on a SLAC Linux host.  For access to control system components such as edm displays or matlab programs, VNC often provides the best performance.
The elements are:

  • The vncserver runs a KDE session on a linux host.
  • The VNC Viewer runs on your PC, and connects to the Linux session, allowing you to do work on the Linux host.

This document contains instructions for setting up a connection from a Windows PC to a VNC session on a public Linux host at SLAC.  

IMPORTANT, PLEASE NOTE:

  • Due to timeouts associated with things like afs tokens, kerberos tickets, vpn, and ssh tunnelling, vncserver sessions left running can become inaccessible to VNC Viewers, and will to be restarted. Troubleshooting section below has some possibilities for getting around the problem, but they are not always successful. In any case, please do not leave unsaved work in your session.
  • The iris group of SCCS machines are equipped with fonts necessary for running edm displays like lclshome. Other machines like noric or yakut do not have these fonts.

Set up your PC (one time)

Configure your vncserver (one time)

  • Using putty (or XWin-32 if you prefer) log into iris01.slac.stanford.edu, providing your unix username and password
  • Create your vnc password:
    • > vncpasswd
      Provide a password following the usual SLAC password guidelines.
      The password will be stored in ~/.vnc/passwd
      To reset the password, you can run vncpasswd again.
  • Protect the password:
    • > fs setacl ~/.vnc system:slac none
    • > fs setacl ~/.vnc system:authuser none
  • Start vncserver to create your xstartup file:
    • > vncserver -localhost -nolisten tcp -geometry 1440x900
    • Make note of the display number that is returned, for example:
      jrock@iris01> vncserver -localhost -nolisten tcp -geometry 1440x900
      New 'iris01:3 (jrock)' desktop is iris01:3
      Starting applications specified in /u/cd/jrock/.vnc/xstartup
      Log file is /u/cd/jrock/.vnc/iris01:3.log
      In this case, 3 is the display number, which is a unique ID for your particular vncserver session.
      In the following instructions, the display number is indicated by displaynum
  • Kill the server:
    vncserver -kill :displaynum
    for example
    vncserver -kill :3
  • Edit your vnc xstartup file to invoke kde at startup:
    • > emacs ~/.vnc/xstartup
      change last line from "twm" & to "startkde&", save and close

Run your vnc server (as needed)

As needed.

The session will continue to run until you -kill it, or until SCCS does.
Warning - tokens, kerberos tickets, vpn, and ssh tunnelling can all conspire to prevent you from reconnecting to an existing vncserver session. See troubleshooting section below. The safest thing is to re-start a vncserver for every use, and -kill it when done.

Use VNC Viewer to connect from Windows (every time you connect)

Every time you need a new session.

  • Invoke a command window on your PC:
    • click the Start Button in the lower lefthand corner of your screen
    • enter Command in the search box
    • select "Command line tools" from the list
  • In the command window, use putty to create a secure scp tunnel to the vncserver host and vncserver port:
    • putty -ssh -L pcport:localhost:59displaynum vncserverhost.slac.stanford.edu
      • pcport = port on your pc, e.g. 5902
      • displaynum = vncserver session as noted when you started the vncserver
      • vncserverhost = host where vncserver is running
    • for example
      putty -ssh -L 5902:localhost:5903 iris01.slac.stanford.edu
      or
      putty -ssh -L 5902:localhost:5912 iris02.slac.stanford.edu
      **Enter your unix username and password.
  • Now run the VNC Viewer (click the shortcut)
    • In the Server box, enter localhost:pcport
      for example localhost:5902
    • click OK
    • The vnc viewer authentication popup will appear; this can take some time.
    • Enter your vnc server password (you don't need to enter username in the popup).
  • Your linux desktop should appear.
  • When you're ready to close the vnc client, simply click the window close icon, "X", at the upper righthand corner of the display.

Troubleshooting

Here are some VNC Viewer errors you may encounter.

  • "No password configured for VNC Auth"
    • this means that your session has lost the ability to read the vnc password file, or can't find the pw file. Here are some things to try:
      • Verify you are still connected to SLAC via vpn
      • Verify you're putty-ed into the right host and port for your vncserver, and you've specified the right pc port in the vnc client popup.
      • log into the vncserver host and verify your that vncserver session exists:
        ps -ef | grep vnc | grep yourusername
      • If the process is not running, then restart it as detailed above and try connecting again.
      • If the process is running, you can try to refresh the vnc password (use vncpasswd command, as detailed above)  You can use the same password, or a different one - the goal is to touch the password file. Close your putty ssh sessions, and re-establish the tunnel to the vncserver port.
    • If none of these steps are successful, then you will have to -kill the vncserver, restart it, and then reconnect. See above for instructions.
  • "Unable to connect to host: Connection refused (10061)"
    • You don't have an ssh tunnel established to the host and port.
  • "The connection closed unexpectedly" (at VNC Viewer startup)
    • You're logged into the wrong displaynum port corresponding to your vncserver.
  • edm displays (e.g. lclshome) come up without text
    • Not all SCCS machines have the fontset for edm. Please use the iris machines.

References 

SLAC Linux VNC page: http://www.slac.stanford.edu/comp/unix/vnc.html

contacts:

  • Judy Rock (x3639)
  • Mike Zelazny (x3673)
  • Jingchen Zhou (x4661)

  • No labels