Pesquisa de site

Como instalar e configurar o servidor VNC no CentOS e RHEL


Neste guia, explicaremos como instalar e configurar o Acesso Remoto VNC no desktop CentOS 7/8 e RHEL 9/8/7 edição através do programa tigervnc-server para acessar máquinas desktop remotas.

VNC (Virtual Network Computing) é um protocolo servidor-cliente que permite que contas de usuário se conectem e controlem remotamente um sistema distante usando os recursos fornecidos pela interface gráfica do usuário.

Ao contrário de outros servidores VNC disponíveis que se conectam diretamente ao desktop de tempo de execução, como VNC X ou Vino, tigervnc-vncserver > usa um mecanismo diferente que configura uma área de trabalho virtual independente para cada usuário.

Requisitos

  • Instalação do CentOS 8 com capturas de tela
  • Procedimento de instalação do CentOS 7
  • Como instalar o RHEL 9 gratuitamente
  • Como instalar o RHEL 8 gratuitamente
  • Procedimento de instalação do RHEL 7

Etapa 1: instalar e configurar VNC no CentOS

1. Tigervnc-server é um programa que executa um servidor Xvnc e inicia sessões paralelas do Gnome ou outro desktop ambientes no desktop VNC.

Uma sessão de usuário VNC iniciada pode ser acessada pelo mesmo usuário a partir de vários clientes VNC. Para instalar o servidor TigerVNC no CentOS/RHEL, abra uma sessão de terminal e emita o seguinte comando yum com privilégios de root.

sudo yum install tigervnc-server

2. Após instalar o programa, faça login com o usuário que deseja executar o programa VNC e emita o comando abaixo no terminal para configurar um senha para o servidor VNC.

Esteja ciente de que a senha deve ter pelo menos seis caracteres.

su - your_user
vncpasswd

3. Em seguida, adicione um arquivo de configuração de serviço VNC para seu usuário por meio de um arquivo de configuração do daemon colocado na árvore de diretórios systemd. Para copiar o arquivo de modelo VNC você precisa executar o seguinte comando cp com privilégios de root.

Se o seu usuário não tiver privilégios sudo, mude diretamente para a conta root ou execute o comando de uma conta com privilégios root.

