Cuando montamos nuestro servidor casero buscamos que nos dé unos servicios 24 horas al día los 7 días a la semana. Pero nosotros no tenemos por que estar en casa siempre que necesitemos nuestro servidor dado que nos limitaría su uso. ¿Cómo encontrar a nuestro servidor allá donde estemos.?

Teoría de redes.

(Si no te interesa mucho la teoría salta a la práctica)

Nuestro hogar forma parte de una red privada (LAN). Cada dispositivo de nuestra red domestica tiene una dirección con la que se identifica cuando se comunica en nuestra red. Excepto el router de nuestro operador que tiene dos direcciones. Una para identificarse en nuestra red domestica y otra que le asigna el proveedor para comunicarse con internet.

Cuando requerimos comunicarnos fuera de nuestra LAN salga a internet (WAN), por ejemplo al consultar google. Nuestro dispositivo manda el mensaje al router y este al ver que no está en la LAN envía el mensaje a (WAN) y cuando llega la respuesta la envía al equipo correcto de nuestra (LAN). Pero, ¿Como identificamos nuestro router en internet?

Se juntan dos problemas. El primero es que la ip es un conjunto de 4 grupos de cifras es IPV4 y que las operadoras cambian cada cierto tiempo de ip del router. Para salvar estos problemas sirven los servidores de nombres de dominios dinámicos o DDNS.

Un domino es el nombre que se le asigna a una ip. Por ejemplo www.google.com tiene la ip 172.217.16.238 pero nos es mucho mas fácil recordar www.google.com.

Por ello algunos servidores nos ofrecen el servicio de comunicarles nuestra ip cada vez que esta sea modificada y así poder encontrar nuestro router.
En mi caso me he dado de alta en noip.com y tengo una dirección de este tipo: tudominio.ddns.com

Vamos a la práctica.

Entramos a http://no-ip.com y nos creamos una cuenta seleccionando el nombre de dominio que deseemos.

web de no-ip
Web de no-ip

Para informar al servidor la dirección que tenemos en cada momento podemos usar los clientes que nos facilitan en la web. Otra forma que os voy a enseñar aquí es mediante la api que tienen.

Para ello entramos al servidor por ssh y ejecutamos:

apt-get install curl

Una vez termine de instalar hemos de ejecutar el siguiente comando:

curl -v "https://$tuusuario:tucontraseñ[email protected]/nic/update?hostname=$tudominio.ddns.net"

Hay que tener en cuenta que usuario y contraseña tienen que estar codificados. ayudaros de la web https://www.urlencoder.org/ por ejemplo. Como podéis ver la llamada contra la api la realizamos de forma segura por https.

Ahora vamos a ver como ejecutar este comando de forma automática en el servidor. Para ello seleccionamos en el menú Tareas programadas y añadimos una. Indicamos que se ejecutara a diario como root y en comando indicamos el comando que hemos verificado anteriormente en ssh que funciona.

Añadir tarea programada

Una vez que nos añade el comando en la pantalla aplicamos los cambios.

Aplicar cambios en Tareas programadas

Solo quedará redirigir los puertos que usen los servicios a la ip que tiene el servidor en vuestra LAN. Dependiendo de vuestro router se hace de una forma u otra, consultar la documentación de vuestro operador.
Con ello habremos resuelto cómo encontrar a nuestro servidor allá donde estemos. Espero que os sea de utilidad nos vemos en siguientes entradas.