A ins­ta­la­ção de um servidor VNC no Ubuntu 22.04 permite-lhe aceder ao seu ambiente de trabalho Linux a partir de qualquer lugar. Quer trabalhe a partir de casa, esteja em viagem de negócios ou sim­ples­mente queira trabalhar noutra divisão, com um servidor VNC terá sempre acesso ao seu ambiente de trabalho.

Quais são as vantagens de um servidor VNC no Ubuntu 22.04?

A uti­li­za­ção de um servidor VNC no Ubuntu 22.04 oferece muitas pos­si­bi­li­da­des que sim­pli­fi­cam con­si­de­ra­vel­mente o trabalho diário, uma vez que permite aceder ao seu ambiente de trabalho Ubuntu a partir de qualquer parte do mundo. Isto significa que não precisa de estar no seu com­pu­ta­dor para gerir as suas apli­ca­ções e dados. Esta fle­xi­bi­li­dade é es­pe­ci­al­mente prática se trabalhar re­mo­ta­mente, estiver em viagem de negócios ou quiser trabalhar a partir de di­fe­ren­tes locais. Além disso, o VNC Server é muito fácil de con­fi­gu­rar, o que permite que mesmo os uti­li­za­do­res com menos ex­pe­ri­ên­cia em tec­no­lo­gia possam es­ta­be­le­cer ra­pi­da­mente uma ligação remota sem problemas.

Um servidor VNC também promove a co­la­bo­ra­ção em equipa, uma vez que permite que vários membros acedam si­mul­ta­ne­a­mente à mesma área de trabalho. Isto facilita a co­la­bo­ra­ção eficaz entre equipas, in­de­pen­den­te­mente da sua lo­ca­li­za­ção, per­mi­tindo-lhes trabalhar em conjunto em projetos e resolver problemas em tempo real. Os ad­mi­nis­tra­do­res e o suporte de TI também podem resolver erros re­mo­ta­mente sem terem de se deslocar, o que poupa tempo e custos de des­lo­ca­ção, além de consultas adi­ci­o­nais. Em termos de segurança, muitos ser­vi­do­res VNC para o Ubuntu 22.04 dispõem de opções robustas. As ligações en­crip­ta­das e os diversos métodos de au­ten­ti­ca­ção protegem os seus dados e garantem que apenas as pessoas au­to­ri­za­das tenham acesso ao sistema.

Re­qui­si­tos para um servidor VNC no Ubuntu 22.04

Em primeiro lugar, precisa de uma ins­ta­la­ção funcional do Ubuntu 22.04. Muitos ser­vi­do­res VNC são to­tal­mente com­pa­tí­veis com este sistema operativo e todos os pacotes e de­pen­dên­cias ne­ces­sá­rios estão dis­po­ní­veis nos re­po­si­tó­rios oficiais do Ubuntu. Cer­ti­fi­que-se de que o seu sistema está atu­a­li­zado para evitar possíveis com­pli­ca­ções durante a ins­ta­la­ção. Em geral, devem ser cumpridos os seguintes re­qui­si­tos:

  • Ubuntu 22.04: uma ins­ta­la­ção funcional e atu­a­li­zada do Ubuntu 22.04
  • Ligação de rede: ligação Ethernet ou WLAN estável para acesso remoto
  • Pri­vi­lé­gios de root: o uti­li­za­dor do servidor VNC necessita de pri­vi­lé­gios de root para a ins­ta­la­ção e con­fi­gu­ra­ção
  • Pacotes de software: ins­ta­la­ção do software do servidor VNC, como TigerVNC, RealVNC ou x11vnc, a partir dos re­po­si­tó­rios do Ubuntu
  • Ambiente de trabalho: deve ser instalado o ambiente de trabalho ne­ces­sá­rio (por exemplo, GNOME, XFCE)
  • Con­fi­gu­ra­ção do firewall: abra a porta 5900 ou ajuste as regras do firewall para permitir o tráfego de dados do VNC

Ins­ta­la­ção do servidor VNC no Ubuntu 22.04: guia passo a passo

