EDIT 2022: Un modo più “moderno”: https://docs.linuxserver.io/images/docker-ddclient

Quando installiamo qualche servizio all’interno della nostra rete e vogliamo raggiungerlo dall’esterno è necessario avere un IP pubblico e ricordarselo. La maggior parte dei provider fornisce un indirizzo IP dinamico, che cambia ogni volta che riavviamo il modem o cade la connessione. Per ovviare a questo problema esistono dei servizi chiamati Dynamic DNS che assegnano un nome mnemonico (del tipo nome.dyndns.org) per poter raggiungere la nostra rete dall’esterno.

La maggior parte dei modem consente di configurare il DynDNS direttamente dal loro pannello di configurazione, dobbiamo quindi sceglierne uno che sia supportato dal nostro modem, registrarsi sul sito del servizio e impostare le credenziali all’interno del modem. Oppure, più semplicemente, possiamo configurare uno di questi servizi direttamente sul nostro server. Io utilizzo NO-IP che fornisce anche un client nativo per Linux. Dopo esserci registrati su noip.com riceveremo una mail per confermare l’account, dopo averlo cliccato sul link presente nell’email, nella pagina che si apre, clicchiamo su create a hostname now, inseriamo nella casella Hostname il nome desiderato e scegliamo l’estensione(ad esempio no-ip.org) e clicchiamo su Add Hostname. Installiamo ora il client per l’update sul server con i privilegi amministrativi(sudo -s  o su):

cd /tmp/
apt-get install gcc make
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar -zxvf noip*
cd noip-*
make
make install

Ci verranno richiesti le credenziali d’accesso e ogni quanto aggiornare l’indirizzo, lasciamo 30 minuti, di meno se abbiamo una linea instabile la cui connessione cade spesso(causando il reset dell’IP), di più se abbiamo un IP pubblico statico. Premiamo invio alla richiesta successiva.

Dobbiamo fare in modo che parta all’avvio, scarichiamo lo script e lo impostiamo:

wget http://girondi.net/it/post/noip/noip2
mv noip2 /etc/init.d/
chmod a+x /etc/init.d/noip2
update-rc.d noip2 defaults

Riavviamo e controlliamo che il processo sia in esecuzione:

ps -el |grep noip2