stringtranslate.com

Computación en red virtual

Logotipo de informática de red virtual

Virtual Network Computing ( VNC ) es un sistema gráfico para compartir escritorio que utiliza el protocolo Remote Frame Buffer (RFB) para controlar de forma remota otra computadora . Transmite la entrada del teclado y el mouse de una computadora a otra, transmitiendo las actualizaciones de la pantalla gráfica , a través de una red . [1]

VNC es independiente de la plataforma: hay clientes y servidores para muchos sistemas operativos basados ​​en GUI y para Java . Es posible que varios clientes se conecten a un servidor VNC al mismo tiempo. Los usos populares de esta tecnología incluyen soporte técnico remoto y acceso a archivos en la computadora del trabajo desde la computadora de casa, o viceversa.

VNC se desarrolló originalmente en el Olivetti & Oracle Research Lab en Cambridge, Reino Unido. El código fuente original de VNC y muchos derivados modernos son de código abierto bajo la Licencia Pública General GNU .

VNC en KDE 3.1

Hay varias variantes de VNC [2] que ofrecen su propia funcionalidad particular; por ejemplo, algunos optimizados para Microsoft Windows u ofrecen transferencia de archivos (no forman parte de VNC propiamente dicha), etc. Muchos son compatibles (sin sus características adicionales) con VNC propiamente dicho en el sentido de que un espectador de un tipo puede conectarse con un servidor de otro. ; otros se basan en el código VNC pero no son compatibles con el VNC estándar.

VNC y RFB son marcas comerciales registradas de RealVNC Ltd. en EE. UU. y algunos otros países.

Historia

El Olivetti & Oracle Research Lab (ORL) [3] en Cambridge, Reino Unido, desarrolló VNC en un momento en que Olivetti y Oracle Corporation eran propietarios del laboratorio. En 1999, AT&T adquirió el laboratorio y en 2002 cerró los esfuerzos de investigación del laboratorio.

Los desarrolladores que trabajaron en VNC mientras aún estaban en el Laboratorio de investigación de AT&T incluyen: [4]

Tras el cierre de ORL en 2002, varios miembros del equipo de desarrollo (incluidos Richardson, Harter, Weatherall y Hopper) formaron RealVNC para continuar trabajando en software VNC comercial y de código abierto con ese nombre.

El código fuente original GPLed se ha incorporado a varias otras versiones de VNC. Esta bifurcación no ha dado lugar a problemas de compatibilidad porque el protocolo RFB está diseñado para ser extensible. Los clientes y servidores VNC negocian sus capacidades mediante protocolo de enlace para utilizar las opciones más apropiadas admitidas en ambos extremos.

A partir de 2013 , RealVNC Ltd reclama el término "VNC" como marca registrada en los Estados Unidos y en otros países. [5]

Etimología

El nombre Virtual Network Computer/Computing (VNC) se originó con el trabajo de ORL en un cliente ligero llamado Videotile, que también usaba el protocolo RFB. El Videotile tenía una pantalla LCD con entrada de lápiz y una rápida conexión de cajero automático a la red. En ese momento, computadora en red se usaba comúnmente como sinónimo de cliente ligero; VNC es esencialmente una computadora de red de solo software (es decir, virtual). [ cita necesaria ]

Operación

En el método de operación normal, un espectador se conecta a un puerto del servidor (puerto predeterminado: 5900). Alternativamente (dependiendo de la implementación), un navegador puede conectarse al servidor (puerto predeterminado: 5800). Y un servidor puede conectarse a un espectador en "modo de escucha" en el puerto 5500. Una ventaja del modo de escucha es que el sitio del servidor no tiene que configurar su firewall para permitir el acceso en el puerto 5900 (o 5800); la responsabilidad recae en el espectador, lo cual es útil si el sitio del servidor no tiene conocimientos informáticos y el usuario espectador tiene más conocimientos.

