Tutorial

Como Instalar e Configurar o VNC no Ubuntu 20.04 [Quickstart]

UbuntuMiscellaneousQuickstartUbuntu 20.04

Introdução

O Virtual Network Computing, ou VNC, é um sistema de conexão que permite que você use seu teclado e mouse para interagir com um ambiente gráfico da área de trabalho em um servidor remoto. Isso facilita o gerenciamento de arquivos, software e configurações em um servidor remoto para os usuários que ainda não se sentem confortáveis com a linha de comando.

Neste guia de início rápido, você configurará um servidor VNC com o TightVNC em um servidor Ubuntu 20.04 e se conectará a ele com segurança através de um túnel SSH. Em seguida, você usará um programa cliente VNC em sua máquina local para interagir com o servidor através de um ambiente gráfico de desktop.

Pré-requisitos

Para completar este tutorial, será necessário:

Passo 1 — Instalando o Ambiente da Área de Trabalho e o Servidor VNC

Após se conectar ao servidor com o SSH, atualize a lista de pacotes:

  • sudo apt update

Em seguida, instale o Xfce juntamente com o pacote xfce4-goodies, que contém algumas melhorias para o ambiente desktop:

  • sudo apt install xfce4 xfce4-goodies

Uma vez que a instalação tiver terminada, instale o servidor do TightVNC:

  • sudo apt install tightvncserver

Em seguida, execute o comando vncpasswd para definir uma senha de acesso VNC e criar os arquivos de configuração iniciais:

  • vncpasswd

Será solicitado que você digite e verifique uma senha para acessar sua máquina remotamente:

Output
You will require a password to access your desktops. Password: Verify:

A senha deve ter entre seis e oito caracteres de comprimento; senhas com mais de 8 caracteres serão truncadas automaticamente. Assim que verificar a senha, você terá a opção de criar uma senha apenas para visualização, mas isso não é necessário.

Se quiser alterar sua senha ou adicionar uma senha apenas para visualização, execute novamente o comando vncpasswd.

Passo 2 — Configurando o Servidor VNC

Os comandos que o servidor VNC executa na inicialização estão localizados em um arquivo de configuração chamado xstartup na pasta .vnc sob o seu diretório home. Neste passo, vamos criar um script xstartup personalizado que dirá ao servidor VNC para se conectar ao desktop Xfce.

Crie um novo arquivo xstartup e abra-o em um editor de texto, como o nano:

  • nano ~/.vnc/xstartup

Adicione as seguintes linhas ao novo arquivo:

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

Após o shebang, o primeiro comando no arquivo, xrdb $HOME/. Xresources, diz ao framework GUI do VNC para ler o usuário do servidor. Arquivo Xresources. O segundo comando diz ao servidor para iniciar o Xfce.

Salve e feche o arquivo após adicionar essas linhas. Se usou o nano, faça isso pressionando as teclas CTRL+X, Y e depois ENTER.

Em seguida, torne o arquivo executável:

  • chmod +x ~/.vnc/xstartup

E inicie o servidor VNC com o comando vncserver:

  • vncserver -localhost

Este comando inclui a opção -localhost, que vincula o servidor VNC à interface loopback do seu servidor. Isso fará com que o VNC permita apenas conexões que se originam do servidor onde ele está instalado.

Você verá um resultado parecido com este:

Output
New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

Aqui, você pode ver que o comando lança uma instância de servidor padrão na porta 5901. Essa porta é chamada de porta de exibição e é referida pelo VNC como :1:

Passo 3 — Conectando-se ao Desktop do VNC com Segurança

Para se conectar com segurança ao seu servidor, você estabelecerá um túnel SSH e, em seguida, dirá ao seu cliente para se conectar usando esse túnel, em vez de fazer uma conexão direta.

Crie uma conexão SSH no seu computador local; ela encaminhará a conexão localhost para o VNC. É possível fazer isto através do terminal no Linux ou no macOS com o seguinte comando ssh:

  • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

