Configurando VNC Server no Linux

O VNC (Virtual Network Computing) é um sistema que permite o compartilhamento da área de trabalho local via protocolo RFB (Remote FrameBuffer) para controle remotamente. Como é uma ferramenta homogénea, consegue abranger uma grande quantidades de SO diferentes, como por exemplo, Linux, MacOS, Windows e BSD. Possibilita, por exemplo, acessarmos uma área de trabalho do linux remotamente.

Necessidades

A configuração foi feita em um servidor Linux (CentOS 5.4 x64) com o pacote vnc-server.

Configuração

Passo #1: Instalação do Pacote

Na instalação padrão do CentOS o pacote do VNC já vem instalado, mas se for preciso, a instalação do mesmo é feita com os seguintes passos:

# yum install vnc-server

Passo #2: Configuração

O arquivo de configuração do VNC é o vncservers e fica no diretório /etc/sysconfig.

/etc/sysconfig/vncservers

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see
# .

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

Após a configuração, temos que criar uma senha para acesso, que é feita com o seguinte comando:

# vncpasswd

Com isso, já temos a sessão pronta para acesso, porém, se iniciarmos o serviço ainda não conseguiremos ver a área de trabalha na forma que se conhece, pois ele só iniciará o xterm. Para configurar o desktop da sessão, temos que configurar o arquivo xstartup que fica na pasta do usuário configurado no arquivo vncservers.

~/.vnc/xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Após a configuração da sessão e do desktop, basta iniciar o serviço com o seguinte comando:

# service vncserver start

Para acessar remotamente, basta utilizar um vnc-client compativel com sua plataforma e acessar colocando como destino, o IP remoto e a sessão configurada, por ex: 192.168.0.1:1, onde :1 é a sessão que configuramos no arquivo vncservers, ou a mesma coisa que a porta 5901).