El servidor envía pequeños rectángulos del framebuffer al cliente. En su forma más simple, el protocolo VNC puede utilizar una gran cantidad de ancho de banda , por lo que se han ideado varios métodos para reducir la sobrecarga de comunicación. Por ejemplo, existen varias codificaciones (métodos para determinar la forma más eficaz de transferir estos rectángulos). El protocolo VNC permite al cliente y al servidor negociar qué codificación utilizarán. La codificación más simple, admitida por todos los clientes y servidores, es la codificación sin formato , que envía datos de píxeles en orden de líneas de escaneo de izquierda a derecha y, una vez transmitida la pantalla completa original, transfiere solo los rectángulos que cambian. Esta codificación funciona muy bien si sólo una pequeña porción de la pantalla cambia de un cuadro al siguiente (como cuando el puntero del mouse se mueve sobre el escritorio o cuando se escribe texto en el cursor), pero las demandas de ancho de banda se vuelven muy altas si hay mucho de píxeles cambian al mismo tiempo (como al desplazarse por una ventana o ver un vídeo en pantalla completa).

VNC utiliza de forma predeterminada el puerto TCP 5900+ N , [6] [7] donde N es el número de pantalla (generalmente: 0 para una pantalla física). Varias implementaciones también inician un servidor HTTP básico en el puerto 5800+ N para proporcionar un visor VNC como un subprograma de Java , lo que permite una conexión sencilla a través de cualquier navegador web habilitado para Java. Se pueden utilizar diferentes asignaciones de puertos siempre que tanto el cliente como el servidor estén configurados en consecuencia. También existe una implementación de cliente HTML5 VNC para navegadores modernos (no se requieren complementos). [8]

Aunque es posible incluso con un ancho de banda reducido, el uso de VNC a través de Internet se facilita si el usuario tiene una conexión de banda ancha en ambos extremos. Sin embargo, puede requerir traducción avanzada de direcciones de red (NAT), firewall y configuración del enrutador , como el reenvío de puertos, para que la conexión se realice. Los usuarios pueden establecer comunicación a través de tecnologías de red privada virtual (VPN) para facilitar el uso a través de Internet, o como una conexión LAN si se utiliza VPN como proxy, o a través de un repetidor VNC (útil en presencia de un NAT). [9] [10]

Xvnc es el servidor Unix VNC, que se basa en un servidor X estándar . Para las aplicaciones, Xvnc aparece como un "servidor" X (es decir, muestra ventanas de cliente) y para los usuarios remotos de VNC es un servidor VNC. Las aplicaciones pueden mostrarse en Xvnc como si fuera una pantalla X normal, pero aparecerán en cualquier visor VNC conectado en lugar de en una pantalla física. [11] Alternativamente, se puede configurar una máquina (que puede ser una estación de trabajo o un servidor de red) con pantalla, teclado y mouse para iniciar y ejecutar el servidor VNC como un servicio o demonio, luego la pantalla, el teclado y el mouse. se puede quitar y guardar la máquina en un lugar apartado.

Además, la pantalla que ofrece VNC no es necesariamente la misma que ve un usuario en el servidor. En computadoras Unix/Linux que admiten múltiples sesiones X11 simultáneas, VNC puede configurarse para atender una sesión X11 existente en particular o para iniciar una propia. También es posible ejecutar múltiples sesiones VNC desde la misma computadora. En Microsoft Windows, la sesión VNC servida es siempre la sesión del usuario actual. [ cita necesaria ]

Los usuarios suelen implementar VNC como un sistema de escritorio remoto multiplataforma. Por ejemplo, Apple Remote Desktop para Mac OS X (y durante un tiempo, " Volver a mi Mac " en 'Leopard' – Mac OS X 10.5 hasta 'High Sierra' – macOS 10.13) interopera con VNC y se conectará a la red de un usuario de Unix. escritorio actual si se sirve con x11vnc , o a una sesión X11 separada si se sirve con TightVNC . Desde Unix, TightVNC se conectará a una sesión de Mac OS X servida por Apple Remote Desktop si la opción VNC está habilitada, o a un servidor VNC que se ejecuta en Microsoft Windows. [12]

