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 quelli 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 servizio DynDNS configurato:
sudo ddclient -daemon=0 -debug -verbose -noquiet
se tutto va a buon fine le ultime 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 nuovamente 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