30 mar 2012

Tutorial - Encender un ordenador remotamente desde Android



Router comtrend CT 5261Es posible que alguna vez necesitemos conectarnos al equipo de nuestra casa ya sea a través de un cliente de ssh, vnc, ftp o cualquier otro. El único problema de esto es que o sabemos a priori cuando lo vamos a necesitar o por el contrario lo dejamos siempre encendido, con lo que nuestra factura de la luz se verá sensiblemente perjudicada. Lo que a continuación os explico es una forma de solventar este problema configurando el router, el equipo y nuestro teléfono móvil para encender el ordenador desde cualquier lugar. Este mini tutorial lo he realizado con un Nexus One (teléfono con  Android) un equipo con Linux (Kubuntu 9.10) y el router Comtrend CT-5361 (típico de telefónica)


Bueno, basta ya de tanta palabrería y vamos a ponernos manos a la obra.
1.- Lo primero es configurar la BIOS del equipo que debe encenderse para que sea capaz de despertar tras una señal de la tarjeta de red. Hay muchos modelos de BIOS, pero tenéis que buscar alguna sección donde ponga power y buscar algo parecido a “Resume on Lan”.  Como ejemplo y referencia os dejo una imagen de la mía.  
BIOS
2.- Como segundo paso, deberemos decirle a nuestra tarjeta de red que aunque el ordenador se apague totalmente, se quede activa recibiendo posibles paquetes de datos. Para hacer esto, tenemos que poner la tarjeta en modo wol y repetirlo cada vez que arranque el PC. Así que para hacerlo sólo una vez y no preocuparnos más de este tema, creamos un script en el directorio /etc/init.d/ que se llame por ejemplo “wakeonlan” y le introducimos el siguiente código:
#!/bin/bash
ethtool -s eth0 wol g
exit
Una vez creado el script le damos permisos:
chmod a+x /etc/init.d/wakeonlan
Y le indicamos que lo ejecute siempre que arranque el pc
sudo update-rc.d wakeonlan defaults
3.- Bueno, ya tenemos configurado la BIOS y nuestro querido Linux, ahora le toca el turno al router. La parte que hay que tocar es la tabla arp. Esta tabla guarda una lista que relaciona las ips que se conectan a el y dirección MAC del equipo. El problema es que si el equipo se apaga, el router al cabo de un tiempo eliminara esta relación y ya no será capaz de mandar ningún paquete a la dirección MAC de nuestro ordenador. Para solucionar esto, debemos acceder al router vía telnet e introducir nosotros esta relación manualmente. En el Comtrend CT5361 deberemos hacer lo siguiente:
telnet 192.168.X.X
arp add 192.168.X.X  00:00:00:00:00:00
Sustituiremos las X.X por la dirección ip del equipo y el valor 00:00:00:00:00:00 por la dirección MAC del mismo. Para saber la mac de nuestra tarjeta de red utilizamos el comando: “ifconfig eth0”
Lo último que tenemos que tocar en el router es el NAT. Debemos abrir un puerto (el que queramos por defecto es el 9) por UDP a nuestro equipo.
4.- Por fin el último paso y el más sencillo ;-) Llegamos a la parte de Android. En nuestro teléfono tan solo tenemos que instalarnos una aplicación capaz demandar paquetes mágicos, por ejemplo el “Wake on Lan” que es gratuita y está en el market y configurar la llamada a nuestro ordenador. Tras indicarle una MAC (la de nuestro equipo), una ip (podemos configurar dyndns.org)  y un puerto, mandará dicho paquete y nuestro equipo despertará de su plácido sueño.
Una vez conseguido esto y haber encendido el ordenador, podremos controlarlo desde Android con diferentes aplicaciones, entre ellas el “ConnectBot” que es muy interesante para conectarse vía ssh o distintos clientes de ftp, vnc y muchos más.
via:geekool.com