BEST OF THE BEST Update 4/12/2019 Perforació[…]

Un nuevo mundo

Buenos días, después de un par de Ra[…]

Hola, Tengo una Raspberry Pi 3B+ con Retropie y no[…]

Sección Unicamente para Tutoriales y Guías
#63857
Buenos días.

Escrito este "Tutorial" porque me he visto en la necesidad de realizar esto en mi raspberry pi... y decidí poner aquí como lo hice por si le viene bien a alguien. NOTA: esto lo estoy escribiendo a día 16/10/2017, si cuando leas esto han pasado 3 años o mas es posible que no coincida con la actualidad.

Estaba (y estoy) harto de No-IP que cada mes hay que confirmar el host, o si no no actualiza, etc.... así que busqué una alternativa Gratuita..... y encontré esta.

Antes de que nadie me diga "Estas robando" o alguna cosa de estas que dicen en los foros, esto es una "transcipción" básicamente de lo que se indica en esta pagina.

https://thelastmaimou.wordpress.com/201 ... s-service/

Yo esto lo estoy realizando en una Raspberry PI con OSMC. Pero tiene que funcionar casi en cualquier sistema linux, salvo Libreelec y similares que traen el sistema de ficheros capadisimo...

1º Crear usuario en Freedns

-Entrar en la url Freedns.afraid.org (DNS Dinamico Gratuito)
Nota. si no aparece esta pagina entrar en mail menu normal y como no tendras usuario y contraseña indicara para que hay que logarse y debajo pondrá un texto como "Setup an account here" pinchar en el.
-Rellenar los datos
-En el correo indicado revisar, pues tiene que llegar un mail para confirmar la creación de la cuenta . En algunos correos puede llegar en SPAM o Correo no deseado.
-Confirmar la cuenta.

2º Crear Subdominio.

-Acceder a la URL https://freedns.afraid.org
-En el lateral izquierdo de la pagina pinchar en "[ Subdomains ]" (Si no estas Logado pedira usuario y clave)

Imagen

-Pinchar sobre "Add" para crear uno nuevo (Es posible que si no tienes ninguno aparezca directamente la opción de crear)

Imagen

-Rellenar los datos (Mantener como Type A).

Imagen
En este ejemplo quedaría de la siguiente manera "DominioDePrueba.mooo.com"

NOTA - Si no os gusta los nombres que propone desde ahí es posible elegir un nombre entre varios miles. pinchando en [ Registry ] y eligiendo entre los miles de posibles "dominios" cedidos y rellenando los datos.

Imagen

3º Obtener dirección de actualización de IP.
-En el lateral izquierdo pinchamos sobre [Dynamic DNS]
-En la parte inferior de la pagina nos mostrara el/los dominios creados.
-En cada dominio aparecerán varias opciones, una de ellas es "Direct URL"

Imagen

-Pulsamos botón derecho sobre esa opción y "Copiar Enlace" (Dependiendo del navegador puede aparecer de otra manera)
-Copiamos nos tendremos que quedar con el hash que hay a partir de la Interrogación "?"
Sera un "chorizo como" "https://freedns.afraid.org/dynamic/upda ... 4gw3tggs3S[/b]" (o similar)

4º Crear Script para actualización.

NOTA: Si usas OSMC tendras que instalar desde su "tienda" (gratis) el servicio Cron.

- Acceder a una terminal de nuestra Raspberry (Putty ssh o si tienes un raspbian de escritorio o similar abriendo la terminal)
-Crear un script en la carpeta /etc/cron.d , yo uso nano para editarlo .
Código: Seleccionar todo
sudo nano /etc/cron.d/freedns_update.sh
Se abrirá un editor, copiamos este contenido.
Código: Seleccionar todo
#!/bin/sh
# freedns_update.sh: Update the public IP on freedns.afraid.org only if it has changed.
## Place this script in the cron's job directory /etc/cron.d and assign the proper permissions
## and owner
## sudo chmod 500 /etc/cron.d/freedns_update.sh
## sudo chown root:root /etc/cron.d/freedns_update.sh
## Add to /etc/crontab to execute on reboot and every 5 minutes
## Edit /etc/crontab and append these two lines:
## @reboot root /etc/cron.d/freedns_update.sh >/dev/null
## */5 * * * * root /etc/cron.d/freedns_update.sh >/dev/null
 
#Use your own values
DOMAIN=raspberry.liar.info.tm
HASHKEY=c29Q2s1Ml9df604bba2b1359ff62MTEyMT185e7=
 
UPDATE_URL="http://freedns.afraid.org/dynamic/update.php?${HASHKEY}"
    
