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:
sudo apt updatesudo apt install xfce4 xfce4-goodies tightvncserverObserve 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:
sudo dpkg --configure -aCriando 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:
adduser emanuelConfigurando 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:
su - emanuelAgora sim, vamos criar uma senha:
vncpasswdObserve 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:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bakAgora edite-o usando nano:
nano .vnc/xstartupDigite 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:
chmod +x ~/.vnc/xstartupCriando 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.
sudo nano /etc/init.d/vncserverCole 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:
chmod +x /etc/init.d/vncserverIniciando o serviço
É hora de executar o vncserver e testar. Primeiro recarregue systemctl para que ele possa usar o script de inicialização vncserver:
systemctl daemon-reloadAgora inicie o vncserver. Ele inicia o servidor na porta 5901:
service vncserver startVerifique se tudo esta funcionando:
service vncserver statuscat ~/.vnc/*.pidps -ef | grep tightvncVerifique as portas abertas do servidor VNC. Você precisa do número de porta correto ao usar o cliente VNC:
netstat -nlp | grep vncO servidor VNC também pode ser iniciado chamando o script diretamente:
/etc/init.d/vncserver startPara parar vncserver:
service vncserver stopInstalando 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:
sudo apt-get install xtightvncviewerAgora, conecte-se ao servidor VNC remoto usando o comando vncviewer:
vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901Usamos 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

