Como configurar o Xfce via servidor remoto Ubuntu e acessá-lo via VNC

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Hoje em dia muitos servidores dispensam ambientes gráficos. No entanto, as vezes precisamos executar alguma aplicação no servidor. Desta forma, é necessário manter tal aplicativo sendo executado por um tempo para fazermos testes para os usuários finais. Neste tutorial saiba como configurar o Xfce no servidor remoto usando o Ubuntu, claro você pode usar outros ambientes como KDE, GNOME, Mate, etc.

Instalando o ambiente de trabalho e o servidor VNC no Ubuntu

Xfce é um desktop leve e ideal para uso em um servidor remoto. Primeiro instale os pacotes xfce e o servidor tightvnc. Como estamos falando de um servidor que esta sendo usado em produção, então é importante atualizar o cache dos pacotes, o sistema e só depois seguir os passos abaixo:

Terminal
sudo apt update
sudo apt install xfce4 xfce4-goodies tightvncserver

Observe que isso só irá instalar os pacotes e não vai iniciar nada. Assim, vale lembrar que o cenário atual é um servidor sem ambiente gráfico. Então vamos lá, começaremos o vncserver com configurações específicas por conta própria, mais adiante neste guia.

Para evitar erros, ou caso aconteça alguma parada no gerenciador de pacotes vamos executar o comando abaixo. Este comando vai garantir que a instalação anterior esteja com as dependências de maneira satisfatórias:

Terminal
sudo dpkg --configure -a

Criando um usuário no VNC em nosso servidor Ubuntu

A próxima coisa a fazer é criar um usuário unix que será usado durante as sessões vnc. O nome de usuário pode ser qualquer coisa. Use o comando adduser, lembre-se que os comandos devem ser sempre executados como root:

Terminal
adduser emanuel

Configurando a “senha vnc” para o usuário

O servidor vnc mantém uma senha separada usada para fazer login no servidor VNC via cliente VNC. Essa senha difere da senha de usuário do Unix. Ela é configurada usando o comando vncpasswd, veja abaixo como fazer, mas primeiro vamos mudar para o usuário emanuel que criamos na etapa anterior:

Terminal
su - emanuel

Agora sim, vamos criar uma senha:

Terminal
vncpasswd

Observe que o arquivo passwd não existia e foi criado conforme as saídas do terminal geradas para você. Se você já tiver executado o comando vncserver anteriormente, então teria criado os arquivos. Quando você executa o vncserver pela primeira vez, ele cria um script de inicialização padrão.

No entanto, não precisamos executar o comando vncserver. Ele deve ser iniciado automaticamente usando scripts de inicialização.

Criando o script xstartup

O próximo arquivo importante é o script xstartup. Ele contém instruções sobre quais aplicativos X devem ser iniciados. Neste caso, o ambiente de trabalho é a aplicação X que temos de iniciar.

Primeiro faça um backup do arquivo se ele já existir:

Terminal
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Agora edite-o usando nano:

Terminal
nano .vnc/xstartup
Nota: Isso está no diretório pessoal do usuário vnc, ou seja /home/emanuel/.vnc/xstartup

Digite as seguintes linhas no script xstartup:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

O comando startxfce4 irá iniciar o desktop xfce. Salve o arquivo e feche-o.

Torne o arquivo xstartup executável. Isso é necessário para que o vncserver possa executar este arquivo, para isso execute os comandos abaixo:

Terminal
chmod +x ~/.vnc/xstartup

Criando arquivo do serviço VNC

O próximo passo é criar um arquivo de serviço VNC para que possamos iniciar o servidor VNC usando o comando service e não precisar executar o comando vncserver todas às vezes que formos usar o serviço.

Certifique-se de digitar o nome de utilizador correto na variável USER. Este é o usuário que o servidor VNC vai usar para iniciar a sessão da área de trabalho.

Terminal
sudo nano /etc/init.d/vncserver

Cole o seguinte script, lembre-se de alterar pelo usuário que você criou!

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="emanuel"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
restart)
$0 stop
$0 start
;;
esac
exit 0]

Salve o arquivo e feche-o. Vamos agora torná-lo executável:

Terminal
chmod +x /etc/init.d/vncserver

Iniciando o serviço

É hora de executar o vncserver e testar. Primeiro recarregue systemctl para que ele possa usar o script de inicialização vncserver:

Terminal
systemctl daemon-reload

Agora inicie o vncserver. Ele inicia o servidor na porta 5901:

Terminal
service vncserver start

Verifique se tudo esta funcionando:

Terminal
service vncserver status
cat ~/.vnc/*.pid
ps -ef | grep tightvnc

Verifique as portas abertas do servidor VNC. Você precisa do número de porta correto ao usar o cliente VNC:

Terminal
netstat -nlp | grep vnc

O servidor VNC também pode ser iniciado chamando o script diretamente:

Terminal
/etc/init.d/vncserver start

Para parar vncserver:

Terminal
service vncserver stop

Instalando o cliente vncviewer na área de trabalho

Agora que temos o servidor vnc funcionando com o ambiente de desktop gui, é hora de instalar um cliente vnc e acessar o desktop remoto.

Instale o xtightvncviewer no Ubuntu, para isso execute os comandos abaixo:

Terminal
sudo apt-get install xtightvncviewer

Agora, conecte-se ao servidor VNC remoto usando o comando vncviewer:

Terminal
vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901

Usamos codificações de baixa qualidade e compressão para comprimir os dados de imagem sendo transferidos afim de torná-los mais rápidos. Usar outros visualizadores do VNC como o KRDC pode ser mais lento, mas use o que gostar mais.

Referências: Tightvnc e Digital Ocean

Compartilhe este artigo