Server via VNC einfach fernsteuern (Debian)

VNC ist vielen Admins bekannt – doch meist als zu sperrige ressourcenfressende Lösung angesehen. Zudem hängt VNC der Ruf an, schwer einzurichten zu sein. Dass das nicht so sein muss möchte ich mit diesem kleinen Tutorial zeigen. Das Tutorial ist für Debian, funktioniert aber natürlich wie gewohnt auf allen Debian-Derivaten und mit Nutzung der entsprechenden Paketmanager wahrscheinlich auch auf anderen Linux-Systemen.

Das Tool der Wahl für Debian heißt VNC4Server, es benötigt im Gegensatz zu den meisten anderen VNC-Servern kein installiertes X-System! Neben dem VNC-Server wird natürlich auch noch ein Window-Manager benötigt. Ich habe mich hier der Einfachheit halber und weil es sehr ressourcenschonend ist für Fluxbox entschieden.

Die benötigten Pakete installiert man (als root) also mit

1
apt-get install vnc4server fluxbox

Danach sollte man den root-Account wieder einmotten und per vnc4passwd ein Passwort für die Verbindung vergeben.
Achtung: die Verbindung ist von Haus aus trotzdem nicht verschlüsselt. Dafür nutzen wir später einen SSH-Tunnel. Daher im Startbefehl auch der Parameter localhost – damit wir uns nur per Tunnel verbinden können 😉

Das Setzen des Passworts sollte bereits einen Ordner „.vnc“ (per default ist dieser unsichtbar) im home-Ordner des Nutzers angelegt haben. Dort hinein kommt eine Datei mit dem Namen „xstartup“ und folgendem Inhalt:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
 
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
fluxbox &

Das Script wird automatisch geladen sobald VNC4Server gestartet wird und sorgt dafür, dass fluxbox und ein xterm-Fenster zur Verfügung stehen. Natürlich kann man hier auch direkt beliebige weitere Programme starten lassen. Das Abspeichern der Datei „xstartup“ nicht vergessen. Danach noch das executable-Recht vergeben:
chmod +x xstartup

Den Server können wir nun mittels

1
vnc4server -geometry 1024x768 -depth 24 -name "MyDesktop" -localhost

starten, die Startparameter sind selbsterklärend. Eine hohe Auflösung und Farbtiefe heißt in jedem Fall natürlich auch höherer Bandbreitenverbrauch. Mit dem obrigen Parameter -localhost wartet VNC4Server auf Verbindungen nur von der lokalen Maschine und zwar auf dem Port 5900+DisplayNummer. Das bedeutet im Normalfall wird das Programm einfach auf 5901 lauschen.

Über SSH können wir uns jetzt mit dem Server verbinden:

unter Linux:
vncviewer -via user@host localhost:0
host steht dabei für die IP-Adresse oder den Hostnamen des Servers, user für den Benutzernamen, mit dem die (SSH-)Anmeldung auf dem Server erfolgen soll.

unter Windows:
Hier muss man zunächst z.B. per Putty einen SSH-Tunnel anlegen (eine Anleitung findet sich zum Beispiel auf dieser Website SSH-Tunneling auf Windows-Computern unter dem Punkt „Einrichtung auf Client-Seite“) und sich dann z.B. mit der kostenlosen VNC Viewer Free Edition 4.1 for Windows zu 127.0.0.1:5901 verbinden.

  1. Ein gutes Tutorial es hat auch alles geklappt nur das mein vnc Viewer mir nur ein Fenster mit schwarzen und weißen punkten anzeigt woran könnte das liegen?

  2. Möglicherweise startet bei Ihnen der Fenstermanager fluxbox nicht. Stellen Sie sicher, dass die /home/username/.vnc/xstartup dem Nutzer gehört, der VNC startet (und nicht etwa root) und dass sie für den Besitzer ausführbar ist (chmod +x). Zur Not können Sie natürlich auch einen anderen Windowmanager ausprobieren, z.B. TWM.

  3. Hallo,
    Danke für die Erklärung, ich habe bloß noch folgendes Problem: Was muss ich machen, damit vnc4server automatisch nach dem booten, ohne Login, bereit ist?

    Ich habe mir auf einem Epia Board eine Debian Squeeze installiert Ufa dem MPD läuft, es ist keine Tastatur, Maus und Minitor angeschlossen.

    Ich hoffe sie können mir helfen.

    Gruß, Andre

  4. Im Prinzip müssen Sie nur ein Startup-Script, z.B. /etc/init.d/vncstartup erstellen:

    #!/bin/bash
    case $1 in
    start)
    vnc4server -geometry 1024x768 -depth 24 -name "MyDesktop" -localhost
    ;;
    stop)
    killall vnc4server
    ;;
    restart)
    stop
    start
    ;;
    *)
    echo "usage: vncstartup {start|stop}" ;;
    esac
    exit 0

    Danach linken Sie im rc-Scriptordner des Runlevel (ich denke mal 2) zum Script:

    cd /etc/rc2.d/
    ln -s ../init.d/vncstartup S99vncstartup

    Ab jetzt sollte der Server automatisch starten.

  5. Tolles Tutorial, leider habe ich das gleiche Problem wie schon Kommentator Frederik.
    Nach dem Login per VNC präsentiert sich mir nur ein Bildschirm mit schwarz, weißen Punkten. Als Cursor habe ich ein Kreuz.
    Gibt es dafür einen Lösungsansatz?

    • Hallo Luis,

      hast du ausprobiert, was ich unter Frederiks Kommentar geantwortet habe? Das ist nämlich der häufigste Grund, warum kein Terminal-Fenster erscheint.

      Probiere auch mal einen Rechtsklick aus, da sollte dann ein Menü mit den verschiedenen Anwendungen aufgehen…

Einen Kommentar hinterlassen

css.php