TigerVNC
TigerVNC
(Tiger Virtual Network Computing) es un sistema de escritorio gráfico compartido que le permite controlar remotamente otros ordenadores.
TigerVNC
trabaja sobre la red cliente-servidor: un servidor comparte su salida (vncserver
) y un cliente (vncviewer
) se conecta al servidor.
De forma diferente a Fedora 15 y Red Hat Enterprise Linux 6, |
Servidor VNC
vncserver
es una utilidad que arranca un escritorio VNC (Computación en Red Virtual). Ejecuta Xvnc con las opciones apropiadas e inicia un administrador de ventanas sobre el escritorio VNC. vncserver
permite a los usuarios ejecutar sesiones separadas en paralelo sobre una máquina a la que pueden acceder cualquier número de clientes desde cualquier lugar.
Instalar el Servidor VNC
Para instalar el servidor TigerVNC, envíe el siguiente comando como root
:
# dnf install tigervnc-server
Configurar el Servidor VNC
-
Se requiere un archivo de configuración llamado
/etc/systemd/system/vncserver@.service
. Para crear este archivo copie el archivo/lib/systemd/system/vncserver@.service
comoroot
:# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
No es necesario incluir el número de pantalla en el nombre del archivo porque
systemd
crea automáticamente la instancia con el nombre apropiado en la memoria a pedido, reemplazando'%i'
en el archivo de servicio por el número de pantalla. Para un único usuario no es necesario renombrar el archivo. Para múltiples usuarios, se requiere un archivo de servicio con un nombre exclusivo para cada usuario, por ejemplo, añadiendo el nombre de usuario al nombre del archivo de alguna manera. Vea detalles en Configurar el Servidor VNC para Dos Usuarios. -
Edite
/etc/systemd/system/vncserver@.service
, reemplazando USER con el nombre del usuario actual. Deje las restantes líneas del archivo sin modificar. El argumento-geometry
especifica el tamaño del escritorio VNC a crear; de manera predeterminada está fijado a1024x768
.ExecStart=/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/USER/.vnc/%H%i.pid
-
Guardar los cambios.
-
Para hacer que los cambios surtan efecto inmediatamente, envíe el siguiente comando:
#
systemctl daemon-reload
-
Establezca la contraseña para el usuario o usuarios definidos en el archivo de configuración. Tenga en cuenta que necesita cambiar de
root
a USER primero.# su - USER $
vncpasswd
Password: Verify:La contraseña almacenada no está encriptada; cualquiera que tenga acceso al archivo password puede encontrar la contraseña en texto plano.
Continúe a Arrancar el Servidor VNC.
Configurar el Servidor VNC para Dos Usuarios
Si desea configurar más de un usuario en la misma máquina, cree diferentes archivos de servicio de tipo plantilla, uno por cada usuario.
-
Crear dos archivos de servicio, por ejemplo
vncserver-USER_1@.service
yvncserver-USER_2@.service
. En ambos archivos sustituya USER por el nombre de usuario correcto. -
Establezca las contraseñas de ambos usuarios:
$ su - USER_1 $ vncpasswd Password: Verify: $ su - USER_2 $ vncpasswd Password: Verify:
Arrancar el Servidor VNC
Para arrancar o habilitar el servicio, especifique el número de pantalla directamente en el comando. El archivo configurado arriba en Configurar la primera conexión VNC trabaja como plantilla, en el que %i
es sustituido por el número de pantalla por systemd
. Con un número de pantalla válido ejecute el siguiente comando:
# systemctl start vncserver@:display_number.service
También puede habilitar que el servicio se inicie automáticamente al arranque del sistema. Entonces, cuando usted accede, vncserver
es arrancado automáticamente. Como root
, envíe un comando como el que sigue:
# systemctl enable vncserver@:display_number.service
En este punto, otros usuarios son capaces de usar un programa visualizador VNC para conectar con el servidor VNC usando el número de pantalla y una contraseña definida. Siempre que haya instalado un escritorio gráfico, se mostrará una instancia de ese escritorio. No será la misma instancia que se muestra actualmente en la maquina destino.
Configurar un Servidor VNC para Dos Usuarios y Dos Pantalla Diferentes
Para los dos servidores VNC configurados, vncserver-USER_1@.service y vncserver-USER_2@.service, usted puede habilitar números diferentes de pantallas. Por ejemplo, los siguientes comandos causaran que un servidor VNC para que USER_1 arranque en la pantalla 3 y un servidor VNC para USER_2 arranque en la pantalla 5:
# systemctl start vncserver-USER_1@:3.service # systemctl start vncserver-USER_2@:5.service
Finalizar una Sesión VNC
De la misma manera que para habilitar el servicio vncserver
, usted puede deshabilitar el inicio automático del servicio al arranque del sistema:
# systemctl enable vncserver@:display_number.service
O, cuando su sistema está corriendo, puede parar el servicio enviando el siguiente comando como root
:
# systemctl start vncserver@:display_number.service
Visualizador VNC
vncviewer
es el programa que muestra las interfaces gráficas de usuario compartidas y controla el servidor.
Para el funcionamiento de vncviewer
, hay un menú desplegable que contiene entradas que llevan a cabo diversas acciones como la conmutación para la entrada o salida del modo de pantalla completa o la salida del visualizador. Alternativamente, puede trabajar con vncviewer
a través del terminal. Introduzca vncviewer -h en la línea de comando para una lista de parámetros de vncviewer
.
Instalar un Visualizador VNC
Para instalar el cliente TigerVNC, vncviewer>, envíe el siguiente comando como root
:
# dnf install tigervnc
Conectar al servidor VNC
Una vez que se ha configurado el servidor VNC puede conectarse a él desde cualquier visualizador VNC. Con el objetivo de hacerlo, envíe el comando vncviewer de la siguiente forma:
vncviewer address:port_number
Donde address es una IP
o un nombre de host.
Con la dirección IP
192.168.0.4
y mostrando el número 3 el comando se vería como sigue:
$ vncviewer 192.168.0.4:3
Configurar el Cortafuegos para VNC
Cuando se usa una conexión no encriptada firewalld
podría bloquear la conexión. Para permitir que firewalld
pase los paquetes VNC usted debe abrir puertos específicos al tráfico TCP
. Cuando utiliza la opción -via
el tráfico es redirigido sobre SSH
que está habilitado de modo predeterminado en firewalld
.
El puerto predeterminado del servidor VNC es 5900. Para alcanzar el puerto a través del cual un escritorio remoto será accesible, sume el puerto predeterminado y el número de visualizador asignado del usuario. Por ejemplo, para el segundo puerto: 2 + 5900 = 5902. |
Para las pantallas 0
a 3
, haga uso del soporte de firewalld
para el servicio VNC por medio de la opción service
como se describe abajo. Tenga en cuenta que para números de pantalla superiores a 3
los puertos correspondientes tendrán que ser abiertos específicamente como se explica en Abriendo Puertos en firewalld.
-
Ejecute el siguiente comando para ver información sobre los ajustes de
firewalld
:$ firewall-cmd --list-all
-
Para permitir todas las conexiones VNC desde una dirección específica, utilice un comando como sigue:
# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept' success
Vea en Red Hat Enterprise Linux 7 Guía de Seguridad más información sobre el uso de comandos de lenguaje enriquecido de cortafuegos.
-
To verify the above settings, use a command as follows:
# firewall-cmd --list-all public (default, active) interfaces: bond0 bond0.192 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.122.116" service name="vnc-server" accept
To open a specific port or range of ports make use of the --add-port
option to the firewall-cmd command Line tool. For example, VNC display 4
requires port 5904
to be opened for TCP
traffic.
-
To open a port for
TCP
traffic in the public zone, issue a command asroot
as follows:# firewall-cmd --zone=public --add-port=5904/tcp success
-
To view the ports that are currently open for the public zone, issue a command as follows:
# firewall-cmd --zone=public --list-ports 5904/tcp
A port can be removed using the firewall-cmd --zone=zone --remove-port=number/protocol command.
For more information on opening and closing ports in firewalld
, see the Red Hat Enterprise Linux 7 Security Guide.
Connecting to VNC Server Using SSH
VNC is a clear text network protocol with no security against possible attacks on the communication. To make the communication secure, you can encrypt your server-client connection by using the -via
option. This will create an SSH
tunnel between the VNC server and the client.
The format of the command to encrypt a VNC server-client connection is as follows:
$ vncviewer -via user@host:display_number
-
To connect to a VNC server using
SSH
, enter a command as follows:$ vncviewer -via USER_2@192.168.2.101:3
-
When you are prompted to, type the password, and confirm by pressing Enter.
-
A window with a remote desktop appears on your screen.
If you prefer only encrypted connections, you can prevent unencrypted connections altogether by using the -localhost
option in the systemd.service
file, the ExecStart line:
ExecStart=/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"
This will stop vncserver
from accepting connections from anything but the local host and port-forwarded connections sent using SSH
as a result of the -via
option.
For more information on using SSH
, see OpenSSH.
Recursos Adicionales
For more information about TigerVNC, see the resources listed below.
-
vncserver(1)
— The VNC server manual pages. -
vncviewer(1)
— The VNC viewer manual pages. -
vncpasswd(1)
— The VNC password manual pages.
Want to help? Learn how to contribute to Fedora Docs ›