One place for hosting & domains

      Como-instalar-e-configurar-o VNC no Ubuntu 18.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, você irá configurar um servidor VNC em um servidor Ubuntu 18.04 e se conectar a ele com segurança através de um túnel SSH. Você usará o TightVNC, um pacote de controle remoto rápido e leve. Esta escolha irá garantir que nossa conexão VNC será suave e estável mesmo em conexões de Internet mais lentas.

      Pré-requisitos

      Para completar este tutorial, será necessário:

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

      Por padrão, um servidor Ubuntu 18.04 não vem com um ambiente gráfico de área de trabalho ou um servidor VNC instalado, então começaremos instalando eles. Especificamente, iremos instalar pacotes de ambiente de área de trabalho mais recentes, o Xfce e o pacote TightVNC disponíveis no repositório oficial do Ubuntu.

      No seu servidor, atualize sua lista de pacotes:

      Agora, instale o ambiente de área de trabalho Xfce no seu servidor:

      • sudo apt install xfce4 xfce4-goodies

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

      • sudo apt install tightvncserver

      Para completar a configuração inicial do servidor VNC após a instalação, utilize o comando vncserver para configurar uma senha segura e crie os arquivos de configuração iniciais:

      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. Senhas com mais de 8 caracteres serão truncadas automaticamente.

      Uma vez verificada a senha, você terá a opção de criar uma senha somente para exibição. Usuários que fizerem login com a senha somente para exibição não poderão controlar a instância VNC com seus respectivos mouses ou teclados. Esta é uma opção útil se quiser demonstrar algo para outras pessoas utilizando seu servidor VNC, mas isso não é necessário.

      Depois, o processo criará os arquivos necessários de configuração padrão e informações de conexão para o servidor:

      Output

      Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Agora, vamos configurar o servidor VNC.

      Passo 2 — Configurando o Servidor VNC

      O servidor VNC precisa saber quais comandos executar quando ele iniciar. Especificamente, o VNC precisa saber a qual ambiente gráfico de área de trabalho ele deve se conectar.

      Estes comandos estão localizados em um arquivo de configuração chamado de xstartup na pasta .vnc sob o seu diretório inicial. O script de inicialização foi criado quando você executou o vncserver no passo anterior, mas vamos criar o nosso próprio script para iniciar a área de tabalho Xfce.

      Quando o VNC é configurado pela primeira vez, ele inicia uma instância de servidor padrão na porta 5901. Essa porta é chamada de porta de exibição e é referida pelo VNC como :1. O VNC pode iniciar várias instâncias em outras porta de exibição, como :2, :3 e assim por diante.

      Uma vez que vamos alterar a configuração do servidor VNC, primeiramente, interrompa a instância do servidor VNC que estiver em execução na porta 5901 com o seguinte comando:

      O resultado deve se parecer com este, embora você veja um PID diferente:

      Output

      Killing Xtightvnc process ID 17648

      Antes de modificar o arquivo xstartup, faça um back-up do original:

      • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

      Agora, crie um novo arquivo de xstartup e abra ele no seu editor de texto:

      Os comandos neste arquivo são executados de maneira automática, sempre que você iniciar ou reiniciar o servidor VNC. Precisamos que o VNC inicie nosso ambiente de área de trabalho, caso ainda não tiver sido iniciado. Adicione esses comandos ao arquivo:

      ~/.vnc/xstartup

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

      O primeiro comando no arquivo, xrdb $HOME/.Xresources diz ao framework GUI do VNC para ler o usuário do servidor..Xresources arquivo O .Xresources é onde um usuário pode fazer alterações em certas configurações do ambiente de trabalho gráfico, como as cores de terminal, temas de cursor e rendering de fontes. O segundo comando diz ao servidor para iniciar o Xfce, que é onde você encontrará todos os software gráficos necessários para gerenciar confortavelmente seu servidor.

      Para garantir que o servidor VNC será capaz de usar esse novo arquivo de inicialização corretamente, precisaremos torná-lo executável.

      • sudo chmod +x ~/.vnc/xstartup

      Agora, reinicie o servidor VNC.

      Você verá um resultado semelhante a 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

      Com a configuração implementada, vamos conectar nossa máquina local ao servidor.

      O VNC propriamente dito não utiliza protocolos de segurança ao se conectar. Utilizaremos um túnel SSH para conectar ao nosso servidor com segurança. Em seguida, diremos ao nosso cliente VNC para usar aquele túnel e não 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 -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

      O switch -L especifica as ligações de porta. Neste caso, estamos ligando a porta 5901 da conexão remota à porta 5901 de sua máquina local. O switch -C habilita a compressão, enquanto o switch -N diz ao ssh que não queremos executar um comando remoto. O switch -l especifica o nome de login remoto.

      Lembre-se de substituir o sammy e o your_server_ip pelo nome de usuário não raiz de comando sudo e o endereço IP do seu servidor.

      Se estiver usando um cliente SSH gráfico, como o PuTTY, utilize o your_server_ip como a conexão IP e defina o localhost:5901 como uma nova porta encaminhada nas configurações de túnel SSH do programa.

      Assim que o túnel estiver em execução, utilize um cliente VNC para se conectar ao “localhost:5901. 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 18.04 server​​​​​​

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

      Files via VNC connection to Ubuntu 18.04

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

      A seguir, vamos configurar nosso servidor VNC como um serviço.

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

      Depois, vamos configurar o servidor VNC como um serviço de systemd para que possamos iniciar, parar e reiniciar se necessário, como em qualquer outro serviço. Isso também irá garantir que o VNC inicie quando seu servidor reinicializar.

      Primeiramente, crie um novo arquivo de unidade chamado /etc/systemd/system/[email protected], usando seu editor de texto favorito:

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

      Adicione as linhas a seguir ao arquivo. Certifique-se de alterar o valor do User, Group, WorkingDirectory e o nome de usuário no valor do P*IDFILE *para corresponder ao seu nome de usuário:

      /etc/systemd/system/[email protected]

      [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 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target

      O comando ExecStartPre interrompe o VNC , se ele já estiver em execução. O comando ExecStart inicia o VNC e define a profundidade de cor para 24 bits com uma resolução de 1280x800. Também é possível modificar essas opções de inicialização para atender suas necessidades.

      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.

      O 1 que depois do símbol o @ significa sobre 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 ele ainda estiver em execução.

      Então, inicie-o 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

      Se ele iniciou corretamente, a saída deverá se parecer com isto:

      Output

      [email protected] - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled) Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS) Main PID: 22330 (Xtightvnc) ...

      Seu servidor VNC agora estará disponível quando reiniciar a máquina.

      Inicie seu túnel SSH novamente:

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

      Então, faça uma nova conexão usando seu software de cliente VNC com o localhost:5901 para conectar à sua máquina.

      Conclusão

      Agora, você tem um servidor VNC seguro e em execução no seu servidor Ubuntu 18.04. Agora, poderá gerenciar seus arquivos, software e configurações com uma interface gráfica conhecida e fácil de usar e será capaz de executar software gráficos como navegadores de Web remotamente.



      Source link


      Leave a Comment