Sto eseguendo il proxy di una porta del server TCP VNC con netcat. La macchina proxy esegue Linux.
Questo è il comando che uso:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116 è la macchina "remota" con il servizio VNC originale in esecuzione sulla porta 5902. Dopo questo comando il servizio VNC è disponibile su localhost per altre macchine.
Ma dopo ogni sessione VNC il "server proxy" netcat si interrompe, ed è così che funziona netcat.
Come posso fare in modo che netcat mantenga in esecuzione il "servizio proxy" dopo che una sessione VNC è stata terminata?
Per ovviare a questo problema, sto inserendo la riga di comando netcat in un loop infinito:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
Preferirei una soluzione netcat "ufficiale" che non interrompa affatto il servizio.
Ho letto del parametro "-" ma non sono sicuro che si adatti al caso e non sono stato ancora in grado di applicarlo correttamente.
Note aggiuntive:
Ovviamente posso farlo con il tunneling ssh in diversi modi, ma volevo una soluzione senza il sovraccarico di crittografia per renderlo il più reattivo possibile per il client VNC. Una soluzione proxy diversa sarebbe OK altrimenti.
Il client deve essere VNC, non sono possibili altri protocolli.