# VNC Server: Como instalar servidor VNC no Ubuntu 22.04

A instalação de um VNC Server no Ubuntu 22.04 lhe permitirá acessar o seu computador **de qualquer lugar**. Seja trabalhando de casa, viajando a negócios ou estando simplesmente em um cômodo diferente, ao configurar um servidor VNC, você tem sempre acesso ao seu ambiente de trabalho.

## Por que instalar um VNC Server no Ubuntu 22.04

O uso de um VNC Server no Ubuntu 22.04 oferece diversas vantagens que simplificam consideravelmente o dia a dia de trabalho. Com um VNC Server, você pode **acessar seu desktop Ubuntu de qualquer lugar do mundo**, o que significa que não é necessário estar fisicamente no local de trabalho para gerenciar seus aplicativos e dados. Essa flexibilidade é extremamente útil para quem trabalha remotamente, viaja a negócios ou deseja trabalhar de diferentes locais. Além disso, a configuração do servidor VNC é simples o suficiente para que até usuários com pouca experiência técnica consigam estabelecer uma conexão remota funcional rapidamente.

Um VNC Server no Ubuntu também facilita a colaboração em equipe. Ele permite que vários membros **acessem o mesmo desktop simultaneamente**, promovendo uma colaboração eficaz, independentemente da localização. Isso possibilita o trabalho conjunto em projetos e a resolução de problemas em tempo real. Além disso, administradores de TI e equipes de suporte podem corrigir erros remotamente, economizando tempo e custos com deslocamentos e agendamentos adicionais. Em termos de segurança, muitos servidores VNC para o Ubuntu 22.04 oferecem robustas opções de proteção. Conexões criptografadas e diversos métodos de autenticação garantem que apenas pessoas autorizadas tenham acesso ao seu sistema.

## VNC Server no Ubuntu 22.04: Pré-requisitos

Antes de começar o processo de instalação do seu VNC Server, você precisa se certificar de ter uma instalação funcional do Ubuntu 22.04. Diferentes VNC Servers são compatíveis com essa versão do sistema operacional, e todos os pacotes e dependências necessários são disponibilizados nos repositórios oficiais do Ubuntu. Verifique se o sistema está atualizado para evitar complicações durante a instalação. Aqui estão os requisitos a serem cumpridos:

- **Ubuntu 22.04:** Instalação funcional e atualizada do Ubuntu 22.04.
- **Conexão de rede:** Uma conexão estável por Ethernet ou Wi-Fi para acesso remoto.
- **Permissões de administrador (root):** O usuário do VNC Server precisa de permissões de root para instalar e configurar.
- **Pacotes de software:** Instalação do software VNC Server, como TigerVNC, RealVNC ou x11vnc, a partir dos repositórios do Ubuntu.
- **Ambiente de desktop:** Um ambiente de desktop (como GNOME, XFCE) deve estar instalado.
- **Configurações de firewall:** Abrir a porta 5900 ou ajustar as regras do firewall para permitir o tráfego VNC.

## Passo a passo: Instalar VNC Server no Ubuntu 22.04

Há diversas opções de servidores VNC e ambiente de desktop. Neste tutorial, instalaremos os pacotes mais recentes para o ambiente de desktop XFCE e o pacote TigerVNC, ambos disponíveis no **repositório oficial do Ubuntu**. O XFCE e o TigerVNC são leves e têm um bom desempenho, proporcionando uma conexão VNC estável, mesmo com uma internet mais lenta.

### Passo 1: Atualizar pacotes do Ubuntu

Antes de iniciar a instalação, certifique-se de que o sistema está atualizado. 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 desktop

O VNC Server precisa de um ambiente de desktop, pois ele fornece o acesso ao desktop pela rede. O Ubuntu 22.04 vem com o GNOME por padrão, mas você também pode instalar outros ambientes de desktop, como o XFCE, que é especialmente leve.

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

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

### Passo 3: Criar novo usuário

Após instalar o ambiente de desktop, você precisará criar um novo usuário para operar o VNC Server. Não é recomendado usar o **usuário root** para isso, a fim de garantir a segurança. Neste caso, criaremos um novo usuário chamado “john” e atribuiremos as permissões necessárias para que o VNC Server funcione com essa conta de usuário.

Primeiro, crie o usuário “john” e defina uma senha 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 usuário “john” e configura um diretório home, definindo o shell padrão como `/bin/bash`. Em seguida, use `sudo passwd john` para definir uma senha para esse usuário. É essencial escolher uma senha segura.

Depois de criar o usuário, você precisará adicioná-lo ao grupo sudo para que ele possa executar comandos administrativos. Isso pode ser feito com o seguinte comando:

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

Esse comando permite que “john” execute comandos com privilégios elevados, usando `sudo`.

Para verificar se “john” tem as permissões corretas, faça login como “john” e teste os direitos de root. Execute os seguintes comandos:

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

Com `su - john`, você alterna para o usuário “john” e, com `sudo su`, você obtém direitos de root, desde que a senha seja inserida corretamente. Se a autenticação for bem-sucedida, você verá um prompt como `root@hostname`, o que confirma que você possui direitos de root.

### Passo 4: Instalar o software de VNC Server

Neste tutorial, utilizaremos o **TigerVNC**, pois é uma opção de VNC Server amplamente usada e bem suportada. Instale o TigerVNC com o seguinte comando:

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

Este comando instala o software do VNC Server, além de alguns pacotes comuns necessários para o seu funcionamento.

