Sie benötigen einen Reverse-SSH-Tunnel und einen regulären SSH-Tunnel, und Sie verbinden sie in der Mitte.
Wir haben 3 Maschinen. Freund, Server, Mac.
Von Friend aus stellen Sie über SSH eine Verbindung zum Server her und richten einen Tunnel in umgekehrter Richtung ein.
ssh -R 9999:localhost:5900 user@Server
Dadurch wird eine ssh-Sitzung vom Freund zum Server erstellt. Auf dem Server hört er an Port 9999 (an der localhost-Adresse) zu und leitet alles an diesem Port an Friend an Port 5900 zurück (durch den ssh-Tunnel, damit die Firewall ihn nicht blockiert).
Bei Friend müssen Sie nun sicherstellen, dass ein VNC-Server den Port 5900 überwacht (dies ist der Standardport für VNC-Server).
Dann machen Sie von Mac aus
ssh -L 9999:localhost:9999 user@Server
Das tunnelt alles auf Port 9999 an Ihrem Ende zu Port 9999 auf dem localhost auf dem Server. Da 9999 auf dem Server dann an Friend weitergeleitet wird, haben Sie die Tunnel miteinander verbunden.
Jetzt können Sie einen VNC-Client auf einem Mac öffnen und ihn an Port 9999 anschließen (dh, wenn Sie gefragt werden, mit welcher Verbindung Sie sich verbinden möchten 127.0.0.1:9999
).
Der ssh-Daemon auf dem Server muss die Portweiterleitung unterstützen, damit dies funktioniert.
Sie können dies mit nur einem Tunnel tun (der umgekehrte Tunnel von Friend verwendet ein geringfügig anderes Format), aber das gefährdet den Friend-Computer, da dadurch jeder VNC-Freund an Friend teilnehmen kann, indem er sich mit dem Port der öffentlichen IP-Adresse des Servers verbindet. Auf diese Weise können nur Sie eine Verbindung herstellen.