| FOTO | AUTO | EDV | AUDIO |

VNC

Installation

yum install tigervnc           # Dies installiert den Client (Optional)
yum install tigervnc-server    # Dies installiert den Server
tigervnc wird statt tightvnc verwendet

VNC automatisch starten

chkconfig vncserver on
vi /etc/sysconfig/vncservers

VNCSERVERS="1:andre 2:root"                            
VNCSERVERSARGS[1]="-geometry 1024×768"    
VNCSERVERSARGS[2]="-geometry 1024×768"

Diese Konfiguration startet automatisch eine VNC Session 1 (Port 5901) als Benutzer paul mit einer Auflösung von 1024×768
und eine Session 2 (Port 5902) als root mit einer geringeren Auflösung
Achtung
Eine automatisierte VNC-Session muss zuvor mindestens einmal vom User manuell gestartet worden sein um die zugehörie Datei xstartup und das Passwoer zu generieren.
Jetzt muss der Dienst VNC-Server beim Starten automatisch mit gestartet werden:

chkconfig vncserver on

Erster Start

Zuvor muss die lokale Firewall iptables deaktiviert oder angepasst werden:

/etc/init.d/iptables stop

deaktiviert die lokale Firewall komplett. Besser ist es nur die verwendeten Ports zu öffnen:

vim /etc/sysconfig/iptables

Unter der Sektion :OUTPUT ACCEPT [0:0] werden die Regeln zum Öffnen der Ports hinzu gefügt

# Open VNC for Paul
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5801  -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901  -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6001  -j ACCEPT
 
# Open VNC for root
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5802  -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902  -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6002  -j ACCEPT
Nach dem Speichern mit „/etc/init.d/iptables restart“ die neuen Regeln aktivieren. Für weitere VNC-Sessions müssen die Entsprechenden Ports freigegeben werden.

als User paul

vncserver :1

Dies mit jedem in der Konfiguration eingetragenen User wiederholen

Konfiguration

Jeder User hat eine eigene vnc Konfigurationsdatei, die nicht geändert werden muss.
Als root:

vim /root/.vnc/xstartup

#!/bin/sh
[ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
export LANG
export SYSFONT
vncconfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
OS=`uname -s`
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  exec /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  exec sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
Diese Konfiguration startet unter tigervnc eine Gnome-Session. Sollte eine KDE- oder twm-Session gestartet werden, muss die letzte Zeile angepasst werden:
twm &         # startet twm
startkde &    # startet KDE

Testen

Zuerst ein lokaler Test ov VNC und dessen Ports arbeiten:

netstat -tulpan | grep vnc

Das Ergebnis muss etwa so aussen:

tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN      9150/Xvnc           
tcp        0      0 0.0.0.0:6002                0.0.0.0:*                   LISTEN      9150/Xvnc           
tcp        0      0 :::6002                     :::*                        LISTEN      9150/Xvnc   

Jetzt kann ein beliebiger VNC-Client auf dem Client-PC installiert und gestartet werden. Mit einem TightVNC Client kann durch die Eingabe von:

192.168.4.94::5902

eine VNC-Verbindung hergestellt werden.

VNC-Umleitung (Tunnel)

Wer sich übers Netz auf einen Linuxrechner einloggt und Programme mit graphischer Benutzeroberfläche (etwa kprinter) benutzen will, braucht eine Bildschirmumleitung. Von einem Linuxrechner aus kann man einfach ssh -X benutzen, dann sollten grafische Programme sich normal starten lassen. Beim Einloggen von einem Windows-Rechner aus kann man sich so helfen:

VNC-Server starten

Auf dem Server startet man einen neuen X-Server mit

vncserver -query localhost

Dies liefert eine Meldung der Form

New 'X' desktop is host:1

oder ähnlich, wobei die „1“ die Nummer des X-Servers ist, sie kann sich ändern. Diese sollte man sich merken. Oft ist es sinnvoll, die Größe des umgeleiteten Bildschirms zu verkleinern indem man etwa verwendet

vncserver -query localhost -geometry 800x600

Beim ersten Aufruf von vncserver wird man nach einem Passwort gefragt. Dies braucht man später, um auf den Server zugreifen zu können. Es muss nicht das User-Passwort sein. Um das Passwort zu ändern, löscht man die Datei

~/.vnc/passwd

Dann muss man beim nächsten Start ein neues eingeben.

SSH-Tunnel aufbauen

Auf dem Windows-client startet man eine SSH-Verbindung zum Server mit PuTTY, also PuTTY starten, Host und Port 22 wählen. Zusätzlich müssen zwei ports getunnelt werden. Das geht so: Links im Menü „Connection/SSH/Tunnels“ wählen.

Source port: 5801 
Destination: rechner.math.tu-clausthal.de:5801 

eingeben und Add klicken, danach das gleiche mit 5901. Die letzte Ziffer muss der Nummer des X-Servers (siehe oben) entsprechen! „Open“ wählen und mit Kennung und Passwort einloggen. WWW-Browser starten und als URL

http://localhost:5801

verwenden (letzte Ziffer wieder anpassen). Es läuft eine Java-Anzeige der Bildschirmumleitung. Der Bildinhalt wird jeweils als JPEG übertragen, deswegen nicht besonders schnell. Innerhalb des Matheinstituts reicht das nach meiner Erfahrung für die meisten Programme, dauerhaft arbeiten will man damit aber wahrscheinlich nicht. Ansicht mit Viewer Es gibt spezielle vnc-viewer zum Anzeigen der Umleitung. Diese sollten schneller sein. Funktioniert bei mir bislang nicht, vermutlich kommen die nicht mit den SSH-Tunnels klar. Beenden

client: Browser/viewer beenden 
server: vncserver beenden mit 
vncserver -kill :1
client: SSH-Verbindung/PuTTY beenden. 

Troubleshoot

Passwort zurück setzen

Dazu den vncserver stoppen und die Datei:

/home/*user*/.vnc/passwd

löschen. Beim Neustart der VNC-Session wird nach einem neuen Passwort gefragt.

Server startet nach Absturz nicht mehr

Das liegt meist daran, dass es die Lock-Dateien xxx:x.log xxx:x.pid im Ordner /home/user/.vnc/ noch gibt obwohl der Service nicht gestartet ist. Dies löst man so für Paul mit der Session 1:

su paul                      # falls man nicht schon der richtige User ist (hier: paul)
vncserver -kill :1           # beende die VNC-Session 1, falls sie noch läuft
rm /home/paul/.vnc/*1.log    # löscht die LOG-Datei der Session 1
rm /home/paul/.vnc/*1.pid    # löscht die PID-Datei der Session 1
vncserver :1                 # startet die Session 1 neu

Weitere Infos