Aggiornare automaticamente DuckDNS dal proprio Raspberry

2 minuti di lettura
SCOPI DELLA GUIDA:
  • Tenere automaticamente aggiornato il proprio record DNS presso DuckDNS
  • Livello di difficoltà: medio/basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
  • Rete Wifi connessa ad Internet
  • Raspberry Pi configurato e funzionante con Raspbian
DISPOSITIVI FISICI UTILIZZATI:
GUIDA MAGGIORMENTE INDICATA PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 2.4

Abstract

DuckDNS è un servizio gratuito che permette di ottenere un nome host (definito dall’utente) associato al corretto IP del proprio modem.

Viene utilizzato spesso e volentieri da utenti Home Assistant per accedere remotamente alla propria domotica personale; talvolta capita però (specialmente nella versione stand-alone su Raspbian) che, a fronte di un riavvio del modem, la piattaforma di integrazione non provveda all’update e, essendo possibilmente cambiato l’IP WAN associato al router, non sia più possibile raggiungere il proprio ambiente.

A prescindere dall’uso in domotica, la possibilità di conoscere sempre il proprio IP tramite la risoluzione di un nome host FQDN perennemente aggiornato è un vantaggio in termini di gestione, perché può essere utile per esempio avere accesso SSH (o altre modalità) al proprio Raspberry.

Assumeremo per questa guida che l’utente sia già iscritto a duckdns.org e abbia creato un proprio FQDN, che per questa guida assumeremo essere:

miodominio.ducksdns.org

Funzionamento

Il meccanismo di funzionamento è molto semplice. È infatti sufficiente contattare un determinato URL Internet per far sì che il proprio record venga aggiornato; tale URL è formattato in modo da contenere una chiave personale (o “token”) e il nome del nome dominio da aggiornare.

Quel che faremo è definire un processo automatico che, una volta ogni ora, invii la richiesta di (eventuale) aggiornamento verso DuckDNS.

Implementazione

In primis è necessario collegarsi via SSH al proprio Raspberry Pi.
Una volta connessi, eseguire i seguenti tre comandi:

mkdir duckdns
cd duckdns
sudo nano duck.sh

A questo punto è necessario inserire una stringa nell’editor che sarà comparso. Tale stringa sostanzialmente evoca il servizio online segnalando l’IP del nostro router in modo che possa essere associato al proprio FQDN (laddove sia cambiato dall’ultima chiamata).

Tale stringa è essenzialmente la seguente (tutto in una sola riga):

echo url="https://www.duckdns.org/update?domains=<tuo-dominio>&token=<tuo-token>&ip=" | curl -k -o ~/duckdns/duck.log -K -

dove:

  • <tuo-dominio> è il nome del tuo dominio, inteso come terzo livello, quindi nel caso sopra solo “miodominio“;
  • <tuo-token> è il token assegnato al proprio dominio.

Per scoprire il token è sufficiente collegarsi su DuckDNS e leggere la scheda che appare:

duckdns token

La voce è appunto “token” e il token stesso è la lunga stringa che segue.

Una volta modellata opportunamente la stringa, è necessario copia-incollarla dentro l’editor.
Successivamente, salvare e uscire (CTRL+X, Y, Invio).

Fatto questo, eseguire i seguenti due comandi:

sudo chmod 777 duck.sh
export VISUAL=nano; crontab -e

Posizionarsi in fondo all’editor che apparirà e inserire la seguente stringa:

*/60 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Questo farà sì che l’aggiornamento (o meglio, la verifica e quindi l’eventuale aggiornamento) avvenga automaticamente ogni 60 minuti.

N.b. Per personalizzare il lasso di tempo di verifica, si consiglia di utilizzare questo tool online.

Infine, eseguire il seguente comando:

sudo service cron start

TEST

Per verificare che l’aggiornamento funzioni, eseguire i seguenti due comandi:

cd duckdns
./duck.sh
cat duck.log

Se apparirà “OK“, signfica che la comunicazione verso DuckDNS è stata effettuata e l’aggiornamento richiesto correttamente.


Telegram News Channel