Existem muitas opções na hora de escolher um servidor VNC e um ambiente de trabalho. Neste tutorial, irá aprender a instalar os pacotes mais recentes para o ambiente de trabalho XFCE e o pacote TigerVNC, dis­po­ní­veis no re­po­si­tó­rio oficial do Ubuntu. Tanto o XFCE como o TigerVNC requerem poucos recursos e apre­sen­tam um de­sem­pe­nho rápido. Como resultado, a ligação VNC mantém-se fluida e estável, mesmo com ligações à Internet mais lentas.

Passo 1: atualizar pacotes

Antes de iniciar a ins­ta­la­ção, cer­ti­fi­que-se de que o seu sistema está atu­a­li­zado. Para tal, execute os seguintes comandos para instalar todas as atu­a­li­za­ções dis­po­ní­veis:

sudo apt update 
sudo apt upgrade
bash

Passo 2: instalar o ambiente de trabalho

O VNC Server requer um ambiente de ambiente de trabalho, uma vez que dis­po­ni­bi­liza o ambiente de trabalho através da rede. O Ubuntu 22.04 vem com o GNOME por pre­de­fi­ni­ção, mas também é possível instalar outros ambientes de trabalho, como o XFCE, que é par­ti­cu­lar­mente leve.

sudo apt install xfce4 xfce4-goodies
bash

O pacote xfce4-goodies contém fer­ra­men­tas e plugins adi­ci­o­nais úteis para o XFCE.

Passo 3: criar um novo uti­li­za­dor

Depois de instalar o ambiente de trabalho, é ne­ces­sá­rio criar um novo uti­li­za­dor para executar o VNC Server. Recomenda-se não o fazer como uti­li­za­dor root, para garantir a segurança. Neste caso, iremos criar um novo uti­li­za­dor chamado «john» e atribuir-lhe as per­mis­sões ne­ces­sá­rias para executar o VNC Server com esta conta de uti­li­za­dor.

Primeiro, tem de criar o uti­li­za­dor «john» e atribuir-lhe uma palavra-passe. Pode fazê-lo com os seguintes comandos:

sudo useradd -m -s /bin/bash john 
sudo passwd john
bash

O comando sudo useradd -m -s /bin/bash john cria um novo uti­li­za­dor «john» e define um diretório inicial, pelo que o shell padrão é definido no /bin/bash. Em seguida, utiliza o sudo passwd john para definir uma palavra-passe para este uti­li­za­dor. É essencial escolher uma palavra-passe segura.

Depois de criar o uti­li­za­dor, deve adicioná-lo ao grupo sudo para que possa executar comandos ad­mi­nis­tra­ti­vos. Isto é feito com o seguinte comando:

sudo usermod -aG sudo john
bash

Este comando permite que o «john» execute comandos com pri­vi­lé­gios alargados, con­ce­di­dos pelo sudo.

Para verificar se o «john» tem as au­to­ri­za­ções corretas, inicie sessão como «john» e verifique os direitos de root. Para tal, execute estes comandos:

su - john 
sudo su
bash

Ao digitar su - john, o uti­li­za­dor «john» é au­ten­ti­cado e, ao digitar sudo su, obtém direitos de root, desde que a palavra-passe tenha sido in­tro­du­zida cor­re­ta­mente. Se a au­ten­ti­ca­ção for bem-sucedida, será exibida uma mensagem como root@hostname, que confirma que possui pri­vi­lé­gios de root.

Passo 4: instalar o software do servidor VNC

Para este tutorial, vamos utilizar o TigerVNC, uma vez que se trata de uma opção de servidor VNC am­pla­mente utilizada e com bom suporte. Instale o TigerVNC com este comando:

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools
bash

Este comando instala o software do VNC Server, bem como alguns pacotes ne­ces­sá­rios para o seu fun­ci­o­na­mento.

Passo 5: criar a instância do VNC Server

Antes de iniciar o VNC Server, é ne­ces­sá­rio definir uma palavra-passe para aceder ao mesmo. Introduza o seguinte comando no terminal:

vncserver
bash

