GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configure el escritorio Xfce en el servidor ubuntu 16.10 remoto y acceda a él a través de VNC

Ejecución de escritorio en servidor remoto

Por lo general, usaría la terminal ssh cuando trabaje en un servidor Linux remoto. Pero puede haber momentos en los que necesite ejecutar una aplicación de interfaz gráfica de usuario en el servidor y mantenerla funcionando durante bastante tiempo.

Recientemente tuve que hacer algo similar y, por lo tanto, configuré un servidor Ubuntu con escritorio y accedí a él a través de VNC.

La idea es sencilla. Instale cualquier entorno de escritorio de su elección en el servidor. En este tutorial usaremos Xfce, ya que tiene un tamaño reducido en comparación con los más grandes como Gnome y KDE.

Luego use el servidor vnc para iniciar el entorno de escritorio y crear una sesión de visualización X a la que accederemos desde nuestra máquina de escritorio local a través de un cliente vnc.

Instalar entorno de escritorio y servidor VNC

Xfce es un escritorio liviano e ideal para usar en un servidor remoto. Primero instale los paquetes xfce y el servidor tightvnc. Sería una buena idea actualizar la memoria caché del paquete antes de realizar la instalación real.

sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver

Tenga en cuenta que esto solo instalará los paquetes y no iniciará nada. Iniciaremos vncserver con configuraciones específicas por nuestra cuenta, más adelante en esta guía.

Si el proceso dpkg se cierra inesperadamente, es posible que deba ejecutar el siguiente comando:

# sudo dpkg --configure -a

Crear un nuevo usuario para vnc

Lo siguiente que debe hacer es crear un usuario de Unix que se utilizará durante las sesiones de vnc. El nombre de usuario puede ser cualquier cosa. Use el comando agregar usuario.

