Instalar un entorno gráfico (xfce) en un servidor ubuntu 16.04 ?
En ocasiones tenemos la necesidad de tener un entorno grafico en un servidor por diferentes razones, es este tutorial te muestro como instalar xcfe en un ubuntu server 16.04
1.- Instalar xcfe en el servidor
sudo apt-get update
sudo apt install xfce4 xfce4-goodies tightvncserver
Echamos a andar el programa vncserver asi
vncserver
Nos pedira un pass en mi caso sera vncpass
2.- Configurar VNC en nuestro servidor
Debemos decirle a vnc que entorno va a ejecutar cuando se conecte para esto debemos matar a vncserver asi:
vncserver -kill :1
Ahora editamos el archivo xstartup
nano ~/.vnc/xstartup
el cual debe quedar asi:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Damos permisos de ejecución a xstartup asi:
sudo chmod +x ~/.vnc/xstartup
Y reiniciamos VNC asi:
vncserver
O como alternativa en caso de que quieras que la pantalla sea mas grande y no se cierre la sesión puedes hacer esto
vncserver -geometry 1600x900 -alwaysshared
Debe de mostrarse algo asi:
New 'X' desktop is your_server_name.com:1
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/liniverse.com:1.log
3.- Conectarse desde VNC (vinagre) local a nuestro servidor
La forma rapida pero no segura es escribir en nuestro cliente vnc (vinagre en mi caso) la ip del servidor seguida de :5901 como se muestra en la imagen:
Se nos pedirá una contraseña y pondremos vncpass que es el pass que colocamos en el paso 1 al instalar vncserver
Y listo ya tenemos nuestro entorno xcfe
5.- En ocaciones por una extraña razon el panel superior e inferior no se muestran para arreglar esto precionamos alt+f1 Seleccionamos setting > Panel Se nos motrara una ventana en la que daremos aceptar.
6.- Para realizar una conexion segura (que los datos viajen cifrados) y para lograr eso debemos escribir el siguiente comando:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Donde:
username: Usuario de nuestro servidor remoto
server_ip_address: IP de nuestro servidor remoto
Abrimos nuestro cliente remoto (en mi caso vinagre) y colocamos localhost:5901 asi:
7.- Ponemos VNC como servicio
Con este paso vncserver iniciara automaticamente al reiniciar el servidor
sudo vim /etc/systemd/system/vncserver@.service
Pegamos este contenido
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=root
PAMName=login
PIDFile=/home/root/.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
Guardar y cerrar
Reiniciamos systemctl para cargar el archivo “vncserver@.service” que acabamos de crear.
sudo systemctl daemon-reload
Habilitamos el archivo que acabamos de crear:
sudo systemctl enable vncserver@1.service
Matamos el vnc que esta corriendo actualmente:
vncserver -kill :1
Iniciamos vnc como cualquier sistema
sudo systemctl start vncserver@1
Verificamos si vnc esta activo:
sudo systemctl status vncserver@1
Nos debe dar este resultado:
vncserver@1.service - TightVNC server on Ubuntu 16.04
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)
...
systemd[1]: Starting TightVNC server on Ubuntu 16.04...
systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[1]: Started TightVNC server on Ubuntu 16.04.
Ave que vuela, a la cazuela.