Ser-lhe-á pedido que introduza e confirme uma palavra-passe para proteger o acesso ao seu servidor VNC. Também pode se­le­ci­o­nar uma opção para definir uma «View-only-Password» (palavra-passe apenas para vi­su­a­li­za­ção) se pretender que outros uti­li­za­do­res vejam o ecrã, mas não tenham controlo sobre ele.

Quando o servidor é iniciado pela primeira vez, é criada uma nova tela, nor­mal­mente :1. A saída indica o número exato da tela que pode utilizar.

Observe o exemplo seguinte:

New 'X' desktop is your-machine-name:1
bash

Anote o número do ecrã (neste caso, :1), pois irá precisar dele para se ligar ao VNC Client.

Passo 6: con­fi­gu­rar a instância do VNC Server

~/.vnc/xstartup rie um ficheiro de con­fi­gu­ra­ção para o VNC Server para garantir que o XFCE é carregado quando o servidor é iniciado. O ficheiro pode ter, por exemplo, o seguinte conteúdo:

#!/bin/sh 
# Start up the standard system desktop 
unset SESSION_MANAGER 
unset DBUS_SESSION_BUS_ADDRESS 
/usr/bin/startxfce4 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup 
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
x-window-manager &
bash

O ficheiro pode ser executado ao utilizar este comando:

chmod +x ~/.vnc/xstartup
bash

Passo 7: executar o VNC Server como serviço do sistema

Se con­fi­gu­rar o VNC Server como um serviço do Systemd, poderá iniciá-lo, pará-lo e reiniciá-lo como qualquer outro serviço. Também pode utilizar comandos do Systemd para iniciar o VNC Server au­to­ma­ti­ca­mente no arranque do sistema.

Primeiro, crie um novo ficheiro com o editor de texto que preferir:

nano /etc/systemd/system/vncserver@.service
bash

Adicione o seguinte conteúdo ao ficheiro:

[Unit] 
Description=Start TigerVNC server at startup 
After=syslog.target network.target 
 
[Service] 
Type=forking 
User=<your-username> 
PAMName=login 
PIDFile=/home/<your-username>/.vnc/%H:%i.pid 
ExecStart=/usr/bin/vncserver %i 
ExecStop=/usr/bin/vncserver -kill %i 
 
[Install] 
WantedBy=multi-user.target
bash

Substitua <your-username> pelo seu nome de uti­li­za­dor real. Carregue o novo ficheiro de serviço e ative o serviço:

sudo systemctl daemon-reload 
sudo systemctl enable vncserver@1.service 
sudo systemctl start vncserver@:1
bash

O comando sudo systemctl enable vncserver@1.service ativa o serviço do VNC Server para o ecrã :1, de modo a que este seja iniciado au­to­ma­ti­ca­mente na próxima vez que o sistema for rei­ni­ci­ado. Para tal, utiliza-se o ficheiro de serviço do systemd vncserver@.service, no qual %i é subs­ti­tuído por 1. Isto permite con­fi­gu­rar o VNC Server para o ecrã :1 e garantir que este é iniciado sempre que o sistema é rei­ni­ci­ado. O comando cria os atalhos ne­ces­sá­rios para incluir o serviço no processo de arranque correto.

Passo 8: con­fi­gu­rar o firewall

Se tiver um firewall ativado no seu servidor Ubuntu, terá de abrir a porta VNC para permitir ligações remotas. Por pre­de­fi­ni­ção, o servidor VNC utiliza a porta 5900 seguida do número do ecrã. Assim, para o ecrã :1, a porta será a 5901.

Abra a porta com o número ufw:

sudo ufw allow 5901/tcp
bash

Verifique as regras do firewall para confirmar se a porta está aberta:

sudo ufw status
bash

Este é um exemplo de um possível resultado:

Status: active 
 
To                             Action        From 
--                             ------        ---- 
22/tcp                         ALLOW       Anywhere 
80/tcp                         ALLOW       Anywhere 
443/tcp                        ALLOW       Anywhere 
5901/tcp                       ALLOW       Anywhere 
22/tcp (v6)                    ALLOW       Anywhere (v6) 
80/tcp (v6)                    ALLOW       Anywhere (v6) 
443/tcp (v6)                   ALLOW       Anywhere (v6) 
5901/tcp (v6)                  ALLOW       Anywhere (v6)
bash

