Tutorial VNC + SSH Tunnel

Antes de ler esta página, veja o meu tutorial sobre SSH Tunnel e tenha certeza que entendeu tudo. Neste tutorial vamos estender o que fizemos antes para permitir acessar uma máquina através do VNC usando um túnel ssh. O esquema do firewall é o mesmo do tutorial anterior:

esquema do firewall
legenda

Mas agora estamos interessados em usar o VNCviewer na máquina casa para abrir o VNCserver rodando na maquina1. Para fazer isso, primeiro precisamos abrir o túnel na gate pedindo para redirecionar tanto a porta 22 quanto a porta do VNCserver. Exemplo prático:

user@casa$ ssh -N -C -f -q -L 5901:maquina1:5901 -L 22000:maquina1:22 gate

A porta 5901 é a porta que será disponibilizada pelo VNCserver e ficará claro mais adiante. Agora precisamos rodar o VNCserver na maquina1. Você poderia fazer dois SSH (casa -> gate -> maquina1) ou então usar o túnel que já criamos:

user@casa$ ssh -C -f -t -p 22000 localhost "vncserver -kill :1; vncserver :1 -geometry 1024x768 -depth 16 "

Note que estamos conectando na porta 22000 do localhost que é redirecionada para a porta 22 (ssh) da maquina1. Os dois comandos entre aspas serão executado na maquina1 e logo depois o ssh vai para background (opção -f). O primeiro comando mata algum vncserver que tenhamos esquecido associado ao display :1. O segundo cria um novo vncserver, de tamanho 1024 por 768 pixels, 16bits de profundidade de cor e associa ele ao display :1.

Agora voltamos a questão das portas. Por default, o VNC usa as portas 5900, 5901, etc. Estas correspondem aos displays :0, :1, :2, etc. Ou seja, você poderia mudar o 5901 do comando anterior, desde que inicie o X11 do VNCserver na porta correta.

Agora as conexões estão estabelecidas e tudo que precisamos fazer é conectar o VNCviewer rodando na máquina casa ao VNCserver que criamos na máquina maquina1. Fácil:

user@casa$ vncviewer localhost:5901

Note que mais uma vez usamos o localhost. Neste caso, pedimos para o vncviewer nos mostrar o X11 da porta 5901 do localhost... acontece que esta porta é forwarded para a 5901 de maquina1 onde temos nosso VNCserver rodando! Disponibilizo aqui um script para fazer tudo isso automaticamente: download script!

OBS

  1. Só precisamos abrir o túnel na porta 22 porque temos que rodar o vncserver. Caso o vncserver já esteja rodando, você não precisa desta parte
  2. Você tem que fazer login 3 vezes: uma para conectar na gate, uma para conectar na maquina1 e uma para conectar no vncserver. Você pode se livrar da segunda, se o server já tiver rodando, e da terceira, se configurar o server para não pedir senha (inseguro)
  3. Caso a conexão esteja lenta, procure na internet opções para deixar o VNC mais rápido, como mudar a profundidade de cores, buffering, etc...
Page last modified on October 06, 2010, at 12:23 AM
Powered by PmWiki