Ich habe einen VNC-TCP-Server-Port mit Netcat vertreten. Der Proxy-Rechner läuft unter Linux.
Dies ist der Befehl, den ich benutze:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116 ist die "entfernte" Maschine, auf der der ursprüngliche VNC-Dienst auf Port 5902 ausgeführt wird. Nach diesem Befehl ist der VNC-Dienst auf localhost für andere Maschinen verfügbar.
Aber nach jeder VNC-Sitzung stoppt der "Proxy-Server" von Netcat, so funktioniert Netcat.
Wie kann ich dafür sorgen, dass netcat den "Proxy-Dienst" nach Beendigung einer VNC-Sitzung weiterhin ausführt?
Als Workaround stelle ich die Netcat-Kommandozeile in eine Endlosschleife:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
Aber ich würde eine "offizielle" Netcat-Lösung vorziehen, die den Dienst überhaupt nicht unterbricht.
Ich habe über den Parameter "-" gelesen, bin mir aber nicht sicher, ob dies zum Fall passt, und konnte ihn noch nicht richtig anwenden.
Zusätzliche Bemerkungen:
Natürlich kann ich dies mit ssh-Tunneling auf verschiedene Arten tun, aber ich wollte eine Lösung ohne Verschlüsselungsaufwand, um sie für den VNC-Client so reaktionsschnell wie möglich zu gestalten. Eine andere Proxy-Lösung wäre ansonsten OK.
Der Client muss VNC sein, andere Protokolle sind nicht möglich.