Unnikked - Esperienze personali in campo informatico

Guida al file hosts in Linux

Vedremo tramite un esempio la funzione svolta dal file /etc/hosts presente in qualsiasi distribuzione GNU/Linux e maggiore sistema operativo presente nel mercato.

Supponiamo di svilluppare un software o sito web su una macchina virtuale presente sulla nostra macchina locale. Supponiamo che tale macchina virtuale nella rete locale abbia come indirizzo 192.168.0.200 . Supponiamo, infine, che tale applicazione sia accessibile tramite browser (non necessariamente dobbiamo trovarci in questo caso).

Per poter testare l’applicazione è necessario che essa sia identificata tramite un dominio. Tuttavia l’acquisto di un dominio in fase di test potrebbe non essere la scelta migliore, dovremo gestire la configurazione dei DNS, il porforwarding dell’applicazione per essere accessibile dall’esterno ecc ecc.

Dettagli che possono essere tralasciati in fase di sviluppo. Ci appare evidente la necessità di creare un dominio fittizio per tale applicazione, diciamo app.local

Anche qui potrebbero sorgere dubbi, i domini con estensione .local non esistono!

E’ qui che il file hosts ci viene in aiuto! Tutto ciò che ci serve è di poter tradurre un nome mnemonico come app.local nell’effettivo indirizzo IP, ovvero quello che un normale server DNS effettua ogni giorno per noi durante la digitazione di un dominio sulla barra degli indirizzi di qualsiasi browser.

Il file hosts è speciale per alcuni aspetti, ogni qualvolta chiediamo al sistema operativo di risolvere un nome dominio esso prima effettuerà un controllo in tale file (trascuriamo la cache DNS).

Per cui, in tale file potremo specificare qualsiasi relazione indirizzo ip -> lista nome domini.

Torniamo al nostro caso, vogliamo associare all’indirizzo ip 192.168.0.200 il nome dominio (fittizio) app.local .

Apriamo il file /etc/hosts con un editor di testi che abbia anche i privilegi di amministrazione:

sudo vim /etc/hosts

e specifichiamo la relazione indirizzo ip -> lista nome domini nel seguente formato:

192.168.0.200 app.local

Se si ha la necessità di associare lo stesso indirizzo ip a più domini basta specificare tutti gli altri intervallati da uno spazio

192.168.0.200 app.local test.vps ciao.mail a.b

Un altro esempio pratico del file hosts è quello di poter ridefinire la destinazione dei nomi domini già registrati (sfruttiamo la caratteristica per la quale il sistema operativo effettua sempre una “sbirciatina” nel file hosts locale), supponiamo di voler bannare unnikked.tk dato che non pubblica mai niente di interessante e non vogliamo che sia accessibile dalla rete locale.

127.0.0.1 unnikked.tk

in questo caso unnikked.tk “punterà” alla nostra macchina locale (localhost).

Ovviamente tutti questi cambiamenti hanno effetto solo sulla macchina locale e non sull’intera Internet.

xip.io

Se non vuoi o puoi modificare il file hosts presente sulla tua macchina locale è possibile utilizzare questo servizio chiamato xip.io .

Permette di ottenere lo stesso effetto del file hosts nel qual caso si voglia avere un nome dominio per un indirizzo ip locale, basta digitare nella barra degli indirizzi un url nel formato indirizzoiplocale.xip.io (Es: 127.0.0.1.xip.io)