cp /lib/systemd/system/[email  /etc/systemd/system/vncserver@:1.service

4. Na próxima etapa, edite o arquivo de configuração do modelo VNC copiado do diretório /etc/systemd/system/ e substitua os seguintes valores para refletir seu usuário, conforme mostrado abaixo amostra.

O valor de 1 após o sinal @ representa o número de exibição (porta 5900+display). Além disso, para cada servidor VNC iniciado, a porta 5900 será incrementada em 1.

vi /etc/systemd/system/vncserver@\:1.service

Adicione as seguintes linhas ao arquivo vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

5. Depois de fazer as alterações adequadas no arquivo de serviço VNC, recarregue o programa de inicialização do sistema systemd para pegar o novo arquivo de configuração vnc e iniciar o servidor TigerVNC.

Além disso, verifique o status do serviço VNC e habilite o daemon VNC em todo o sistema emitindo os comandos abaixo.

systemctl daemon-reload
systemctl start vncserver@:1
systemctl status vncserver@:1
systemctl enable vncserver@:1

6. Para listar as portas abertas no estado de escuta pertencente ao servidor VNC, execute o comando ss, que é usado para exibir os soquetes de rede. Como você iniciou apenas uma instância do servidor VNC, a primeira porta aberta é 5901/TCP.

Novamente, o comando ss deve ser executado com privilégios de root. Caso você inicie outras instâncias VNC em paralelo para usuários diferentes, o valor da porta será 5902 para o segundo, 5903 para o terceiro e assim por diante. As portas 6000+ são usadas para permitir que os aplicativos X se conectem ao servidor VNC.

ss -tulpn| grep vnc

7. Para permitir que clientes VNC externos se conectem ao servidor VNC, você precisa garantir que as portas abertas VNC adequadas possam passar pelo seu firewall.

Caso apenas uma instância do servidor VNC seja iniciada, você só precisa abrir a primeira porta VNC alocada: 5901/TCP emitindo os comandos abaixo para aplicar a configuração do firewall em tempo de execução.

firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent

Etapa 2: Conectando-se ao CentOS Desktop via cliente VNC

8. Sendo um protocolo independente de plataforma, conexões remotas de Interface Gráfica de Usuário VNC podem ser realizadas a partir de praticamente qualquer sistema operacional com uma GUI e um cliente VNC especializado.

Um cliente VNC popular usado em sistemas operacionais baseados em Microsoft, totalmente compatível com o servidor Linux TigerVNC, é o RealVNC VNC Viewer.

Para se conectar remotamente ao CentOS Desktop a partir de um sistema operacional Microsoft via protocolo VNC, abra o programa VNC Viewer, adicione o endereço IP e o número da porta do servidor CentOS VNC e aperte a tecla [enter].

Depois que a conexão VNC for estabelecida, um aviso informando que a conexão não está criptografada deverá ser exibido na tela, conforme ilustrado nas capturas de tela abaixo.

9. Para contornar o aviso, clique no botão Continuar, adicione a configuração da senha do servidor VNC no ponto 2 e você deverá estar conectado remotamente ao CentOS Desktop com o usuário configurado para executar a instância do servidor VNC.

10. Caso uma nova mensagem de Autenticação apareça em sua tela e seu usuário não tenha privilégios de root, basta clicar no botão Cancelar para continuar no CentOS. Desktop, conforme mostrado na imagem abaixo.

Esteja ciente de que a comunicação VNC estabelecida entre o servidor e o cliente e quaisquer dados trocados (exceto a senha) são executados em um canal não criptografado. Para criptografar e proteger a transferência de dados VPN, primeiro você precisa configurar um túnel SSH seguro e executar qualquer tráfego VPN subsequente através do túnel SSH.

11. Para conectar-se remotamente ao CentOS Desktop via protocolo VNC de outros CentOS Desktops, primeiro certifique-se de que o pacote vinagre esteja instalado em seu sistema emitindo o comando abaixo.

sudo yum install vinagre

12. Para abrir o utilitário vinagre, vá para Aplicativos -> Utilitários -> Visualizador de Área de Trabalho Remota conforme mostrado na imagem abaixo.

13. Para conectar-se remotamente a um CentOS Desktop, clique no botão Conectar, selecione o protocolo VNC na lista e adicione o endereço IP e porta (5900+número do display) do servidor VNC remoto. Além disso, forneça a configuração da senha para o usuário VNC conforme ilustrado nas capturas de tela a seguir.

14. Outro cliente VNC popular para plataformas baseadas em Linux é o Remmina, um cliente de desktop remoto usado especialmente em distribuições baseadas em Debian que executam o ambiente de desktop GNOME.

Para instalar o cliente Remmina Remote Desktop em distros baseadas em Debian, emita o seguinte comando.

sudo apt-get install remmina

Etapa 3: configurar várias sessões VNC no CentOS

15. Caso você precise executar uma nova sessão VNC paralela com o mesmo usuário, abra um console do Terminal, faça login com o usuário que deseja iniciar a nova sessão VNC e execute o comando abaixo.

Ao iniciar o servidor pela primeira vez, você será solicitado a fornecer uma nova senha para esta sessão. No entanto, esteja ciente de que esta sessão é executada com suas permissões de usuário logado e independentemente da sessão do servidor VNC do systemd iniciada.

vncserver

16. As novas sessões VNC abrirão as próximas portas baseadas em VNC disponíveis (exibição 5900+3 neste exemplo). Para exibir as portas abertas, execute o comando ss sem privilégios de root, conforme ilustrado no trecho abaixo. Ele listará apenas as sessões VNC iniciadas devidas ao seu usuário.

ss -tlpn| grep Xvnc

17. Agora, conecte-se remotamente ao CentOS Desktop usando esta nova sessão VNC e forneça a combinação IP:porta (192.168.1.23:5903) no cliente VNC conforme ilustrado na imagem abaixo.

Para interromper as instâncias do servidor VNC iniciadas com essas permissões de usuário conectado, emita o seguinte comando sem nenhum privilégio de root. Este comando destruirá todas as instâncias VNC iniciadas de propriedade apenas do usuário que as declarou.

su - your_user
killall Xvnc

Isso é tudo! Agora você pode acessar seu sistema CentOS e executar tarefas administrativas usando a interface gráfica do usuário fornecida pelo sistema operacional.