En julio de 2014, RealVNC publicó una vista previa para desarrolladores de Wayland . [13] [14]

Seguridad

De forma predeterminada, RFB no es un protocolo seguro. Si bien las contraseñas no se envían en texto plano (como en telnet ), el descifrado podría resultar exitoso si tanto la clave de cifrado como la contraseña codificada se detectaran en una red. Por este motivo se recomienda utilizar una contraseña de al menos 8 caracteres. Por otro lado, también existe un límite de 8 caracteres en algunas versiones de VNC; Si se envía una contraseña que supera los 8 caracteres, los caracteres sobrantes se eliminan y la cadena truncada se compara con la contraseña.

UltraVNC admite el uso de un complemento de cifrado de código abierto que cifra toda la sesión de VNC, incluida la autenticación de contraseña y la transferencia de datos. También permite realizar la autenticación basada en cuentas de usuario NTLM y Active Directory . Sin embargo, el uso de dichos complementos de cifrado lo hace incompatible con otros programas VNC. RealVNC ofrece cifrado AES de alta resistencia como parte de su paquete comercial, junto con integración con Active Directory. Workspot lanzó parches de cifrado AES para VNC. Según TightVNC, [15] TightVNC no es seguro ya que los datos de las imágenes se transmiten sin cifrado. Para evitar esto, se debe realizar un túnel a través de una conexión SSH (ver más abajo).

VNC se puede canalizar a través de una conexión SSH o VPN , lo que agregaría una capa de seguridad adicional con un cifrado más seguro. Los clientes SSH están disponibles para la mayoría de las plataformas; Se pueden crear túneles SSH desde clientes UNIX , clientes Microsoft Windows, clientes Mac (incluidos Mac OS X y System 7 y posteriores), y muchos otros. También existen aplicaciones gratuitas que crean túneles VPN instantáneos entre computadoras.

Una preocupación de seguridad adicional para el uso de VNC es verificar si la versión utilizada requiere autorización del propietario de la computadora remota antes de que alguien tome el control de su dispositivo. Esto evitará la situación en la que el propietario de la computadora a la que se accede se dé cuenta de que alguien tiene el control de su dispositivo sin previo aviso.

Ver también

Referencias

  1. ^ Richardson, T.; Stafford-Fraser, Q.; Madera, KR; Tolva, A. (1998). "Computación en red virtual" (PDF) . Computación de Internet IEEE . 2 : 33–38. CiteSeerX  10.1.1.17.5625 . doi : 10.1109/4236.656066.
  2. ^ La familia VNC de aplicaciones de control remoto: una lista de variantes de VNC
  3. ^ "Preguntas frecuentes (FAQ) de VNC". 1999. Archivado desde el original el 15 de agosto de 2000.
  4. ^ Perfiles ejecutivos de RealVNC
  5. ^ Copyright y marcas comerciales RealVNC. Consultado el 23 de febrero de 2018.
  6. ^ "RealVNC: preguntas frecuentes".
  7. ^ "Configuración UltraVnc".
  8. ^ "noVNC".
  9. ^ "Repetidor OpenWRT VNC".
  10. ^ "repetidor uVNC".
  11. ^ Laboratorios AT&T Cambridge (1999). "Servidor VNC basado en X". Computación en red virtual . Archivado desde el original el 19 de marzo de 2007 . Consultado el 24 de marzo de 2007 .
  12. ^ "Servidor OnlineVNC para sistemas operativos Windows".
  13. ^ "Vista previa para desarrolladores de VNC® Wayland". 8 de julio de 2014. Archivado desde el original el 14 de julio de 2014 . Consultado el 10 de julio de 2014 .
  14. ^ "Correo electrónico de vista previa del desarrollador de RealVNC Wayland". freedesktop.org . 9 de julio de 2014.
  15. ^ ¿Qué tan seguro es TightVNC? Preguntas frecuentes sobre TightVNC. TightVNC.com Consultado el 23 de febrero de 2018.

enlaces externos