Llevaba tiempo buscando una solución para poder encender el servidor desde el móvil a través de 3G, sin embargo por muchas opciones que configuraba en el router y en el móvil, nunca conseguía encenderlo por WAN, sólo desde red local.
Y estos días, a partir de una entrada de el androide libre y de un hilo de htcmania, me ha quedado claro que se puede hacer pero que algo me fallaba.
Por lo visto, con configurar el router para que redirija todo el trafico del puerto 9 hacia la IP del ordenador no es suficiente, en algunos router si, pero en la mayoría se necesita editar la tabla ARP. Esta tabla se encarga de almacenar la relación que hay entre una IP y su MAC. La tabla se borra al apagar el router, y se rellena sola al encenderlo y según se van conectando los ordenadores.
Si sólo fuera eso no tendríamos muchos problemas, pues mientras no apaguemos el router y el pc ya este en la tabla debería de irnos. Pues no, o al menos no en todos los casos, parece que antes de enviar el paquete mágico al ordenador antes comprueba si la asociación sigue siendo correcta, sin embargo como el ordenador esta apagado, éste no puede responder y al no haber respuesta el router no le envía el paquete mágico que lo encendería.
Para solucionar esto se debe editar la tabla ARP añadiendo esa relación a mano para que así sea estática y el router no tenga que hacer ninguna comprobación más.
Ahora viene otro problema, esto tabla no se puede editar normalmente desde la interfaz web del router, y para ello hace falta hacerlo vía comandos desde Telnet/SSH.
Muchos pensaran, bueno, pues me conecto por Telnet/SSH, lo configuro y listo. Pues tampoco ya que no todos los routers se pueden configurar vía Telnet/SSH, por lo visto si es un router de ADSL es mas que probable que si se pueda, pero en mi caso es un router neutro y aquí si que es más difícil.
Para solucionar este otro contratiempo podemos mirar si en la web del fabricante hay alguna actualización del firmware que lo implemente. En caso contrario, tendremos que resignarnos… o si nos atrevemos podemos intentar sustituir el firmware original por otro de terceros.
Sabiendo como soy, no me iba a quedar con los brazos cruzados, además de que mi hermano esta ya hasta la coronilla de encender el ordenador cada vez que le llamo por el móvil xD
Así que he actualizado el firmware del router por el DD-WRT, mi router es un WRT320N y puesto que hay un firmware compatible para él no me lo he pensado mucho.
Para actualizar lo haremos como de si un firmware original se tratase, aunque si que debemos de seguir unos pasos para asegurarnos que no nos de problemas.
Lo primero es apuntarnos en papel todas las configuraciones que tengamos en el router, pues las vamos a perder. A continuación iremos al menú de administración, y desde allí a actualizar firmware. Un punto muy importante es que si lo vamos a actualizar debemos de hacerlo con la versión “mini” del firmware, y si por lo que fuese necesitásemos funciones del firmware estándar/genérico lo actualizaríamos a continuación, pero siempre pasando antes por la versión “mini”, ya que por lo visto debe de haber alguna limitaron en cuanto al tamaño del fichero y el firmware original no lo graba bien. Por eso mismo usamos la versión mini que pesa la mitad de MB y una vez lo tenemos ya actualizamos a la siguiente versión pues ya no existe esa limitación de tamaño.
También recomiendan antes de actualizar dejar el router con la configuración de fábrica, es decir, resetearlo. Y una vez actualizado el firmare también he leído que es recomendable hacer otro reseteo con el nuevo firmare y ya por ultimo configurarlo al gusto.
Ahora, por fin, ya puedo meterle mano a todo para hacerlo funcionar, voy a explicar desde cero lo que hay que configurar, en el ordenador, router y móvil.
Ordenador:
Necesitamos que la BIOS/tarjeta de red soporte la función de Wake On Lan (WoL), esto podemos buscarlo por los diferentes menús, puede estar por las opciones de los buses PCI, administración de energía… esto varia mucho así que lo mejor es mirárselo todo bien mirado. Puede que no aparezca, pero eso no quiere decir que no lo soporte, por ejemplo mi ordenador desde el que escribo no aparece nada y no lo soporta, sin embargo, el servidor, tampoco aparece nada en la bios pero si que lo soporta y va perfectamente.
Router:
Ahora, si lo que queremos es encender el ordenador desde área local, no hace falta configurar nada.
En cambio, si lo queremos encender desde internet, por ejemplo con el móvil conectado por 3G o por el wifi de otra red, si que deberemos de configurar bastantes cosas.
DHCP
Debemos de asignarle al ordenador que queremos encender una IP estática para que este siempre localizable y no se le vaya alternando por otra.
Para ello, en mi router con DD-WRT, aunque con el resto será parecido, debemos de ir a “Servicios”, “Servidor DHCP”, y en el apartado “IPs Privadas Estáticas” tendremos que añadir la MAC del ordenador y la IP que queremos que tenga siempre.
DDNS
Mas adelante cuando tengamos que configurar el programa del móvil necesitaremos saber la IP publica que tiene nuestro router, el problema que tenemos es que esta IP suele cambiar bastante, por ejemplo si tenemos internet por ADSL la IP publica cambia cada vez que reiniciamos el router y de forma automática cada x tiempo. En el caso de internet por cable, ono, la IP suele cambiar cada dos semanas o así. Cada uno tiene sus ventajas e inconvenientes, en cualquier caso, lo que nos interesa en este punto es saber siempre qué IP tenemos.
La forma de conseguirlo es usando un servidor de nombres de dominio dinámico. De qué trata esto? Pues trata de configurar el router para que mande su IP publica a una web en la que previamente nos habremos registrado (de forma gratuita o de pago, según web) en la cual se nos facilitara un nombre de dominio que apuntara siempre a nuestro router. Por ejemplo miordenador.dyndns.com = 84.50.100.30, que es nuestra IP.
Para ello hay que ir a la pestaña “Configuración”, “DDNS”, elegir nuestro servidor DDNS favorito y rellenar todo lo que se nos pide (datos que tendremos después de registrarnos en la pagina web de ese servidor DDNS).
En mi caso de la IP ya se encarga el servidor y no el router así que no lo tengo configurado aquí.
NAT
Cada aplicación que ha de usar internet tiene asignado un puerto por el que escucha toda la información que le llegue, de forma que si por ejemplo, tenemos un servidor web en casa, necesitaremos abrir el puerto 80, ya que los clientes se conectaran a él a través del navegador de internet.
En este caso necesitamos redirigir todo el trafico asociado al puerto 9 (realmente podemos usar cualquier puerto, aunque lo normal es usar el 7 o el 9) hacia la IP de nuestro ordenador. Así cuando mandemos el paquete mágico el router lo recibirá por la IP pública y lo reenviara al puerto que hayamos indicado en el programa del móvil.
Si en casa tuviésemos dos ordenadores, tendremos que abrir un puerto para un ordenador y otro puerto distinto para el segundo ordenador, cada uno escuchara su paquete mágico por el puerto correspondiente.
Para esto hay que ir a la pestaña “NAT / QoS”, “Redireccionamiento de Puertos” y agregar el puerto que nos interese.
ARP
Ahora, antes de seguir, podemos probar si ya nos funciona, en caso afirmativo, asegurarse de que reiniciando el router siga funcionando. Si no tenemos esa suerte tendremos que seguir con el siguiente punto:
Como puse arriba, ARP se encarga de guardar en una tabla todas las MACs y su correspondiente IP de aquellos equipos que hayamos conectado al router.
Para que el router pueda mandarle el paquete mágico al ordenador necesitamos que la relación entre la MAC y IP del ordenador sea estática.
Para ello tenemos que acceder por Telnet al router, o si nos lo permite el router desde “Administración”, “Diagnostico” en donde podremos mandar comandos como desde la ventana de Telnet/SSH.
El comando es el siguiente:
ip neigh add 192.168.1.2 lladdr 00:00:00:00:00:00 nud permanent dev br0
Y para comprobar si se a aplicado el cambio:
arp -n
Donde 192.168.1.2 es la IP de nuestro ordenador que asignamos en el DHCP del router, y 00:00:00:00:00:00 es la MAC de la tarjeta de red del ordenador que queremos encender.
Otro problema que hay aquí, al menos en mi caso no se si en el resto de routers, es que aunque en el comando ponga la palabra “permanent”, al reiniciar el router se borrara igualmente la entrada, en mi firmware se permite guardar unos comandos predefinidos que se ejecutan cada vez que se reinicia el router, así que aunque se borre al apagar, al encender se configura de nuevo : )
Móvil:
Y por fin, llega la mejor parte, encender el ordenador desde el móvil, para ello podemos bajarnos una de las múltiples apps que hay disponibles, en mi caso para Android uso este que es gratuito y se baja del market en un momento.
Tendremos que configurar los campos de la siguiente forma:
Y ya esta todo, en principio con esto deberíamos de haberlo conseguido.
Hola,
Soy el autor del hilo mencionado en El Androide Libre.
Cuando empecé a escribir sobre este tipo de artículos decidimos que había que ‘obviar’ todo lo relativo a configuración del router, porque entonces nos saldríamos del tema o se prolongaría excesivamente en los comentarios, y no es el objetivo del blog hablar de ello.
En cualquier caso tu post está muy bien explicado y lo voy a añadir como referencia extra al final del mío.
Buen trabajo!
Lo cierto es que tuviste mucha suerte de que te fuera a la primera. En el hilo de htcmania íbamos todos locos por conseguirlo xD
no creo que sea suerte lo que tuvo, el tío se lo curró
vale… he releído y lo he entendido. Eso me pasa por no leer todo bien.
retiro lo dicho….
Buf!! Ahora sí que sí. Puedo reactivar el ordenador y posteriormente manejarlo con un programa de escritorio remoto. A parte de lo útil que se me presenta, es posible que en iphone se pueda hacer pero vamos, lo vana flipar un par de amiguetes… jejeje. Esto me parece el sumun!!!!!!!!!!!!!
Por cierto!!! jajaja, que se me olvidaba con la emoción. Muchas gracias por la info!!! tuve suerte y me salió a la primera. Veré ahora como resuelvo lo de la IP. Muchas gracias por este fantástico aporte!!!!!!!!!!!
Me alegra que te haya servido.
El wake on lan lo puedes hacer con cualquier móvil que se pueda conectar a la red local/internet y permita instalarle un programa que mande los paquetes: Android, ios, windows mobile, symbian…
Gracias por la información, solo tengo un problema no e podido hacer el wake on wan solo el wake on lan y tengo todo configurado exactamente como el tutorial incluso utilizo la dirección web con no-ip.org de forma local y funciona pero desde Internet no, espero su respuesta gracias.
La pruebas las realice con un android.