Seguro que en mas de una ocasión os ha llamado algún conocido o familiar para que le solucionéis algún problema con su querido ordenador.
Al grito de «como tu entiendes de ordenadores» cualquier excusa es buena para hacerte ir a su casa a solucionar lo que en ese momento quiera que le pase al equipo [ y es que leer en Internet soluciones a problemas no entra dentro de sus habilidades técnicas 😦 ]
Para evitar desplazamientos innecesarios que te hacen perder más tiempo del que necesitas para solucionar el fallo quiero explicaros cómo usar VNC para conectar remotamente al equipo, siempre y cuando le funcione la conexión a Internet 😉
¿Por qué conexión inversa?
Debido a firewalls y routers no nos queda mas remedio que abrir algunos puertos para poder establecer la conexión entre los equipos y, partiendo de la base que la persona a la que vamos a ayudar anda corta de recursos, dudo que sepa cómo hacerlo.
La idea de la conexión inversa por VNC (o reverse VNC connection) es que el puerto que se abra sea el de nuestro router (port forwarding) evitando molestias (y explicaciones innecesarias) a nuestro «cliente» (permitidme que a partir de ahora llame así a la persona que vamos a ayudar remotamente).
Instalación en casa del «cliente»
Lo único que tenemos que pedir al «cliente» es que ejecute en su terminal (supondremos que sabe copiar y pegar y puede abrir una terminal… en caso contrario, te vas a tener que dar un paseo a su casa y, ya que estás allí se lo instalas para no tener que volver)
sudo apt-get install x11vnc
Configuración en nuestra casa
Lo primero que tenemos que hacer es habilitar alguno de los puertos habituales de VNC (5500, 5800 y 5900, aunque podría ser el que te diese la gana) en nuestro router y apuntar (gracias a las reglas NAT del router) a nuestro ordenador.
Esta operación depende del router que tengas así que lo mejor será que te indique una web donde consultar (en perfecto inglés) cómo hacerlo en tu aparato concreto.
Nos preparamos para atender al «cliente»
La configuración anterior sólo tendremos que hacerla una vez (con suerte e ip fija), si tuviésemos ip dinámica (dhcp) lo mismo te va a tocar hacerlo n-cientas veces; tampoco hay que exagerar: los routers suelen traer la posibilidad de configurar el port forwarding en base a la MAC del equipo evitando de ese modo el problema del dhcp. Como la solución depende del router que tengas dejaré su estudio a la curiosidad del lector y a un posible artículo posterior para no extendernos más de lo que ya lo hemos hecho.
Antes de poder atender al «cliente» deberás ejecutar en tu equipo un
vncviewer -listen
y con esto ya tendremos nuestro ordenador esperando la conexión del cliente en el puerto 5500; si el puerto que abriste en el router en el paso anterior es, por ejemplo el 7089 deberás ejecutar
vncviewer -listen 7089
Que comience el espectáculo
Ahora que ya tenemos abierto el puerto y vnc listo para recibir conexiones debemos indicar al «cliente» que ejecute un
x11vnc -connect TU_IP_EXTERNA:5500
donde
- TU_IP_EXTERNA es la dirección IP de tu ordenador; puedes obtenerla siguiendo las instrucciones que dimos en su momento para obtener la ip externa (en la página que hemos recomendado para el port forwarding también te la muestra)
- 5500 es el puerto que hemos abierto en el router; si has puesto otro como 7089 ya sabes que debes cambiarlo
Una vez que el «cliente» ejecute esa instrucción automáticamente aparecerá su escritorio en nuestro ordenador y éste flipará viendo cómo le movemos el ratón y comenzamos a abrir ventanas remotamente 🙂
Resumiendo
Aunque pueda parecer excesivamente complejo (por la longitud del artículo), el proceso queda reducido a:
- Abrir puerto en nuestro router (una sola vez y queda para toda la vida)
- Ejecutar en nuestro equipo un vncviewer -listen
- Instalar (sólo la primera vez) en casa del cliente x11vnc (ejecutando sudo apt-get install x11vnc)
- Pedir al cliente que lance un x11vnc -connect TU_IP_EXTERNA:5500
El paso más complicado va a ser, con total seguridad, conseguir abrir el puerto en el router pero recuerda que con las instrucciones que aparecen en la web de port forward y la herramienta que recomendamos utilizar para comprobrar puertos abiertos tendrás más que suficiente para conseguirlo. Si aun así tuvieses problemas ya sabes dónde encontrarme 😉
Hola, buenísimo este artículo, creo que es uno de los mejores que he visto y como siempre, todo tan fácil en Ubuntu, gracias a gente como tú.
Una pequeña observación sería, si el cliente usa «el ventanucos» como sería.
Imagino que algo más complicado o quizás con freenx-server y su respectivo cliente nxclient (para windows) solucionamos la conexión??
Me gustaMe gusta
Gracias Paco, me alegra que te haya gustado el post.
Respecto a la conexión con clientes que usan el «ventanuco» lo he resuelto utilizando tightVNC.
No he escrito ningún artículo al respecto porque no cuento con «ventanucos» para hacer las pruebas necesarias pero cuando tuve la oportunidad lo monté sin problemas y, cosa extraña, funcionó a la primera 😉
Me gustaMe gusta
Articulo de gran utilidad si señor.
Solo tengo una duda: Se podrian intercambiar archivos entre el viewer y el listen?
Me gustaMe gusta
Con vnc no pero se me ocurren varias posibilidades: uso de p2p, netcat, servicios gratuitos de alojamiento web, nfs habilitando el correspondiente puerto
De ellas considero que la primera podría ser la más sencilla si no quieres complicarte demasiado la vida 😉
Me gustaMe gusta
Yo tengo un ordenador con Ubuntu dentro de una red local al que puedo acceder por ssh desde un servidor conectado a Internet desde el cual también he accedido por ssh. Es decir, primero hago ssh a un ordenador y luego desde ahí hago ssh a otro ordenador.
¿Se puede lanzar x11vnc –connect ip:port en esta situación, teniendo vncviewer -listen desde el ordenador que estoy?
Me gustaMe gusta
@jorquera, ¿tienes permiso para ejecutar aplicaciones gráficas en el servidor que comentas?
Normalmente te dan acceso FTP y, en algunos casos SSH.
Un saludo
Me gustaMe gusta
El servidor es mio y puedo tener los permisos que hagan falta.
Se trata de un servidor ubuntu que conectado a un router monpuesto punto a punto. A partir de este servidor entro a toda la red local del Instituto.
Lo que pretendo es administrar con vnc el escritorio de los equipos de la red local desde Internet.
Me gustaMe gusta
No te recomiendo «llevarte» el trabajo a casa 😉
No obstante, ¿te valdría con ejecutar gráficamente aplicaciones individuales o es imprescindible poder controlar el entorno de ventanas completo?
Me gustaMe gusta
Desde la red local accedo con ssh -X y puedo ejecutar aplicaciones gráficas, pero ya no es así desde fuera ya qua hago doble ssh y el servidor no tiene entorno gráfico.
Quisiera poder controlar el entorno de ventanas para mayor comodidad, pero no lo consigo.
Me gustaMe gusta
@jorquera, ahora que ando en «modo vacaciones» podríamos echarle un vistazo al tema para ver si lo solucionamos antes de que acabe el año 😉
Si te parece, para no alargar mucho los comentarios de este post, mándame un correo y lo tratamos a título personal.
Una vez solucionado (si tenemos suerte) y al personal le interesa, podemos publicarlo como artículo para que quede constancia
¿Te parece?
Me gustaMe gusta
Hola jasvasquez.
Actualmente manejo un servidor con ssh que me funcionaria de las mil maravillas si no tuviera que utilizar gnome para configurar dos impresoras y un scaner que tengo en mi red. He instalado gnome, x11vnc y xorg, pero no he logrado hacer que tightVNC funcione. El error el el servidor es
wait_for_client: got client
wait_for_client: running: env X11VNC_SKIP_DISPLAY=» /bin/sh /tmp/x11vnc-find_display.8Ubpah
wait_for_client: find display cmd failed
wait_for_client: FINDCREATEDISPLAY cmd: /bin/sh /tmp/x11vnc-find_display.8Ubpah Xvfb
trying N=20 …
wait_for_client: read failed: /bin/sh /tmp/x11vnc-find_display.8Ubpah Xvfb
fgets: Bad file descriptor
Espero me puedas ayudar. (aunque el post sea viejo es util)
Me gustaMe gusta
¿Has probado el parámetro -X en SSH para ejecutar aplicaciones gráficas remotamente?
Un saludo @Braiam
Me gustaMe gusta
Lo intente usando el tutorial https://help.ubuntu.com/community/VNC#Accessing your PC over the Internet, y no me funciono.
Realmente creo que el problema es de Xorg puesto que antes del error aparece la pantalla.
Me gustaMe gusta
Lo logre! Siguiendo el mismo tutorial busque mas abajo hasta llegar a Accessing a family PC over the Internet, corri sudo x11vnc -safer -localhost -nopw -once -auth /var/lib/gdm/:0.Xauth -display :0 en PuTTy y luego hice un forward según las instrucciones y voila!
Gracias de todos modos!
Me gustaMe gusta
Luego de (intentar) logearme me tiro error y por poco lo dejo así, por suerte soy terco y lo intente nuevamente, y ¡funciono!
Me gustaMe gusta
Bien está lo que bien acaba.
Enhorabuena @Braiam y gracias por compartirlo con los demás.
¿¡¿Putty?!? uy , uy… eso me suena a «ventanuco» 😉
Me gustaMe gusta
Lamentablemente así es. En mi pais no se acostumbran a los cambios. Pero yo he tenido la oportunidad de probarlo todo (lease Mac, Window$ desde 3.11, y Linux).
Me gustaMe gusta
No te preocupes @braiam, no te lo tendremos en cuenta 😉
Me gustaMe gusta
Me siento aliviado.
Me gustaMe gusta
Excelente este articulo, apenas ayer tenia este problema y hoy sin andar buscando obtuve la solucion.
Saludos!
Me gustaMe gusta
hola a todos, estupendo tutorial, pero tengo una pequeña consulta, soy profesor de informatica de una escuela normal superior en pamplona colombia. todas las maquinas de mi aula usan ubuntu 9.10 y aplique el contenido del tutorial para poder mostrarle en cualquier momento a mis estudiantes lo que estoy haciendo en mi pc, asi explico las clases como si mi salón tuviera un video beam, pero tengo un problema que he buscado y aun no logro resolver. No se ve el puntero de mi mouse en los demás escritorios.
Me gustaMe gusta
En el centro TIC en el que trabajaba utilizábamos el cañón virtual que igual te sirve de referencia.
Suerte y un saludo @Javier
Me gustaMe gusta
Existen webs como http://www.no-ip.com, para redireccionar hacia aquellas ips que son dinamicas. El software que proveen a los equipos clientes direccionados es para distintas plataformas Linux, Windows o Mac. de forma que cuando cambia tu ip (configurables los tiempos de comprobación), informa a http://www.no-ip.com de tu nueva ip. El cliente siempre debería teclear p.ejmplo: x11vnc -connect tusitio.definido:5500 y de esta forma no tendríamos que averiguar la ip para facilitarsela al cliente.
Me gustaMe gusta
Veo que ya habéis peleado bastante con el tema 😉
Me gustaMe gusta
Si les interesan softwares de conexión a escritorio remoto, quizá quieran tratar también con Ammyy Admin (http://www.ammyy.com/), no requiere instalación, registrarse o ajustes de configuración específicos.
Me gustaMe gusta
A lo mejor les gustaría tratar también con Ammyy Admin (http://www.ammyy.com/), no requiere instalación, registrarse o ajustes de configuración específicos.
Me gustaMe gusta