VNC Mac -> Linux ?

Dieses Thema im Forum "Software" wurde erstellt von Gobo, 5. Dezember 2005.

  1. Gobo

    Gobo New Member

    Nabend :)

    Folgendes Problemchen: Ich habe für meinen Mac einen Remote-Zugang eingerichtet entsprechend der Anleitung auf --> Screencasts online. Wenn ich mit meinem Win-Laptop direkt ins Internet kann, funktioniert das auch prima. Soweit, so gut.

    Wenn ich allerdings auf der Arbeit bin, kann ich aufgrund unserer Internet-Zugangs-Konfigurationen nicht direkt mit dem Laptop ins Internet, sondern muß mich auf einem Linux-Rechner einloggen (mach ich in der Regel per cygwin, slogin und Displayumlenkung), und dann von dort aus ins Internet.

    Ich kann mich vom Linux-Rechner aus problemlos per SSH mit meinem Max verbinden, und bekomme mein Darwin-Prompt. Nur das mit dem VNC will mir einfach nicht gelingen. Was die Ports angeht, so ist der VNC-Port am Max (5902) auf "Listen" (laut 'netstat -a'), und der lokale Port auf dem Linux-Rechner ist open (laut 'nmap -p 5902 localhost'). Rufe ich allerdings auf dem Linuxrechner dann 'vncviewer localhost::5902' auf, erhalte ich dort sofort die Fehlermeldung "VNC server closed connection". Auf der Mac-Seite erhalte ich mit dem entsprechenden Verbosity-Level von SSH eine ganze Reihe von Meldungen, u.a. "open failed:connect failed:Connection refused".

    Grübel ... hat jemand von Euch eine erfolgreiche VNC-Verbindung von einem Mac auf einen Linux-Rechner hinbekommen?

    Da ich mich per Windows direkt ohne Probleme mit dem Mac verbinden kann, nehme ich an, daß Mac-seitig alles in Ordnung ist. Mit dem vncviewer auf dem Linux-Rechner kann ich problemlos mit anderen VNC-Servern (im Intranet) verbinden, der scheint also auch richtig zu tun ... Ideen?

    Wäre für jede Hilfe dankbar :klimper:
     
  2. Bathelt

    Bathelt New Member

    Mac seitig benötigst du eigentlich nur in den Systemeinstellungen/Sharing den Dienst Apple Remote Desktop und stellst dort VNC Benützer dürfen den Bildschirm steuern auf EIN.

    VNC benötigt die Ports 3283 + 5900 freigeschalten.
     
  3. Gobo

    Gobo New Member

    Moin Moin,

    Danke für die Antwort, aber daran liegt es nicht. Die VNC-Ports werden ja durch den SSH-Tunnel geschickt, d.h. ich muß ich in meiner Firewall nichts freigeben ausser Port 22. Mit Windows am anderen funktioniert es ja, nur das Port-Tunneling zu Linux hin haut irgendwie nicht hin ...
     
  4. Kafi

    Kafi New Member

    Also ich hab leider keine Zeit, mich damit laenger auseinander zu setzen, woran es bei dir liegen koennte, beschreibe aber mal meine Konfiguration:

    Ich habe mir bei Versiontracker OSXvnc runtergeladen. Dort habe ich aus sicherheitsgruenden eingestellt, dass nur lokale Benutzer sich verbinden duerfen. Dann muss aber auch "entfernte Anmeldung" in den Systemeinstellungen aktiviert sein (das ist es ja aber bei dir, soweit ich das entnehmen kann).

    dann mache ich einen ssh-tunnel von der Maschine, von der ich den Mac steuern moechte, auf meinen Mac auf, in der folgenden Form (direkt im Terminal):

    ssh -L 5900:127.0.0.1:5900 kafi@kafismac.dyndns.org

    Achtung, ich nehme absichtlich die 127.0.0.1 und nicht localhost, weil es in irgendner OS X Version Probleme mit localhost gab, da es da als ipv6 adresse definiert ist, und ich glaub OS X vnc nicht damit zurecht kam, oder aehnliches.

    der erste Port ist der, auf den ich von meinem lokalen Rechner auf localhost zugreife, der 2. der, den ich bei OSXvnc eingestellt habe.

    und dann funktioniert es mit z.B. vncclient localhost 5900 bei mir...
    vielleicht hiflt es dir ja weiter :)
     
  5. Gobo

    Gobo New Member

    Hallo Kafi,

    Danke für Deinen Antwort. Die OSXvnc-Einstellungen habe ich in der Tat genau so wie Du. Was den SSH-Aufruf angeht, scheint mir da aber ein Dreher drin zu sein. Du beschreibst Deinen Aufruf mit ssh -L <local port>:<local host>:<remote port> <user@remote host>.

    Wenn ich mir die manpage für ssh durchlese, müsste das aber lauten ssh -L <remote port>:<remote host>:<local port> <user@remote host>. Ich kann auf diese Art auch einen Tunnel mit Portforwarding zu meinem Max aufbauen. Wenn ich allerdings auf Linux-Seite abfrage, ob der Port auch bei mir "ankommt" (nmap -p 5905 127.0.0.1), werde ich aus der SSH-Verbindung rausgeworfen, und bekomme bei eingestellter Verbosity auf der Mac-Seite folgende Meldung angezeigt:
    Code:
    debug1: Connection to port 5905 forwarding to xxxxxxx.dyndns.org port 5902 requested.
    debug1: channel 3: new [direct-tcpip]
    debug1: getpeername failed: Transport endpoint is not connected
    Irgendwie scheint der Tunnel nicht sonderlich stabil zu sein ...
     
  6. Kafi

    Kafi New Member

    Hm, wuerd mich wundern, wenn ich da n dreher drinne haette :) ich poste mal n auszug aus der manpage, und gucke mal:

    -L port:host:hostport
    Specifies that the given port on the local (client) host is to be
    forwarded to the given host and port on the remote side. This
    works by allocating a socket to listen to port on the local side,
    and whenever a connection is made to this port, the connection is
    forwarded over the secure channel, and a connection is made to
    host port hostport from the remote machine.

    Hm, also viel gibt es da nicht zu sagen. Bei ssh -L 123:localhost:456 a@bc.de
    werden anfragen auf port 123 auf dem rechner, von dem du den tunnel aus gestartest hast auf den port 456 des rechners mit der IP 127.0.0.1 im zielrechnernetzwerk weitergeleitet, in dem fall sogar wg der 127.0.0.1 auf den zielrechner (bc.de) selbst.

    Vielleicht hast du auf dem Linux system eine andere Implementation von ssh, bei der es anders ist, was mich aber eher wundern wuerde...
     
  7. Gobo

    Gobo New Member

    Tse, da hatte ich wohl einen doppelten Dreher drin. Und siehe da, jetzt funktioniert es! :eek:) Da hab ich wohl vor lauter Hosts und Ports den Tunnel nicht mehr gesehen ...

    Vielen Dank für die Hilfe![​IMG]
     
  8. Kafi

    Kafi New Member

    Das heisst, du siehst jetzt quasi Licht am Ende des tunnels? Ob des ein gutes Zeichen ist? :D

    Naja, hauptsache, es funktioniert jetzt :)

    Viel Spass damit
     

Diese Seite empfehlen