Duck DNS: configurazione su Linux (2024)

Configurare il Dynamic DNS provider Duck DNS su un sistema Linux per il reindirizzamento dinamico verso gli indirizzi IP

Configurare il Dynamic DNS provider Duck DNS su un sistema Linux per il reindirizzamento dinamico verso gli indirizzi IP

Duck DNS: configurazione su Linux (1)

Claudio Davide Ferrara Pubblicato il 15 feb 2024

Link copiato negli appunti

In passato abbiamo già parlato di come realizzare un server DNS su di una distribuzione Linux. Tramite DNS (Domain Name System) è possibile sfruttare i nomi a dominio al posto dei più complessi indirizzi IP per accedere ai siti Web.

Per proporre un esempio concreto, digitando "html.it" nella barra degli URL del browser la navigazione viene indirizzata automaticamente al sito indicato tramite i DNS. Senza di essi si dovrebbe utilizzare l'IP corrispondente composto da una sequenza di numeri, separati da dei punti, che risulterebbe scomoda da memorizzare.

I DNS sono quindi essenziali per la user experience e sono stati creati per agevolare gli utenti durante l'accesso alla risorse presenti online. Oggi tutti i principali ISP (Internet Service Provider) offrono un sistema di gestione DNS tramite le configurazioni dei router concessi con il servizio. L'utente però può utilizzare il DNS che preferisce e non esistono vincoli per l'implementazione di uno specifico DNS resolver.

Ecco perché sempre più utenti scelgono di realizzare un proprio server DNS, ovvero un sistema dedicato alla gestione delle query DNS. Queste soluzioni consentono ad esempio di implementare agilmente sistemi di

Duck DNS

Oggi vogliamo parlarvi di Duck DNS, un Dynamic DNS provider che consente anche di creare sottodomini gratuiti e di eseguire il reindirizzamento dinamico verso un indirizzo IP.

Si tratta di un servizio che si pone come alternativa alle soluzioni più blasonate, e costose, che sono presenti in rete da anni. I subdomain saranno tutti connessi al dominio principale, "duckdns.org", e presenteranno il formato sottodominiodiesempio.duckdns.org.

Il principale vantaggio di questo Dynamic DNS provider è appunto quello di poter ottenere un domain name che punta direttamente ad un IP, gratuitamente. È quindi perfetto per i piccoli progetti che necessitano di un sito Web online.

Nella guida ci focalizzeremo sulla configurazione di Duck DNS in un server Linux e ci affideremo a Debian come distribuzione di riferimento. La stessa procedura può essere applicata a qualsiasi altro sistema Linux, purché si abbia accesso ai pacchetti software che andremo ad utilizzare.

Configurazione iniziale di Debian

Duck DNS: configurazione su Linux (2)

Per utilizzare Duck DNS non servono configurazioni hardware particolarmente potenti. Basta una normale board ARM o magari un NAS per operare senza problemi di performance. Apriamo quindi il terminale e assicuriamoci che la distribuzione abbia accesso ai pacchetti software più recenti presenti nei repository:

sudo apt update && sudo apt upgrade

Ora andiamo a reperire il download manager curl tramite il gestore di pacchetti della distribuzione APT:

sudo apt install curl

e tramite il comando mkdir creiamo delle directory che saranno utili a Duck DNS:

sudo mkdir /opt/duckdns/
sudo mkdir /var/log/duckdns/

Per scrivere sulle directory /opt e /var bisogna impersonare l'utente root, ecco perché in questo caso abbiamo usato anche sudo.

Generare il proprio dominio con Duck DNS

Rechiamoci nel portale web di Duck DNS e procediamo con la registrazione di un account. Successivamente generiamo il dominio e aggiungiamolo al nostro account di Duck DNS con il pulsante "Add domain".

Duck DNS: configurazione su Linux (3)

Nella stessa pagina Web è reperibile il token dell'account. Segnatevi questo dato perché sarà utile successivamente.

Creare lo script per l'auto-update di Duck DNS

Torniamo ora nella shell di Debian per creare uno script bash dedicato all'aggiornamento automatico dell'IP del server Linux con il servizio di Duck DNS. Apriamo quindi l'editor di testo nano e posizioniamoci nelle directory create poco prima:

sudo nano /opt/duckdns/duck.sh

all'interno di tale file dobbiamo scrivere questo script:

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

Salviamo il tutto con la combinazione di tasti CTRL+O e chiudiamo con CTRL+X.

Se lo desideriamo, prima di eseguire lo script, possiamo impostare il tutto in modo tale che possa essere modificato solo dal nostro utente:

sudo chmod 700 /opt/duckdns/duck.sh

Il file infatti contiene non solo il dominio ma anche il token dell'account, quindi se condividete il server Linux con altre persone è meglio assicurarsi che nessun altro possa modificarlo.

Impostare un cron job per l'esecuzione dello script

Il prossimo step prevede l'impostazione di un cron job per eseguire in modo continuativo lo script appena realizzato:

sudo crontab -e

Ci viene quindi offerta una selezione di editor, noi vi consigliamo di utilizzare il classico nano.

Dopo la selezione si apre un file e nella sua parte finale dobbiamo inserire questa stringa:

*/5 * * * * /opt/duckdns/duck.sh >/dev/null 2>&1

Salviamo il tutto, sempre con CTRL+O, e chiudiamo con CTRL+X. Con la configurazione appena applicata abbiamo indicato al sistema di eseguire il nostro script ogni cinque minuti.

A questo punto il tutorial è completo. Per testare il tutto apriamo il nostro browser Web di riferimento e digitiamo l'URL seguente nella barra degli indirizzi:

https://iltuosottodominio.duckdns.org/

Dovrebbe quindi caricarsi il servizio che è al momento in esecuzione sul server Linux, come ad esempio un sito Web.

Le applicazioni in questo caso sono innumerevoli e anche i principianti, magari approdati da poco nel mondo Linux, posso sfruttare una configurazione come questa che risulta semplicissima da utilizzare ed applicare oltre che a costo zero.

Ti consigliamo anche

Linux Dashy: la tua Dashboard su Linux
Linux co*ckpit: una GUI per gestire server Linux
Linux Linux: gestire servizi in abbonamento con Wallos
Linux Macchine virtuali su Linux con Quickemu
Duck DNS: configurazione su Linux (2024)
Top Articles
Latest Posts
Article information

Author: Stevie Stamm

Last Updated:

Views: 5655

Rating: 5 / 5 (80 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.