### Passo 5: Criar instância do VNC Server

Antes de iniciar o VNC Server, você precisará definir uma senha para acessar o servidor. Insira o seguinte comando no terminal:

```bash
vncserver
```

Você será solicitado a definir e confirmar uma senha, que protegerá o acesso ao servidor VNC. Opcionalmente, é possível definir uma senha de visualização apenas, permitindo que outros usuários acompanhem a tela sem interagir com ela.

Ao iniciar o servidor pela primeira vez, será criado um novo display virtual (geralmente `:1`). O terminal indicará esse número, que será necessário para a conexão via VNC Client.

Aqui está um exemplo:

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

Anote o número do display (neste caso, `:1`), pois será necessário para conectar-se ao VNC Client.

### Passo 6: Configurar instância do VNC Server

Crie um arquivo de inicialização do VNC Server para garantir que o ambiente XFCE seja carregado automaticamente. O arquivo `~/.vnc/xstartup` 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 arquivo se tornará executável quando você usar o seguinte comando:

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

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

Ao configurar o VNC Server como um serviço do **Systemd**, você poderá iniciá-lo, pará-lo e reiniciá-lo como qualquer outro serviço. Além disso, pode configurar os comandos do **Systemd** para que o VNC Server inicie automaticamente quando o sistema for inicializado.

Primeiro, crie um novo arquivo usando um editor de texto de sua preferência:

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

Em seguida, insira o seguinte conteúdo no arquivo:

```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 usuário real. Carregue o novo arquivo de serviço e ative o serviço com os seguintes comandos:

```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 display `:1`, de modo que ele inicie automaticamente na próxima inicialização do sistema. Para isso, é utilizada o arquivo de serviço do Systemd `vncserver@.service`, na qual `%i` é substituído por `1`. Isso permite configurar o VNC Server para o display `:1` e garantir que ele seja iniciado em cada inicialização do sistema. O comando cria os links necessários para integrar o serviço no processo de inicialização correto.

### Passo 8: Configurar firewall

Se você ativou um firewall no seu servidor Ubuntu, precisará liberar a porta do vnc para permitir conexões remotas. Por padrão, o VNC Server usa a porta 5900, seguida pelo número do display. Para o display `:1`, a porta será 5901.

Abra a porta com `ufw`:

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

Verifique as regras do firewall para garantir que a porta esteja aberta:

```bash
sudo ufw status
```

Aqui está um exemplo de uma saída possível:

```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 conexão com VNC Server

Para se conectar ao seu VNC Server, você precisará de um cliente VNC no seu computador local. Clientes VNC populares incluem **RealVNC, TigerVNC Viewer e TightVNC Viewer**. Para melhorar a segurança da sua conexão VNC, considere usar uma conexão criptografada via SSH. Isso protege a comunicação entre o seu cliente VNC e o servidor.

Conecte-se ao seu servidor via SSH e faça o redirecionamento da porta VNC:

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

- `ssh`: O comando para a conexão segura com um servidor remoto via protocolo SSH, que transmite dados criptografados.
- `-L 59000:localhost:5901`: Ativa o redirecionamento de porta local; o tráfego da porta 59000 no seu computador local é encaminhado através do túnel SSH para a porta 5901 no servidor remoto. `localhost` refere-se ao servidor remoto onde o VNC Server está em execução.
- `C`: Ativa a compactação do tráfego de dados; isso pode melhorar a velocidade de transmissão e reduzir o uso de largura de banda, especialmente em conexões lentas.
- `N`: Impede a execução de comandos no servidor remoto; esse modo é útil quando você deseja apenas configurar o túnel, sem iniciar um shell no servidor remoto.
- `-l <your-username>`: Especifica o nome de usuário com o qual você fará login no servidor remoto.
- `<server-ip>`: O endereço IP ou o nome de host do servidor remoto ao qual você deseja se conectar via SSH.

Nota Substitua `<your-username>` pelo seu nome de usuário e `<server-ip>` pelo endereço IP do seu servidor.

Conecte-se à porta local 59000, que você redirecionou através do túnel SSH, inserindo localhost:59000 no seu VNC Viewer.

Esse método garante que sua conexão VNC ocorra por meio de uma conexão SSH criptografada, tornando-a mais segura.

### Passo 10: Gerenciar VNC Server no Ubuntu 22.04

Para parar ou reiniciar o VNC Server, use os seguintes comandos:

**Parar o VNC Server:**

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

**Reiniciar o VNC Server:**

```bash
vncserver :1
```

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

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

**Verificar o status:**

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

Um exemplo de saída possível seria:

```bash
vncserver@1.service - Iniciar servidor TigerVNC na inicialização
      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: Solucionar problemas no VNC Server

Caso encontre problemas, verifique os seguintes pontos:

- **Arquivos de log:** Os arquivos de log do VNC Server estão localizados em `~/.vnc`. Verifique esses arquivos para possíveis mensagens de erro que possam fornecer pistas sobre o problema.
- **Conexões de rede:** Certifique-se de que não há restrições de rede ou firewalls bloqueando o acesso à porta VNC.
- **Arquivos de configuração:** Verifique se não há erros de configuração no arquivo `~/.vnc/xstartup` relacionados ao ambiente de desktop.

Agora você tem a capacidade de gerenciar seus arquivos, programas e configurações do sistema de forma conveniente através de um VNC Server. Se preferir usar o Windows, recomendamos o nosso tutorial que ensina como [instalar um VNC Server no Windows](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/vnc-server-no-windows/).


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