Pośredniczę w serwerze VNC TCP z serwerem Netcat. Maszyna proxy działa pod Linuksem.
Oto polecenie, której używam:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116 to „zdalna” maszyna z oryginalną usługą VNC działającą na porcie 5902. Po tym poleceniu usługa VNC jest dostępna na hoście lokalnym dla innych komputerów.
Ale po każdej sesji VNC „serwer proxy” netcat zatrzymuje się, tak działa netcat.
Jak sprawić, by netcat utrzymywał „usługę proxy” po zakończeniu sesji VNC?
Aby obejść ten problem, umieszczam wiersz polecenia netcat w nieskończonej pętli:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
Wolałbym jednak „oficjalne” rozwiązanie netcat, które w ogóle nie przerywa usługi.
Przeczytałem o parametrze „-”, ale nie jestem pewien, czy pasuje to do przypadku i nie byłem jeszcze w stanie go poprawnie zastosować.
Dodatkowe uwagi:
Oczywiście mogę to zrobić z tunelowaniem ssh na różne sposoby, ale chciałem rozwiązania bez narzutu szyfrowania, aby było możliwie jak najbardziej responsywne dla klienta VNC. W przeciwnym razie inne rozwiązanie proxy byłoby OK.
Klient musi być VNC, żadne inne protokoły nie są możliwe.