reverse VNC – sudo killall NAT/Firewallproblems ^^

Tuesday, 20. January 2009

Kurzbeschreibung:

Der Hilfesuchende startet den Server – der Supporter startet den Client (alles wie gehabt)

[Im normalen Szenario verbindet nur der Supporter(vncviewer) zum Hilfesuchenden(vncserver)]

Im hier beschriebenen Szenario wird der Vorgang der Verbindungsaufname umgedreht. Der Hilfesuchende(vncserver) verbindet sich zum Supporter(vncviewer). Der “Schmäh” hierbei ist ganz einfach der, dass ich so als Supporter die Aufgabe hab dafür zu sorgen dass der Hilfesuchende auch verbinden kann – nicht umgekehrt.

Bei der herkömmlichen Vorgehensweise verbinde ich mich zum Hilfesuchenden (welcher unter Garantie hinter einem NAT/Router hängt und keinen blassen Schimmer hat was das überhaupt ist, geschweigedenn Port forwarding aktivieren könnte)….  daher .. warum nicht einfach mal andersrum? Und so gehts:

Supporter:

vncviewer -listen -compresslevel 6 -quality 2 -depth 8 -bgr233 -owncmap

Supportempfänger:

x11vnc -scale 3/4 -connect IP:5500

Dieses Setup bietet eine recht hohe Kompression und niedrige Bildqualität, entfernt den Desktopbackground und verkleinert den Remotedesktop auf 75 Prozent. Die IP muss klareweise die des Supporters sein oder ein Hostname (DynDNS ist dein Freund)

Wer das ganze ohne Konsole machen möchte und lieber etwas Anklickbares am Desktop hat – der kann auf einen altbewährten Trick zurückgreifen: (“xterm” muss hierzu installiert sein) Man packt einfach alles in ein kleines Shellscript das in etwa so aussieht:

(Skript einfach als zB. “vncviewer.sh” auf dem Desktop speichern und nicht vergessen das Shellscript ausführbar zu machen!)

 #!/bin/bash

foo()
{
echo "Starting VNCviewer! "
echo "listening for incoming connections ... "
exec vncviewer -listen -compresslevel 6 -quality 2 -depth 8 -bgr233 -owncmap
}
export -f foo
exec xterm -e foo

(dieFunktion “foo” wird exportiert und für andere Programme verfügbar gemacht woraufhin xterm diese ausführt und in einem neuen Fenster öffnet)

Für ReverseVNC gibt es ein wunderbares DAU-Sicheres GUI namens GITSO, welches jedoch keinerlei Einstellungsmöglichkeiten erlaubt und daher auch ungefragt 1680×1050 in 16bit unkomprimiert in voller jpg Qualität sendet (man kann sich vorstellen warum ich gleich in die Konsole gewandert bin)

http://code.google.com/p/gitso/

Zumindest für den Hilfesuchenden ist GITSO aber dennoch perfekt..  Ein Klick und schon bekommt man Support..

glhf

3 Responses to “reverse VNC – sudo killall NAT/Firewallproblems ^^”



  1. picock Says:

    Ich bin das Problem letztens anders umgangen, und zwar hab ich die VNC Verbindung durch einen VPN-Tunnel aufgebaut. Hat ohne Probleme auf Anhieb geklappt und wenn man bereits einen VPN-Server hat, dann ist es sehr schnell erledigt:

    1.) VPN-Verbindung aufbauen (mit Config-Files im Handumdrehen eingerichtet)
    2.) Zur gewünschten VPN-IP eine VNC Verbindung aufbauen.

    Und die Firewall-Schlachten kann man sich getrost schenken 🙂



  2. xapient Says:

    kenn ich gut.. aonline hat eine zeitlang bei einem business paket einen route/modem zur verfügung gestellt aber keinen zugang zur admin oberfläche gewährt.. ergo.. kein portforwarding.. von reverse vnc hab ich da noch nichts gewusst.. daher kam dann auch die lösung mit vpn .. (welches vpn hast du verwendet)

    reverseVNC ist die lösung ohne vpn.. daher von mir bevorzugt weil einfacher.. achja..
    ein GUI für tightvnc ist so gut wie fertig.. erlaubt die einstellung von wichtigen kommandozeilen parametern… wird eh gepostet dann



  3. MutterOberin Says:

    Hab das OpenVPN von meinem Server verwendet. Wenn man sich schonmal die Mühe gemacht hat, den aufzusetzen, dann sollt man ihn ja auch verwenden. Außerdem war das bei einem Bekannten, der durch sein AON-Modem hätte müssen und das wollt ich mir nicht antun. Einziger Nachteil sind die Server-Wartungsarbeiten …

    ReverseVNC ist für den Support-Fall sicher besser geeignet, weil man nicht auch noch den ganzen VPN Teil erklären muss. Deine GUI dafür hab ich schon bewundert, muss ich aber erst wieder in Python einlesen.