Per raggiungere un server Raspberry PI (o linux generico) su internet, dietro ad una connessione ADSL con IP dinamico, è conveniente avere un servizio di Dynamic DNS o DynDNS ad esempio http://dyndns.it.
Quasi tutti i servizi forniscono gratuitamente 1 nome DNS, per averne altri bisogna sottoscrivere un abbonamento.
Il servizio DynDNS permette di mappare l'IP pubblico, ad esempio 10.45.1.10, assegnato della connessione ADSL su un nome DNS come ad esempio: mio-pi.dyndns.it.
Dato che l'IP di una connessione ADSL ogni "tot" cambia, è necessario comuncare al servizio che fornisce DynDNS il nuovo IP tempestivamente.
Questo può essere fatto manualmente tramite il sito del servizio. Ovviamente è un po' scomodo e poco pratico, quindi è meglio installare un servizio in background che fa questo per noi. Su linux il servizio è ddclient.
Prima di procedere assicuriamoci che il sistema sia aggiornato alle ultime versioni:
# aggiorna la lista dei pacchetti
sudo apt-get update
# aggiorna i pacchetti nel sistema 
sudo apt-get upgrade
Installiamo ddclient (esempi basati su Rasbian Jessie e ddclient 3.8.2):
sudo apt-get install ddclient
che darà un output tipo questo:
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
I seguenti pacchetti saranno inoltre installati:
  libio-socket-ssl-perl libnet-libidn-perl libnet-ssleay-perl
I seguenti pacchetti NUOVI saranno installati:
  ddclient libio-socket-ssl-perl libnet-libidn-perl libnet-ssleay-perl
0 aggiornati, 4 installati, 0 da rimuovere e 0 non aggiornati.
È necessario scaricare 531 kB di archivi.
Dopo quest'operazione, verranno occupati 1.759 kB di spazio su disco.
Continuare? [S/n]
confermare con S per procedere. Al termine il comando visualizza un wizard per la configurazione del servizio. Se il tuo servizio è tra quello elencati, selezionalo o scegli altro e procedi con il wizard. Scegliendo www.dyndns..com ti verràchiesto:
  • il nome server (es. www.dyndns.it)
  • nome utente del servizio DynDNS
  • password del servizio DynDNS
  • di nuovo la password per conferma
  • verrà chiesto se trovare l'indirizzo IP pubblico con checkip.dyndns.com, rispondi Si
  • alla domanda successiva seleziona Manualmente e inserisci il nome DynDNS (FQDN) (nel caso di host gratuito uno solo es. mio-pi.dyndns.it)
  • alla richiesta di abilitare il PPP rispondi No
  • successivamente verrà chiesto se eseguire ddclient come demone (servizio), rispondi Si
  • imposta come intervallo fra le esecuzioni 600
al termine del wizard verrà completata la configurazione del servizio.
Per verificare se il servizio è in esecuzione:
sudo /etc/init.d/ddclient status
mentre per verificare se il servizio funziona e si collega correttamente al servizion DynDNS configurato:
sudo ddclient -daemon=0 -debug -verbose -noquiet
se tutto va a buon fine le utime righe dovrebbero essere:
RECEIVE:
RECEIVE:  good nnn.nnn.nnn.nnn
SUCCESS:  updating mio-pi.dyndns.it: good: IP address set to nnn.nnn.nnn.nnn
per eseguire nuovamante il wizard:
sudo dpkg-reconfigure ddclient
Il wizard crea un file di configurazione in /etc/ddclient.conf e può essere editato con:
sudo nano /etc/ddclient.conf
che sarà simile a questo:
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

protocol=dyndns2
use=if, if=eth0
server=members.dyndns.org
login=mio-user
password='mia-passwod'
mio-pi.dyndns.it
Attenzione, la password va racchiusa tra virgolette singole
che poi ho modificato così:
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

daemon=300
cache=/tmp/ddclient.cache
pid=/var/run/ddclient.pid
ssl=yes
protocol=dyndns2
use=web, web=checkip.dyndns.it/, web-skip='IP Address'
server=members.dyndns.it
login=mio-user
password='mia-passwod'
mio-pi.dyndns.it
Per editare il file usa l'editor nano:
sudo nano /etc/ddclient.conf
se da problemi di connessione tipo:

WARNING: cannot connect to members.dyndns.it:443 socket: IO::Socket::IP configuration failed

prova a mettere ssl=no ... non è una soluzione ottimale in quanto viene inviata la password in chiaro ma al momento non ho trovato un altra soluzione.
dopo le modifiche manuali al file /etc/ddclient.config riavvia il servizio e ricontrolla:
sudo /etc/init.d/ddclient restart
sudo ddclient -daemon=0 -debug -verbose -noquiet