Saltar al contenido

ip estatica con no-ip

17 enero, 2020
ip estatica con no-ip desde linux

⛳ ip estatica con no-ip ❤️ desde Linux

Hoy en día tenemos en nuestros hogares muchos dispositivos y servicios que son controlados desde Internet. Establecer una ip estática con no-ip nos puede servir para configurar dispositivos como cámaras, ordenadores, servicios instalados, servidores es muy interesante que nuestro ISP (Proveedor de Servicios de Internet) nos provea de una IP fija, pero lamentablemente para obtener IP fija de nuestro proveedor hay que pagar un extra.

Que necesito para tener una IP fija con No-ip  ✍

Para crear un IP fija en un router con IP dinámica desde Linux debemos instalar el cliente de actualización Dynamic Update Client (DUC) que se encargará de actualizar en la plataforma No-ip en intervalos de tiempo cortos los cambios de ip que se puedan producir en nuestro router. Cuando un cambio de Dirección Ip es detectado, DUC automáticamente actualiza el hostname que hayamos elegido apuntando a dicha IP.

✅ Crear una cuenta No-ip

Debemos crear una cuenta de usuario en https://www.noip.com para asociar posteriormente nuestro usuario y contraseña a un hostname (ejemplo: example.sytes.net) que se actualizará periódicamente con el cliente DUC que instalaremos en el siguiente paso. Actualmente No-IP dispone de 3 cuentas de hostname gratis con periodos de expiración de 30 días, esto quiere decir que debemos ir renovando estos hostname para que no expiren. Para ser gratis está bastante bien según mi punto de vista, además existen scripts para actualizar los periodos de expiración automáticamente.

Configurar cuenta No-Ip ✍ Ip estática en router

Una vez logueado en la web de No-Ip.com procederemos a crear el hostname para asignar la dirección ip de nuestra Red a ese nombre que elijamos llamado hostname.

crear hostname no-ip
crear hostname no-ip

En este apartado estableceremos un nombre de hostname que no esté en uso por otro usuario para el dominio que elijamos. Seguidamente seleccionamos DNS Host(A) y nos mostrará la IP pública de nuestro router. (ver definición IP pública)
Hemos creado el hostname asociado a nuestra IP pública actual !!!! 🙌🙌 Ya tenemos la parte más importante de la configuración y ahora pasaremos a configurar el Cliente de Actualización de IP Dinámica para que cuando cambie la IP pública de nuestro router nos lo asocie a nuestro hostname.

🔥 Instalación del cliente No-ip en Linux ⇨ IP estática en router

  1. Descarga el cliente DUC y salva en el fichero: /usr/local/src
  2. Abre el terminal y ejecuta lo siguiente:
    • cd /usr/local/src
    • tar xzf noip-duc-linux.tar.gz
    • cd no-ip-2.1.9
    • make
    • make install
Auto configuration for Linux client of no-ip.com.
Multiple network devices have been detected.
Please select the Internet interface from this list.
By typing the number associated with it.
0 enp1s0
1 docker0
Please enter the login/email string for no-ip.com juanjo@rosquete.es
Please enter the password for user 'juanjo@rosquete.es' **********
Only one host [rosquete.sytes.net] is registered to this account.
It will be used.
Please enter an update interval:[30]
Do you wish to run something at successful update?[N] (y/N) N
New configuration file '/tmp/no-ip2.conf' created.
mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf
  1. Fichero de configuración: /usr/local/bin/noip2 -C
  2. Una vez dentro del script, introducir usuario y password de No-ip de la cuenta creada en el paso anterior.
  3. Lanzar DUC: /usr/local/bin/noip2

Asignar nuestro dominio al alojamiento privado

Ahora viene una parte muy importante para finalizar la instalación. Necesitamos que nuestro dominio, por ejemplo www.rosquete.es apunte a ese hostmane que hemos creado y que a su vez apunta a la Ip dinámica que se irá actualizando con el cliente (DUC) que hemos instalado en los pasos anteriores. Suena complicado! pero si.. es así.
Para ello vamos a la configuración DNS de nuestro dominio y añadimos en el registro CNAME el hostmane de no-ip. Así podremos redirigir el dominio propio a el hostname que actualiza nuestra ip dinámica constantemente.

➕ Definiremos  IP pública y IP Privada.

La ip pública es la dirección que entiende internet (WAN) para llegar a nuestro router y la IP privada es la dirección (normalmente 192.168.0.1) para llegar al router desde nuestra red privada (LAN).

Iniciar el cliente con el arranque desde Linux

Ahora que tenemos funcionando el cliente, pero nos interesa que cada vez que arranquemos el equipo no tener que ejecutar el comando manualmente, automatizarlo.
Procederemos a crear un script dentro de «/etc/init.d» con este comando:

# sudo nano /etc/init.d/noip2

Y pegamos en él este código:

#! /bin/sh
# /etc/init.d/noip2
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# Updated by David Courtney to not use pidfile 130130 for Debian 6.
# Updated again by David Courtney to "LSBize" the script for Debian 7.
### BEGIN INIT INFO
# Provides:     noip2
# Required-Start: networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start noip2 at boot time
# Description: Start noip2 at boot time
### END INIT INFO
# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc
DAEMON=/usr/local/bin/noip2
NAME=noip2
test -x $DAEMON || exit 0
case "$1" in
    start)
    echo -n "Starting dynamic address update: "
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;
    stop)
    echo -n "Shutting down dynamic address update:"
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    echo "noip2."
    ;;
    restart)
    echo -n "Restarting dynamic address update: "
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
exit 0

Salimos guardando los cambios y le damos permisos de ejecución:

# sudo chmod +x /etc/init.d/noip2

Lo añadimos al inicio con el comando:

# sudo update-rc.d noip2 defaults

Y listo !! Podemos comprobar que está funcionando con el comando:

# sudo /usr/local/bin/noip2 -S

La salida del comando con la opción Status quedaría algo como lo siguiente:

Process 16819, started as /usr/local/src/noip-2.1.9-1/noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set 80.60.130.170
Account ccccc@rosquete.es
configured for:
	host  xxxxxx.sytes.net
Updating every 30 minutes via /dev/enp1s0 with NAT enabled.