Instalando TigerVNC no Ubuntu 18.04 Server (64-bits)

# sudo apt-get install tasksel

# sudo tasksel

tasksel

Selecione Ubuntu desktop (será instalado o xorg com o Gnome)

# sudo reboot

Aguarda reboot. conecte novamente.

# sudo apt-get install tigervnc-standalone-server  tigervnc-xorg-extension

Configurando:

Entre com o usuário que deseja criar a senha para o VNC e digite

$ tigervncserver

Ou como root, rode comando como outro usuário, neste caso ubuntu:

$ su - ubuntu -c tigervncserver

You will require a password to access your desktops.

Password: <digite uma senha>

Would you like to enter a view-only password (y/n)? y

Password: <digite uma senha para acesso apenas visualização>

 

A senha será armazenada de forma encriptada pelo tigervnc no diretório:

~/.vnc/passwd

Verificando:

$ netstat -pltn | grep tiger

tcp        0      0 127.0.0.1:5901       0.0.0.0:*      LISTEN      2047/Xtigervnc

tcp6       0      0 ::1:5901             :::*           LISTEN      2047/Xtigervnc

É possível ver que o tigervnc está rodando, só que apenas para acesso local, sem acesso externo, só será possível conectar através de túnel SSH.

Matando o processo:

$ tigervncserver -kill :1

Killing Xtigervnc process ID 8634... success!

Matando todos os processos:

# pkill tigervncserver

ou

# tigervncserver -kill :*

Liberando acesso externo:

# vi /etc/vnc.conf

Incluir a linha:

$localhost = “no”;

# tigervncserver

root@ubuntu-18:/etc# netstat -pltn | grep tiger

tcp        0      0 0.0.0.0:5901      0.0.0.0:*       LISTEN      10752/Xtigervnc

tcp6       0      0 :::5901           :::*            LISTEN      10752/Xtigervnc

Colocando TigerVNC na inicialização do sistema:

Criar o arquivo de inicialização em /etc/init.d/vncserver

Obs.: No Ubuntu 16.04 o TightVNC não está disponíve no repositório do apt, é necessário instalar a partir do pacote deb, quando se instala a partir do pacote ele já cria o arquivo /etc/init.d/vncserver

No Ubuntu 18.04 quando se instala a partir do repositório do apt-get ele não cria os arquivos de inicialização.

Modelo do arquivo /etc/init.d/vncserver

#!/bin/bash

#

# Init file for TigerVNC Server

#

# chkconfig: - 91 35

# description: TigerVNC remote X administration daemon.

#

# processname: Xvnc

### BEGIN INIT INFO

# Provides: vncservers

# Required-Start: networking

# Required-Stop: networking

# Default-Start:

# Default-Stop: 0 1 2 3 4 5 6

# Short-Description: Starts and stops vncserver

# Description: Used to provide remote X administration services.

### END INIT INFO

# Source function library.

. /lib/lsb/init-functions

### Default variables

SYSCONFIG="/etc/default/vncservers"

VNCSERVERS=""

### Read configuration

[ -r "$SYSCONFIG" ] && . "$SYSCONFIG"

RETVAL=0

prog=$"VNC server"

start() {

  echo -n $"Starting $prog: "

  ulimit -S -c 0 >/dev/null 2>&1

  for display in ${VNCSERVERS}; do

    echo -n "${display} "

    if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then

      unset BASH_ENV ENV

      log_begin_msg "Starting VNC Server for user ${display##*:}:"

      su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}"

      RETVAL="$?"

      if [ "$RETVAL" -ne 0 ]; then

        log_end_msg 1

        break

      else

        log_end_msg 0

      fi

    else

      log_begin_msg "Not starting VNC Server for user ${display##*:}.\n   File \"~${display##*:}/.vnc/passwd\" not found.\n   Create a password file for the VNC server with vncpasswd"

      log_end_msg 1

          fi

  done

  echo

  [ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver"

  return $RETVAL

}

stop() {

    echo -n $"Shutting down $desc: "

    for display in ${VNCSERVERS}; do

      echo -n "${display} "

      unset BASH_ENV ENV

      log_begin_msg "Shutting down VNC Server for user ${display##*:}: "

      su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1

      RETVAL="$?"

      [ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1

    done

    echo

    [ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver"

    return $RETVAL

}

restart() {

    stop

    start

}

case "$1" in

  start)

    start

    ;;

  stop)

    stop

    ;;

  restart|reload)

    restart

    ;;

  *)

    echo $"Usage: $0 {start|stop|restart}"

    RETVAL=1

esac

exit $RETVAL

Após criar o arquivo, inclua ele para a inicialização:

# update-rc.d apache2 defaults    

#  service vncserver start

# service --status-all

[ + ]  vncserver

# update-rc.d vncserver enable 5

Cria arquivo de configuração em /etc/default/vncservers

# The VNCSERVERS variable is a list of display:user pairs.

#

# Uncomment the lines below to start a VNC server on display :2

# as my 'myusername' (adjust this to your own).  You will also

# need to set a VNC password; run 'man vncpasswd' to see how

# to do that.

#

# DO NOT RUN THIS SERVICE if your local area network is

# untrusted!  For a secure way of using VNC, see this URL:

# http://kbase.redhat.com/faq/docs/DOC-7028

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when

# doing so through a secure tunnel.  See the "-via" option in the

# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"

# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

VNCSERVERS="1:ubuntu 2:teste"

Esse arquivo está configurado para iniciar um vnc na porta 5901 para o usuário ubuntu e um vnc na porta 5902 para o usuário teste

Referencias:

https://www.computersnyou.com/4945/re-install-xorg-xserver-completely-ubuntu/

https://wiki.archlinux.org/index.php/TigerVNC

https://www.digitalocean.com/community/tutorials/como-instalar-e-configurar-o-vnc-no-ubuntu-16-04-pt