Accedere da Internet al proprio server di casa con No-Ip

Posted by RedBlue on July 20, 2012 · 5 mins read

Oggi vi parlo di No-Ip, un servizio che mi ha risolto un problema potenzialmente grosso.

Premessa

Dopo un viaggio in Spagna (qui il resoconto completo), sorge il pesantissimo problema di scambiarsi foto e video della vacanza tra gli amici che vi hanno preso parte: può sembrare semplice, ma in realtà si tratta spesso di un'impresa titanica.

Ecco allora l'idea, una specie di repository online in cui ognuno può caricare il proprio materiale e scaricare quello degli altri. Semplice no? Basta un file manager, e in rete ce ne sono tantissimi gratuiti, e lo spazio per contenere il tutto. L'unico problema è proprio lo spazio, dato che con fotocamere e videocamere digitali moderne, i file multimediali hanno dimensioni considerevoli (io ad esempio ho una videocamera full HD) e per i servizi di hosting online più spazio significa maggior costo; ricordate il mio server casalingo? Bene, è proprio quello che fa al caso mio, basta collegarci un disco esterno capiente e il gioco è fatto.

Più o meno, dato che quel server non è direttamente accessibile dall'esterno.

Soluzione

Finita la lunga, ma doverosa premessa, ecco il problema: installando un web server (Apache ad esempio) sul proprio server, un file manager (e più in generale un sito web) sarà accessibile mediante l'indirizzo IP del server seguito dalla directory del file manager stesso (se lo avete messo in una directory, altrimenti direttamente dall'IP); ovviamente parlo dell'IP del router di casa, non di quello del PC (occorre a questo proposito un forward, ne parleremo più avanti). Il punto è che ogni provider fornisce un indirizzo IP dinamico al router, ovvero un indirizzo che può cambiare senza alcun preavviso, rendendo di fatto inutile tutto il lavoro fatto. Ovviamente si può acquistare un IP statico (ovvero un indirizzo univoco di proprietà), ma i costi non sono accessibilissimi, e per un progettino come il mio ovviamente non ne vale la pena in ogni caso.

Esiste una soluzione diversa: No-Ip. Questo servizio non fa altro che associare l'IP dinamico del vostro router ad un dominio di terzo livello del tipo nomedominio.no-ip.org, monitorando poi l'IP stesso e mantenendo l'associazione in caso di cambio. Praticamente, dall'esterno potrete accedere al vostro server casalingo digitando nel browser nomedominio.no-ip.org/sito. Facile no? ;)

Vediamo come si usa: colleghiamoci a http://www.no-ip.com e registriamoci mediante il box in alto a destra (voce Sign in):

Dopo esserci iscritti, saremo su questa pagina:

Clicchiamo su Add Host (la quarta icona partendo da sinistra), poi nella pagina successiva alla voce Hostname mettiamo il nome da associare al server, e dal box affianco scegliamo il dominio (occhio che bisogna scegliere esclusivamente uno di quelli appartenenti al gruppo No-Ip Free Domains, altrimenti per gli altri si paga!). Lasciare impostato DNS Host A, infine controllare che l'IP indicato sia effettivamente il nostro IP pubblico (usando un servizio online come come http://www.ilmioip.it/). Per finire clicchiamo su Create Host.

A questo punto, occorre configurare anche il server in modo che utilizzi il servizio. Esistono due modi, o tramite il router stesso, oppure tramite un client dedicato.

Nel primo caso, solitamente nel router (se supporta questo genere di servizi) c'è un'opzione DNS Dinamico nella quale impostare il servizio (no-ip.com), il nome utente scelto in fase di registrazione e la password. In tal modo, potrete usare il servizio da subito.

Nel secondo caso invece, occorre scaricare da questa pagina il client di No-Ip, multipiattaforma, il quale si occuperà di associare e monitorare l'indirizzo IP al dominio creato in precedenza.

Vediamo come usare il client per Linux: per prima cosa lo installiamo, semplicemente portandoci nella directory in cui abbiamo scaricato l'archivio, decomprimendolo e poi dando i classici:

make

sudo make install

A questo punto, basta lanciarlo:

sudo /usr/local/bin/noip2

Mentre per far sì che si avvii insieme al PC, basta inserire questo script (chiamatelo semplicemente noip2 e rendetelo eseguibile prima) tra quelli in avvio automatico del pc:

#! /bin/sh

case "$1" in

    start)

	echo -n "Avvio client noip2."

	/usr/local/bin/noip2

    ;;

    stop)

	echo -n "Chiusura client noip2."

	killall noip2

    ;;è

    *)

	echo "Uso: $0 {start|stop}"

	exit 1

esac

exit 0

Ovviamente date anche un:

sudo update-rc.d noip2 defaults 90

Per aggiornare la configurazione di avvio del sistema.

No resta che aprire la porta 80 sul router: cercate l'opzione Port forwarding, o Port mapping, o alle volte anche Virtual Server, e aprite la porta 80 TCP (e la 8245 TCP per il client, anche se questo potrebbe non essere strettamente necessario).

E' tutto, ora il vostro server casalingo (o qualunque altro computer vogliate usare)  è raggiungibile dall'esterno.

Alla prossima..