# adduser mike
Adding user `mike' ...
Adding new group `mike' (1001) ...
Adding new user `mike' (1001) with group `mike' ...
Creating home directory `/home/mike' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mike
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
#

El vncserver iniciará el entorno de escritorio con este usuario de Unix. Lo que significa que usted será este usuario cuando trabaje en el escritorio remoto

Configure la "contraseña vnc" para el usuario

El servidor vnc mantiene una contraseña separada que se usa para iniciar sesión en el servidor vnc a través de clientes vnc. Esta contraseña es diferente de la contraseña de usuario de Unix. Se configura mediante el comando vncpasswd.

Primero cambie al usuario "mike" que se creó en el paso anterior y configure la contraseña del servidor vnc.

# su - mike

Luego use el comando vncpasswd

$ vncpasswd
Using password file /home/mike/.vnc/passwd
VNC directory /home/mike/.vnc does not exist, creating.
Password:
Verify:
Would you like to enter a view-only password (y/n)?
[email protected]:~$

Tenga en cuenta que el archivo passwd no existía y se creó por primera vez en este paso.

Si ya ha ejecutado el comando vncserver anteriormente, habrá creado los archivos. Cuando ejecuta vncserver por primera vez, crea un script de inicio predeterminado

$ vncserver
You will require a password to access your desktops.
Password:
Password too short
[email protected]:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is desktop:1
Creating default startup script /home/enlightened/.vnc/xstartup
Starting applications specified in /home/enlightened/.vnc/xstartup
Log file is /home/enlightened/.vnc/desktop:1.log

Sin embargo, no necesitamos ejecutar el comando vncserver. Se iniciará automáticamente usando scripts de inicio.

Cree la secuencia de comandos xstartup

El siguiente archivo importante es el script xstartup. Contiene instrucciones sobre qué aplicaciones X iniciar. El entorno de escritorio es la aplicación X que tenemos que iniciar.

Primero haga una copia de seguridad del archivo si ya existe

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

Ahora edítalo usando nano

[email protected]:~$ nano .vnc/xstartup

Nota:esto está dentro del directorio de inicio del usuario vnc, es decir, /home/mike/.vnc/xstartup

Ingrese las siguientes líneas en el script xstartup

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

El comando startxfce4 iniciará el escritorio xfce. Guarde el archivo y ciérrelo.

Haga que el archivo xstartup sea ejecutable. Esto es necesario para que vncserver pueda ejecutar este archivo.

$ chmod +x ~/.vnc/xstartup

Crear archivo de servicio vnc

El siguiente paso es crear un archivo de servicio vnc para que podamos iniciar el servidor vnc usando el comando de servicio y no tengamos que ejecutar el comando vncserver cada vez.

Asegúrese de ingresar el nombre de usuario correcto en la variable USUARIO. Este es el usuario que el servidor vnc utilizará para iniciar la sesión de escritorio.

[email protected]:~# sudo nano /etc/init.d/vncserver

Pegue el siguiente script

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mike"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

Guarde el archivo y ciérrelo. Hazlo ejecutable

# chmod +x /etc/init.d/vncserver

Iniciar el servicio

Ahora se lee todo. Es hora de ejecutar vncserver y probar nuestro paso.

Primero vuelva a cargar systemctl para que pueda usar el script de inicio de vncserver.

systemctl daemon-reload

Ahora inicie vncserver. Inicia un servidor en el puerto 5901

# service vncserver start

Comprueba que se está ejecutando

[email protected]:~# service vncserver status
● vncserver.service
   Loaded: loaded (/etc/init.d/vncserver; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-03-02 05:36:42 UTC; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)
Mar 02 05:36:40 bintu systemd[1]: Starting vncserver.service...
Mar 02 05:36:40 bintu vncserver[24877]:  * Starting vncserver for user 'vnc' on localhost:1...
Mar 02 05:36:40 bintu su[24885]: Successful su for vnc by root
Mar 02 05:36:40 bintu su[24885]: + ??? root:vnc
Mar 02 05:36:40 bintu su[24885]: pam_unix(su:session): session opened for user vnc by (uid=0)
Mar 02 05:36:42 bintu vncserver[24877]: New 'X' desktop is bintu:1
Mar 02 05:36:42 bintu vncserver[24877]: Starting applications specified in /home/vnc/.vnc/xstartup
Mar 02 05:36:42 bintu vncserver[24877]: Log file is /home/vnc/.vnc/bintu:1.log
Mar 02 05:36:42 bintu systemd[1]: Started vncserver.service.
$ cat ~/.vnc/*.pid
18577
18731
# ps -ef | grep tightvnc
vnc      24574     1  0 05:32 ?        00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
root     24744 10412  0 05:33 pts/0    00:00:00 grep --color=auto tightvnc
[email protected]:~#

Compruebe los puertos abiertos del servidor vnc. Necesita el número de puerto correcto cuando se conecta desde el cliente vnc

# netstat -nlp | grep vnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      24574/Xtightvnc
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      24574/Xtightvnc
unix  2      [ ACC ]     STREAM     LISTENING     5225386  24574/Xtightvnc     /tmp/.X11-unix/X1

El servidor Vnc también se puede iniciar llamando directamente al script.

# /etc/init.d/vncserver start
[ ok ] Starting vncserver (via systemctl): vncserver.service.
[email protected]:~#

Para detener vncserver

# service vncserver stop

Instalar el cliente vncviewer en el escritorio

Ahora que tenemos el servidor vnc en funcionamiento con el entorno de escritorio gui, es hora de instalar un cliente vnc y acceder al escritorio remoto.

Instale xtightvncviewer en Ubuntu.

$ sudo apt-get install xtightvncviewer

Ahora conéctese al servidor vnc remoto usando el comando vncviewer.

$ vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901

Usamos codificaciones de menor calidad y compresión para comprimir los datos de imagen que se transfieren y hacerlos más rápidos.

Usar otros visores vnc como KRDC podría ser más lento.

Recursos

Para obtener más información, consulte estos enlaces útiles -

http://tightvnc.com/vncviewer.1.htmlhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
https://www.digitalocean.com/community/tutorials /cómo-configurar-vnc-para-ubuntu-12


Ubuntu
  1. Escritorio remoto de Ubuntu:cómo configurarlo y conectarse a él

  2. Instale el servidor VNC en Ubuntu 13.04 / Ubuntu 12.10

  3. Cómo configurar el servidor VNC (acceso a escritorio remoto de Linux) en CentOS/RHEL y Fedora

  4. Cómo configurar el servidor X11VNC en Ubuntu y LinuxMint

  5. Instale el servidor y el cliente vnc en Ubuntu

Cómo instalar y configurar RabbitMQ en Ubuntu 16.04

Instalar y configurar el servidor VNC en Ubuntu 16.04

Instalar y configurar VNC en Ubuntu 20.04

Cómo instalar (y desinstalar) XFCE en Ubuntu

Cómo instalar y configurar el servidor VNC en Ubuntu 20.04 LTS

Una guía para principiantes sobre la gestión de usuarios en Ubuntu Desktop y Server