Passo 9: es­ta­be­le­cer uma ligação com o servidor VNC

Para es­ta­be­le­cer uma ligação ao seu servidor VNC, necessita de um cliente VNC no seu com­pu­ta­dor local. Os clientes VNC mais populares são o RealVNC, o TigerVNC Viewer e o TightVNC Viewer. Para reforçar a segurança da sua ligação VNC, deve con­si­de­rar a uti­li­za­ção de uma ligação en­crip­tada via SSH. Isto protege a co­mu­ni­ca­ção entre o seu cliente VNC e o servidor.

Es­ta­be­leça uma ligação ao seu servidor através do SSH e re­di­re­ci­one a porta VNC:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: comando para es­ta­be­le­cer uma ligação segura a um servidor remoto através do protocolo SSH, que transmite os dados de forma en­crip­tada
  • -L 59000:localhost:5901: ativa um re­di­re­ci­o­na­mento de porta local; o tráfego de dados da porta 59000 do seu com­pu­ta­dor local é re­di­re­ci­o­nado através do túnel SSH para a porta 5901 do servidor remoto. localhost refere-se ao servidor remoto no qual o servidor VNC está a ser executado
  • C: ativa a com­pres­são do tráfego de dados, o que pode melhorar a ve­lo­ci­dade de trans­mis­são e reduzir a uti­li­za­ção da largura de banda, es­pe­ci­al­mente em ligações lentas
  • N: impede a execução de comandos no servidor remoto; este modo é útil se pretender apenas con­fi­gu­rar o túnel sem iniciar um shell no servidor remoto
  • -l <your-username>: es­pe­ci­fica o nome de uti­li­za­dor com o qual se inicia sessão no Servidor Remoto
  • <server-ip>: o endereço IP ou nome de host do Servidor Remoto ao qual pretende ligar-se via SSH
Nota

Substitua <your-username> pelo seu nome de uti­li­za­dor e <server-ip> pelo endereço IP do seu servidor.

Ligue-se à porta local 5901 que re­di­re­ci­o­nou através do túnel SSH, digitando localhost:5901 no seu VNC Viewer.

Este método garante que a sua ligação VNC é es­ta­be­le­cida através de uma ligação SSH en­crip­tada e, por isso, é mais segura.

Passo 10: gerir o servidor VNC

Para parar ou reiniciar o servidor VNC, utilize os seguintes comandos:

Parar o VNC Server:

vncserver -kill :1
bash

Reiniciar o servidor VNC:

vncserver :1
bash

Parar o VNC Server (com o systemd):

sudo systemctl stop vncserver@:1
bash

Verifique o estado:

sudo systemctl status vncserver@1
bash

Um possível resultado poderia ser:

vncserver@1.service - Start TigerVNC server at startup 
      Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) 
      Active: active (running) since Mon 2024-07-29 16:57:26 UTC; 20s ago 
     Process: 97088 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) 
     Process: 97092 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS) 
    Main PID: 97103 (Xtigervnc) 
        Tasks: 77 (limit: 4665) 
      Memory: 146.7M 
          CPU: 4.459s 
      CGroup: /system.slice/system-vncserver.slice/vncserver@1.service 
. . .
bash

Passo 11: resolver problemas

Se tiveres problemas, verifica os seguintes pontos:

  • Ficheiros de registo: os ficheiros de registo do VNC Server encontram-se na pasta ~/.vnc. Verifique estes ficheiros à procura de mensagens de erro que possam indicar possíveis problemas.
  • Ligações de rede: cer­ti­fi­que-se de que não existem res­tri­ções de rede ou firewalls que bloqueiem o acesso à porta VNC.
  • Ficheiros de con­fi­gu­ra­ção: verifique se não existem erros na con­fi­gu­ra­ção do ambiente de trabalho no ficheiro ~/.vnc/xstartup.

Agora tem a opção de gerir os seus ficheiros e programas, bem como as de­fi­ni­ções do sistema, de forma prática através de um servidor VNC. Se preferir utilizar o Windows, consulte o nosso tutorial«Servidor VNC no Windows».

Ir para o menu principal