¿Cómo puedo tener acceso a un escritorio virtual del servidor desde mi computadora?
Puedes tener acceso a un escritorio virtual del servidor, sin necesidad de tener una sesión gráfica ya iniciada.
Nota: esto es ideal para ejecutar programas que requieren entorno gráfico, y poder dejarlos corriendo “en background”.
Este método es más apropiado y eficiente que solamente acceder al servidor por línea de comandos o ejecutar programas del servidor que requieren ambiente gráfico.
Esto se puede lograr usando Virtual Network Computing o VNC.
Usando VNC
- En el servidor, como primer paso debes establecer una contraseña para tu escritorio VNC. Ejecuta el comando vncpasswd:
$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used
Este comando solamente debes ejecutarlo una vez, o cuando quieras cambiar tu contraseña VNC.
- Después, debes iniciar tu escritorio VNC en el servidor. Ejecuta el comando vncserver. Las opciones recomendadas son name para que identifiques tu escritorio con un nombre (por ejemplo “MIESCRITORIO”), y localhost (para mayor seguridad al conectarnos mediante un túnel ssh).
$ vncserver -name MIESCRITORIO -localhost yes New 'MIESCRITORIO' desktop is servidor.lcg.unam.mx:1
Es importante recordar las últimas líneas, en especial la parte final de “New ‘X’ desktop is SERVIDOR:DISPLAY”. El número al final representa el DISPLAY en el que quedó el escritorio en el servidor.
Con esto te podrás conectar a tu escritorio VNC (ver siguiente paso). En ocasiones posteriores ya no es necesario ejecutar vncserver otra vez, a menos que hayas terminado o detenido tu escritorio VNC.
- En la computadora desde la que te deseas conectar (por ejemplo tu laptop o computadora de la casa) debes instalar un cliente VNC. Para linux recomendamos tigervnc, disponible normalmente en los repositorios de tu distribución (nota: en las terminales con escritorio Linux de las aulas de la LCG, ya está instalado tigervnc). Para Windows recomendamos MobaXterm Home Installer Edition y para Mac OS X puedes usar tigervnc (descargar archivo dmg) o realvnc.
Para conectarte a tu escritorio recomendamos hacerlo mediante un túnel SSH al servidor remoto.
En Linux con tigervnc, debes usar la opción -via con el argumento usuario@servidor para la conexión SSH, y al final el argumento localhost:DISPLAY, donde DISPLAY es el número que salió al ejecutar el servidor VNC. Ejemplo:
$ vncviewer -via [email protected] localhost:1
En Windows con MobaXterm, debes crear una nueva sesión de tipo VNC con la siguiente configuración básica:
Host remoto o dirección IP: localhost Puerto: 5901
Nota: el valor del puerto es el valor del DISPLAY que te salió al ejecutar vncserver más 5900.
Además, en la pestaña “Network settings” debes configurar un SSH Gateway (o jump host) con los valores para la conexión SSH:
Gateway host: servidor.lcg.unam.mx Username: usuario Puerto: 22
En Mac OS X, primero debes hacer el túnel ssh. Desde una terminal ejecuta el siguiente comando, escribe tu contraseña y mantén la sesión iniciada:
$ ssh -L 5901:localhost:5901 [email protected]
Nota: el valor del puerto local y remoto en el túnel es el valor del DISPLAY que te salió al ejecutar vncserver más 5900 (en este caso 5901).
Después abre el cliente vnc y conectate a localhost:1 (recuerda que depende del valor de DISPLAY que te salió al ejecutar vncserver) como en los casos anteriores.
También puedes usar este método de conexión desde Linux si el cliente VNC no soporta el túnel ssh de forma nativa, o bien si la conexión ssh es mediante un puerto no estándar.En los tres casos, al conectarte primero debes escribir tu contraseña SSH, y posteriormente deberás escribir tu contraseña VNC, creada en el paso 1.
Si la autenticación es correcta, te aparecerá un escritorio de una nueva sesión en el servidor.
Si deseas ver un listado de los escritorios virtuales que tienes corriendo en el servidor, ejecuta vncserver con la opción -list:
$ vncserver -list X DISPLAY # PROCESS ID :1 1225520
Si después deseas terminar o detener tu escritorio VNC, ejecuta vncserver con la opción -kill y el DISPLAY que quieras terminar:
$ vncserver -kill :1