# Como instalar o VNC Server no Ubuntu 22.04? Guia passo a passo

A instalaçã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 simplesmente 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 utilização de um servidor VNC no Ubuntu 22.04 oferece muitas possibilidades que simplificam consideravelmente 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 computador para gerir as suas aplicações e dados. Esta flexibilidade é especialmente prática se trabalhar remotamente, estiver em viagem de negócios ou quiser trabalhar a partir de diferentes locais. Além disso, o VNC Server é muito fácil de configurar, o que permite que mesmo os utilizadores com menos experiência em tecnologia possam estabelecer rapidamente uma ligação remota sem problemas.

Um servidor VNC também promove a colaboração em equipa, uma vez que permite que vários membros **acedam simultaneamente à mesma área de trabalho**. Isto facilita a colaboração eficaz entre equipas, independentemente da sua localização, permitindo-lhes trabalhar em conjunto em projetos e resolver problemas em tempo real. Os administradores e o suporte de TI também podem resolver erros remotamente sem terem de se deslocar, o que poupa tempo e custos de deslocação, além de consultas adicionais. Em termos de segurança, muitos servidores VNC para o Ubuntu 22.04 dispõem de opções robustas. As ligações encriptadas e os diversos métodos de autenticação protegem os seus dados e garantem que apenas as pessoas autorizadas tenham acesso ao sistema.

## Requisitos para um servidor VNC no Ubuntu 22.04

Em primeiro lugar, precisa de uma instalação funcional do Ubuntu 22.04. Muitos servidores VNC são totalmente compatíveis com este sistema operativo e todos os pacotes e dependências necessários estão disponíveis nos repositórios oficiais do Ubuntu. Certifique-se de que o seu sistema está atualizado para evitar possíveis complicações durante a instalação. Em geral, devem ser cumpridos os seguintes requisitos:

- **Ubuntu 22.04:** uma instalação funcional e atualizada do Ubuntu 22.04
- **Ligação de rede:** ligação Ethernet ou WLAN estável para acesso remoto
- **Privilégios de root:** o utilizador do servidor VNC necessita de privilégios de root para a instalação e configuração
- **Pacotes de software:** instalação do software do servidor VNC, como TigerVNC, RealVNC ou x11vnc, a partir dos repositórios do Ubuntu
- **Ambiente de trabalho:** deve ser instalado o ambiente de trabalho necessário (por exemplo, GNOME, XFCE)
- **Configuração do firewall:** abra a porta 5900 ou ajuste as regras do firewall para permitir o tráfego de dados do VNC

## Instalaçã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, disponíveis no **repositório** oficial **do Ubuntu**. Tanto o XFCE como o TigerVNC requerem poucos recursos e apresentam um desempenho 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 instalação, certifique-se de que o seu sistema está atualizado. Para tal, execute os seguintes comandos para instalar todas as atualizações disponíveis:

```bash
sudo apt update 
sudo apt upgrade
```

### Passo 2: instalar o ambiente de trabalho

O VNC Server requer um ambiente de ambiente de trabalho, uma vez que disponibiliza o ambiente de trabalho através da rede. O Ubuntu 22.04 vem com o GNOME por predefinição, mas também é possível instalar outros ambientes de trabalho, como o XFCE, que é particularmente leve.

```bash
sudo apt install xfce4 xfce4-goodies
```

O pacote `xfce4-goodies` contém ferramentas e plugins adicionais úteis para o XFCE.

### Passo 3: criar um novo utilizador

Depois de instalar o ambiente de trabalho, é necessário criar um novo utilizador para executar o VNC Server. Recomenda-se não o fazer como **utilizador root**, para garantir a segurança. Neste caso, iremos criar um novo utilizador chamado «john» e atribuir-lhe as permissões necessárias para executar o VNC Server com esta conta de utilizador.

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

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

O comando `sudo useradd -m -s /bin/bash john` cria um novo utilizador «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 utilizador. É essencial escolher uma palavra-passe segura.

Depois de criar o utilizador, deve adicioná-lo ao grupo sudo para que possa executar comandos administrativos. Isto é feito com o seguinte comando:

```bash
sudo usermod -aG sudo john
```

Este comando permite que o «john» execute comandos com privilégios alargados, concedidos pelo sudo.

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

```bash
su - john 
sudo su
```