current_ip=$(wget -q --output-document - http://checkip.dyndns.org | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')
registered_ip=$(ping -qn -c 1 $DOMAIN | head -n 1 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')
 
if [ "${current_ip}" != "${registered_ip}" ]; then  
   wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --output-document /dev/null $UPDATE_URL
   if [ $? -eq 0 ]; then
     echo "$(date +"%b %_d %T") $(hostname) $0: IP address updated on freedns.afraid.org: new IP '${current_ip}', old IP '${registered_ip}'" >> /var/log/messages
   else    
     echo "$(date +"%b %_d %T") $(hostname) $0: ERROR IP address could not be  updated on freedns.afraid.org: current IP '${current_ip}', registered IP '${registered_ip}'" >> /var/log/messages
   fi
fi
-Reemplazamos lo siguiente:
Código: Seleccionar todo

   DOMAIN=Por el Subdominio que hemos creado en el paso 2
   HASHKEY=Por lo que hay a partir de la ? en Direct URL

Pulsamos Si estamos usando nano
CTRL + o (para guardar)
CTRL + x (Para salir del editor)

-Ahora damos permisos de ejecución al fichero
Código: Seleccionar todo
sudo chmod 555 /etc/cron.d/freedns_update.sh
NOTA: En la URL de la que indico que saqué esta información pone chmod 500 y que se le cambie el usuario a root. , esto es por seguridad, para evitar que se modifique el archivo y que como lo lanza Cron se ejecute con permisos elevados alguna opción que no deseamos, si quereis "seguridad modo paranoya"
Código: Seleccionar todo

sudo chmod 500 /etc/cron.d/freedns_update.sh
sudo chown root:root /etc/cron.d/freedns_update.sh

5º Crear tarea programada

Si hemos ubicado el archivo donde se indica en /etc/cron.d ... realizamos lo siguiente
Código: Seleccionar todo
sudo nano /etc/crontab
bajamos al final del archivo y añadimos las siguientes lineas.
Código: Seleccionar todo
@reboot         root    /etc/cron.d/freedns_update.sh >/dev/null
*/5 *   * * *   root    /etc/cron.d/freedns_update.sh >/dev/null
CTRL + o (para guardar)
CTRL + x (Para salir del editor)

Ahora podemos o reiniciar la raspberry o realizar un
Código: Seleccionar todo
sudo /etc/init.d/cron restart
Si todo ha ido bien se actualizará nuestra IP al ejecutarlo.

Intentaré modificar este POST para añadir pantallazos. y dejar todo mas bonito, pero me encuentro en un sitio con el internet Capado en este momento.
manursan, FeLiXSeV, Kr0s y 3 usuarios más les gusta esto
#70272
lopz_ escribió:Buenos días.

Escrito este "Tutorial" porque me he visto en la necesidad de realizar esto en mi raspberry pi... y decidí poner aquí como lo hice por si le viene bien a alguien. NOTA: esto lo estoy escribiendo a día 16/10/2017, si cuando leas esto han pasado 3 años o mas es posible que no coincida con la actualidad.

Estaba (y estoy) harto de No-IP que cada mes hay que confirmar el host, o si no no actualiza, etc.... así que busqué una alternativa Gratuita..... y encontré esta.

Antes de que nadie me diga "Estas robando" o alguna cosa de estas que dicen en los foros, esto es una "transcipción" básicamente de lo que se indica en esta pagina.

https://thelastmaimou.wordpress.com/201 ... s-service/

Yo esto lo estoy realizando en una Raspberry PI con OSMC. Pero tiene que funcionar casi en cualquier sistema linux, salvo Libreelec y similares que traen el sistema de ficheros capadisimo...

1º Crear usuario en Freedns

-Entrar en la url Freedns.afraid.org (DNS Dinamico Gratuito)
Nota. si no aparece esta pagina entrar en mail menu normal y como no tendras usuario y contraseña indicara para que hay que logarse y debajo pondrá un texto como "Setup an account here" pinchar en el.
-Rellenar los datos
-En el correo indicado revisar, pues tiene que llegar un mail para confirmar la creación de la cuenta . En algunos correos puede llegar en SPAM o Correo no deseado.
-Confirmar la cuenta.

2º Crear Subdominio.

-Acceder a la URL https://freedns.afraid.org
-En el lateral izquierdo de la pagina pinchar en "[ Subdomains ]" (Si no estas Logado pedira usuario y clave)

Imagen

-Pinchar sobre "Add" para crear uno nuevo (Es posible que si no tienes ninguno aparezca directamente la opción de crear)

Imagen

-Rellenar los datos (Mantener como Type A).

Imagen
En este ejemplo quedaría de la siguiente manera "DominioDePrueba.mooo.com"

NOTA - Si no os gusta los nombres que propone desde ahí es posible elegir un nombre entre varios miles. pinchando en [ Registry ] y eligiendo entre los miles de posibles "dominios" cedidos y rellenando los datos.

Imagen

3º Obtener dirección de actualización de IP.
-En el lateral izquierdo pinchamos sobre [Dynamic DNS]
-En la parte inferior de la pagina nos mostrara el/los dominios creados.
-En cada dominio aparecerán varias opciones, una de ellas es "Direct URL"

Imagen

-Pulsamos botón derecho sobre esa opción y "Copiar Enlace" (Dependiendo del navegador puede aparecer de otra manera)
-Copiamos nos tendremos que quedar con el hash que hay a partir de la Interrogación "?"
Sera un "chorizo como" "https://freedns.afraid.org/dynamic/upda ... 4gw3tggs3S[/b]" (o similar)

4º Crear Script para actualización.

NOTA: Si usas OSMC tendras que instalar desde su "tienda" (gratis) el servicio Cron.

- Acceder a una terminal de nuestra Raspberry (Putty ssh o si tienes un raspbian de escritorio o similar abriendo la terminal)
-Crear un script en la carpeta /etc/cron.d , yo uso nano para editarlo .
Código: Seleccionar todo
sudo nano /etc/cron.d/freedns_update.sh
Se abrirá un editor, copiamos este contenido.
Código: Seleccionar todo
#!/bin/sh
# freedns_update.sh: Update the public IP on freedns.afraid.org only if it has changed.
## Place this script in the cron's job directory /etc/cron.d and assign the proper permissions
## and owner
## sudo chmod 500 /etc/cron.d/freedns_update.sh
## sudo chown root:root /etc/cron.d/freedns_update.sh
## Add to /etc/crontab to execute on reboot and every 5 minutes
## Edit /etc/crontab and append these two lines:
## @reboot root /etc/cron.d/freedns_update.sh >/dev/null
## */5 * * * * root /etc/cron.d/freedns_update.sh >/dev/null
 
#Use your own values
DOMAIN=raspberry.liar.info.tm
HASHKEY=c29Q2s1Ml9df604bba2b1359ff62MTEyMT185e7=
 
UPDATE_URL="http://freedns.afraid.org/dynamic/update.php?${HASHKEY}"
    
current_ip=$(wget -q --output-document - http://checkip.dyndns.org | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')
registered_ip=$(ping -qn -c 1 $DOMAIN | head -n 1 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')
 
if [ "${current_ip}" != "${registered_ip}" ]; then  
   wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --output-document /dev/null $UPDATE_URL
   if [ $? -eq 0 ]; then
     echo "$(date +"%b %_d %T") $(hostname) $0: IP address updated on freedns.afraid.org: new IP '${current_ip}', old IP '${registered_ip}'" >> /var/log/messages
   else    
     echo "$(date +"%b %_d %T") $(hostname) $0: ERROR IP address could not be  updated on freedns.afraid.org: current IP '${current_ip}', registered IP '${registered_ip}'" >> /var/log/messages
   fi
fi
-Reemplazamos lo siguiente:
Código: Seleccionar todo

   DOMAIN=Por el Subdominio que hemos creado en el paso 2
   HASHKEY=Por lo que hay a partir de la ? en Direct URL

Pulsamos Si estamos usando nano
CTRL + o (para guardar)
CTRL + x (Para salir del editor)

-Ahora damos permisos de ejecución al fichero
Código: Seleccionar todo
sudo chmod 555 /etc/cron.d/freedns_update.sh
NOTA: En la URL de la que indico que saqué esta información pone chmod 500 y que se le cambie el usuario a root. , esto es por seguridad, para evitar que se modifique el archivo y que como lo lanza Cron se ejecute con permisos elevados alguna opción que no deseamos, si quereis "seguridad modo paranoya"
Código: Seleccionar todo

sudo chmod 500 /etc/cron.d/freedns_update.sh
sudo chown root:root /etc/cron.d/freedns_update.sh

5º Crear tarea programada

Si hemos ubicado el archivo donde se indica en /etc/cron.d ... realizamos lo siguiente
Código: Seleccionar todo
sudo nano /etc/crontab
bajamos al final del archivo y añadimos las siguientes lineas.
Código: Seleccionar todo
@reboot         root    /etc/cron.d/freedns_update.sh >/dev/null
*/5 *   * * *   root    /etc/cron.d/freedns_update.sh >/dev/null
CTRL + o (para guardar)
CTRL + x (Para salir del editor)

Ahora podemos o reiniciar la raspberry o realizar un
Código: Seleccionar todo
sudo /etc/init.d/cron restart
Si todo ha ido bien se actualizará nuestra IP al ejecutarlo.

Intentaré modificar este POST para añadir pantallazos. y dejar todo mas bonito, pero me encuentro en un sitio con el internet Capado en este momento.
Creo que llego un poco tarde pero como se diria en taringa... aqui te dejo mis dies. Me acabas de solucionar la vida para un servidor de mumble
#90227
Tengo una duda, con este procedimiento el dominio que he creado siempre apuntara a mi IP Publica? Aunque esta cambie? En un apartado al crear el subdominio si no recuerdo mal debia introducir (aunque la cogia automaticamente) la IP Publica. Como es posible que esta automaticamente la actualice el servicio "FreeDNS"?

Perdonad mi ignorancia