A porta local pode ser qualquer porta que ainda não está bloqueada por outro programa ou processo, apesar de usarmos a 59000 neste exemplo. Além disso, certifique-se de alterar sammy para o nome de usuário do Ubuntu e your_server_ip para refletir o endereço IP do seu servidor.

Se estiver usando o PuTTY para se conectar ao seu servidor, você pode criar um túnel SSH, clicando com o botão direito do mouse na barra superior da janela do terminal e, em seguida, clicando na opção Change Settings…:

Right-click on top bar to reveal Change Settings option

Encontre a ramificação Connection no menu em árvore, no lado esquerdo da janela de reconfiguração do PuTTY. Expanda a ramificação SSH e clique em Tunnels. Na tela Options controlling SSH port forwarding, digite 59000 como Source Port e localhost:5901 como Destination desta forma:

Example PuTTY SSH tunnel configuration

Em seguida, clique no botão Add e, em seguida, no botão Apply para implementar o túnel.

Assim que o túnel estiver em execução, utilize um cliente VNC para se conectar a localhost:59000. Será solicitado que autentique usando a senha definida no Passo 1.

Uma vez que estiver conectado, verá o área de trabalho padrão Xfce. Ela deve se parecer com isto:

VNC connection to Ubuntu 20.04 server with the Xfce desktop environment

É possível acessar arquivos em seu diretório inicial com o gerenciador de arquivos ou da linha de comando, como visto aqui:

File Manager via VNC connection to Ubuntu 20.04

Pressione CTRL+C no seu terminal local para parar o túnel SSH e voltar ao seu prompt. Isto também irá desconectar sua sessão VNC.

Passo 4 — Executando o VNC como um Serviço de Sistema

Ao configurar o servidor VNC para ser executado como um serviço systemd, você pode usar os comandos de gerenciamento do systemd.no servidor como start, stop e restart, bem como ativá-lo para iniciar a execução sempre que o servidor for inicializado.

Primeiro, crie um novo arquivo de unidade systemd chamado /etc/systemd/vncserver@.service:

  • sudo nano /etc/systemd/system/vncserver@.service

O símbolo @ no final do nome nos permitirá passar em um argumento que poderemos usar na configuração do serviço. Vamos usar isto para especificar a porta de exibição do VNC que queremos usar quando gerenciarmos o serviço.

Adicione as seguintes linhas ao arquivo, certificando-se de alterar o valor de User, Group, WorkingDirectory, e o nome de usuário no valor do PIDFILE para que corresponda ao seu nome de usuário:

/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy

PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Salve e feche o arquivo.

A seguir, faça com que o sistema saiba do novo arquivo de unidade.

  • sudo systemctl daemon-reload

Habilite o arquivo de unidade.

  • sudo systemctl enable vncserver@1.service

O 1 seguindo o símbolo @ significa em qual número de exibição o serviço deve aparecer, neste caso, o padrão :1, como foi discutido no Passo 2.

Interrompa a instância atual do servidor VNC se ela ainda estiver em execução.

  • vncserver -kill :1

Então, inicie-a como você iniciaria qualquer outro serviço systemd.

  • sudo systemctl start vncserver@1

É possível verificar se ele iniciou com este comando:

  • sudo systemctl status vncserver@1

Consulte nosso tutorial How To Use Systemctl to Manage Systemd Services and Units para obter mais informações sobre o systemctl.

Para reconectar, inicie seu túnel SSH novamente.

  • ssh -L 59000:127.0.0.1:5901 -C -N -l sammy your_server_ip

Então, faça uma nova conexão usando seu software cliente VNC com localhost:59000 para se conectar ao seu servidor.

Conclusão

Você tem agora um servidor VNC seguro funcionando em seu servidor Ubuntu 20.04. Agora, você será capaz de gerenciar seus arquivos, softwares e configurações com uma interface gráfica conhecida e fácil de usar, e será capaz de executar remotamente softwares gráficos como navegadores web.

0 Comments

Creative Commons License