Ao digitar `su - john`, o utilizador «john» é autenticado e, ao digitar `sudo su`, obtém direitos de root, desde que a palavra-passe tenha sido introduzida corretamente. Se a autenticação for bem-sucedida, será exibida uma mensagem como `root@hostname`, que confirma que possui privilé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 amplamente utilizada e com bom suporte. Instale o TigerVNC com este comando:

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

Este comando instala o software do VNC Server, bem como alguns pacotes necessários para o seu funcionamento.

### Passo 5: criar a instância do VNC Server

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

```bash
vncserver
```

Ser-lhe-á pedido que introduza e confirme uma palavra-passe para proteger o acesso ao seu servidor VNC. Também pode selecionar uma opção para definir uma «View-only-Password» (palavra-passe apenas para visualização) se pretender que outros utilizadores vejam o ecrã, mas não tenham controlo sobre ele.

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

Observe o exemplo seguinte:

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

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

### Passo 6: configurar a instância do VNC Server

`~/.vnc/xstartup` rie um ficheiro de configuraçã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:

```bash
#!/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 &
```

O ficheiro pode ser executado ao utilizar este comando:

```bash
chmod +x ~/.vnc/xstartup
```

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

Se configurar 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 automaticamente no arranque do sistema.

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

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

Adicione o seguinte conteúdo ao ficheiro:

```bash
[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
```

Substitua `<your-username>` pelo seu nome de utilizador real. Carregue o novo ficheiro de serviço e ative o serviço:

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

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 automaticamente na próxima vez que o sistema for reiniciado. Para tal, utiliza-se o ficheiro de serviço do systemd `vncserver@.service`, no qual `%i` é substituído por `1`. Isto permite configurar o VNC Server para o ecrã `:1` e garantir que este é iniciado sempre que o sistema é reiniciado. O comando cria os atalhos necessários para incluir o serviço no processo de arranque correto.

### Passo 8: configurar o firewall

Se tiver um firewall ativado no seu servidor Ubuntu, terá de abrir a porta VNC para permitir ligações remotas. Por predefiniçã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`:

```bash
sudo ufw allow 5901/tcp
```

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

```bash
sudo ufw status
```

Este é um exemplo de um possível resultado:

```bash
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)
```

### Passo 9: estabelecer uma ligação com o servidor VNC

Para estabelecer uma ligação ao seu servidor VNC, necessita de um cliente VNC no seu computador 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 considerar a utilização de uma ligação encriptada via SSH. Isto protege a comunicação entre o seu cliente VNC e o servidor.

Estabeleça uma ligação ao seu servidor através do SSH e redirecione a porta VNC:

```bash
ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
```

- `ssh`: comando para estabelecer uma ligação segura a um servidor remoto através do protocolo SSH, que transmite os dados de forma encriptada
- `-L 59000:localhost:5901`: ativa um redirecionamento de porta local; o tráfego de dados da porta 59000 do seu computador local é redirecionado 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 compressão do tráfego de dados, o que pode melhorar a velocidade de transmissão e reduzir a utilização da largura de banda, especialmente em ligações lentas
- `N`: impede a execução de comandos no servidor remoto; este modo é útil se pretender apenas configurar o túnel sem iniciar um shell no servidor remoto
- `-l <your-username>`: especifica o nome de utilizador 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 utilizador e `<server-ip>` pelo endereço IP do seu servidor.

Ligue-se à porta local 5901 que redirecionou através do túnel SSH, digitando `localhost:5901` no seu VNC Viewer.

Este método garante que a sua ligação VNC é estabelecida através de uma ligação SSH encriptada 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:**

```bash
vncserver -kill :1
```

**Reiniciar o servidor VNC:**

```bash
vncserver :1
```

**Parar o VNC Server (com o systemd):**

```bash
sudo systemctl stop vncserver@:1
```

**Verifique o estado:**

```bash
sudo systemctl status vncserver@1
```

Um possível resultado poderia ser:

```bash
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 
. . .
```

### 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:** certifique-se de que não existem restrições de rede ou firewalls que bloqueiem o acesso à porta VNC.
- **Ficheiros de configuração:** verifique se não existem erros na configuração do ambiente de trabalho no ficheiro `~/.vnc/xstartup`.

Agora tem a opção de gerir os seus ficheiros e programas, bem como as definiçõ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](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/servidor-vnc-para-windows/)».


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/servidor-vnc-no-ubuntu-2204/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/servidor-vnc-no-ubuntu-2204/) for AI/LLM consumption.