Estou proxy de uma porta do servidor TCP VNC com o netcat. A máquina proxy executa o linux.
Este é o comando que eu uso:
mkfifo backpipe
nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe
10.1.1.116 é a máquina "remota" com o serviço VNC original em execução na porta 5902. Após esse comando, o serviço VNC está disponível no host local para outras máquinas.
Mas após cada sessão do VNC, o "servidor proxy" do netcat para, e é assim que o netcat funciona.
Como posso fazer com que o netcat mantenha o "serviço proxy" em execução após o encerramento de uma sessão VNC?
Como solução alternativa, estou colocando a linha de comando netcat em um loop infinito:
mkfifo backpipe
while true; do nc -l 5902 0<backpipe | nc 10.1.1.116 5902 1>backpipe; done
Mas eu preferiria uma solução netcat "oficial" que não interrompa o serviço.
Eu li sobre o parâmetro "-", mas não tenho certeza se isso se encaixa no caso e ainda não foi possível aplicá-lo corretamente.
Observações adicionais:
É claro que posso fazer isso com o tunelamento ssh de maneiras diferentes, mas eu queria uma solução sem a sobrecarga de criptografia para torná-la o mais responsiva possível para o cliente VNC. Caso contrário, uma solução de proxy diferente seria OK.
O cliente precisa ser VNC, nenhum outro protocolo é possível.