Linux

Come editare il file hosts su linux

In questo breve articolo vi spiegherò cosa è il file di hosts e come editarlo su linux.
Editare il file di hosts su linux è molto semplice perchè ha una sintassi molto semplice, e in maniera un pò banale è possibile definirlo come “il primo DNS” che contatta il Sistema Operativo.

Perchè modificare il file hosts?

I casi in cui conviene modificare il file hosts sono molteplici, per esempio:

  • Bloccare un dominio
  • Testare le configurazioni di apache
  • Simulare un piccolo network

Passiamo alla pratica, editiamo il file di hosts su linux.

Il file di Hosts sui sistemi linux lo troviamo nella cartella /etc/ quindi per leggerlo possiamo lanciare il seguente comando:

less /etc/hosts

e l’output, nel mio caso è:

127.0.0.1       localhost
127.0.1.1       foobar

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

In parole povere, digitando localhost sulla barra del browser risponderà l’indirizzo 127.0.0.1, uguale digitando foobar.
Possiamo editare il file di hosts usando vi oppure se siete utenti meno esperti c’è nano.

sudo nano /etc/hosts
sudo vi /etc/hosts

Mentre in lettura abbiamo potuto leggere il file di hosts senza essere superutenti, per editare il file di hosts è necessario essere superutenti.
Una volta aperto il file di hosts, ci posizionaniamo alla riga sotto 127.0.0.1, scriviamo l’indirizzo IP che desideriamo, premiamo TAB e poi scriviamo il dominio.
Per esempio:

127.0.0.1       localhost
127.0.1.1       OpenPingu
192.168.1.21    foo.apptecsrl.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Una volta salvato, se digito sul browser foo.apptecsrl.com mi risponderà l’indirizzo IP 192.168.1.21

Cosa possiamo fare in pratica?

Se vogliamo bloccare un dominio, basta ridirigire il dominio target su un indirizzo IP, anche localhost. Per esempio:

127.0.1.1       www.ilgiornale.it

In questo caso, quando sul PC digiti il suddetto indirizzo web sarai reindirizzato alla porta 80 del tuo pc.
Per testare le configurazioni di Apache bisogna modificare il file di hosts sia della macchina che effettua la richiesta, sia quella che la gestisce.
Supponiamo che la macchina che ha il webserver risponda all’indirizzo 150.217.23.45 e al dominio www.example.com. Il nostro obiettivo è testare il servizio che risponderà all’indirizzo foo.example.com
Sia sullla macchina server, che sulla nostra modifichiamo il file hosts inserendo la stringa:

150.217.23.45      foo.example.com

Soltanto chi avrà il file hosts modificato potrà accedere al servizio che risponde al dominio foo.example.com

Infine, possiamo simulare anche un piccolo network. Assumiamo che vogliamo testare una futura configurazione composta da 6 macchine ed ognuna al suo interno ha un demone di Docker. Tutte insieme fanno parte del solito stack dove è stata deployata la solita Webapp.
In questa configurazione ci possiamo veramente sbizzarrire, anche perchè possiamo partire da configurazioni più semplici, fino a finire con configurazioni che includono dei load balancer.