Nota: Isso não é, repita não uma pergunta sobre o tunelamento do VNC sobre outra coisa, por exemplo SSH. Isso é um inteiramente diferente coisa .
Eu tenho uma máquina M1 em algum segmento de rede que é acessível a partir da máquina M2 fora do segmento via VNC, mas (para fins de discussão) nenhum outro protocolo. Nenhuma outra máquina nesse segmento é acessível de fora do segmento. Além disso, o M1 e outras máquinas em seu segmento local têm conectividade de saída limitada; especificamente, M1 não pode se conectar por SSH a qualquer nachine fora de seu próprio segmento local (e talvez nem mesmo lá).
Agora, se eu executar um cliente VNC no M2, direcioná-lo para M2, efetuar login e iniciar um shell, basicamente posso executar o que quiser e acessar máquinas no segmento local do M1. No entanto, estou limitado pela interação gráfica do cliente VNC.
Eu gostaria de poder tunelar conexões de alguma forma da minha máquina M2 para qualquer máquina no segmento local do M1, para qualquer lugar onde eu pudesse me conectar a partir do M1.
Como posso fazer isso? Ou melhor, as ferramentas necessárias para isso foram desenvolvidas e estão disponíveis gratuitamente?
O VNC é baseado em pixels . Eu não estou familiarizado com o protocolo, mas supondo que não exista nenhum dado interessante de "canal lateral", parece que o que precisamos é de um binário ou script em M que abra uma janela, ou qualquer retângulo, na janela. VNC 'display', usando o retângulo para saída e o movimento de teclado / mouse que esta janela recebe como entrada. Esses dois canais podem ser usados para se comunicar, digamos, com uma sessão de shell (ou uma sessão nc
, se desejar). Os pressionamentos de tecla se tornam o fluxo de entrada (talvez limitando-nos a base64), e os pixels correspondem ao fluxo de saída (e teremos uma janela realmente pequena que muda muito rapidamente ou, bem, janelas maiores que também devem mudar muito rapidamente .
Por outro lado, o "cliente" VNC não deve exibir nada desse lixo na tela, nem usar entradas de teclado ou mouse, mas apenas usar portas para alimentar esses dados.
O que você acha?
[ A máquina tem um servidor SSH, mas suporta apenas conexões localhost
Tags ssh networking remote-desktop vnc tunnel