Я наближаюсь до порту сервера VNC TCP з netcat. Проксі-апарат працює під управлінням Linux.
Це команда, яку я використовую:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116 - це «віддалений» апарат з оригінальною службою VNC, що працює на порту 5902. Після цієї команди послуга VNC доступна в localhost для інших машин.
Але після кожного сеансу VNC «проксі-сервер» netcat припиняється, саме так працює netcat.
Як я можу змусити netcat підтримувати роботу "проксі-сервісу" після закінчення сеансу VNC?
В якості вирішення я вкладаю командний рядок netcat у нескінченний цикл:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
Але я вважаю за краще "офіційне" рішення netcat, яке зовсім не перериває послугу.
Я читав про параметр "-", але не впевнений, чи відповідає це випадку, і я ще не зміг його правильно застосувати.
Додаткові зауваження:
Звичайно, я можу зробити це за допомогою тунелювання на ssh різними способами, але я хотів рішення без шифрування накладних витрат, щоб зробити його максимально чуйним для клієнта VNC. Інакше рішення проксі-сервера було б нормально.
Клієнт повинен бути VNC, інші протоколи неможливі.