fb-pixel

File hosts: la guida completa

Pubblicato in:

by:

Il file hosts ci permette di associare un determinato indirizzo IP a un sito.

Una situazione comune in cui è utile modificare questo file è visualizzare il sito durante un trasferimento da un server all’altro.

In questa guida ti mostrerò proprio cos’è e cosa serve il file hosts. Poi vedremo come fare a modificarlo in base al sistema operativo che stiamo usando.

Come funzionano i domini

Ogni sito internet è ospitato dentro un computer remoto (server) raggiungibile da un indirizzo IP.

Per navigare su un sito però non era comodo scrivere un indirizzo IP tipo 192.168.21.34, perché sarebbe stato difficile da ricordare. Per questo è stata creata un’associazione (risoluzione dei nomi) tra questi indirizzi numerici e una parola, tipo miosito.it, che si chiama dominio.

Si chiamano server DNS quei computer dislocati in giro per il mondo in cui sono presenti tutte le associazioni dei miliardi di siti e fanno in modo che, aprendo il browser, basti scrivere google.it per aprire Google o facebook.com per aprire Facebook.

In questo modo viene utilizzato un nome facile da ricordare per raggiungere uno specifico indirizzo IP numerico che sarebbe difficile da ricordare.

Quando modifichiamo il puntamento del dominio dobbiamo essere sicuri che il sito sul nuovo server funzioni correttamente, per evitare d’inviare i nostri visitatori su un sito che dà errore.

Per fare questa verifica possiamo sfruttare proprio il file hosts. Vediamo esattamente a che ci serve.

Puoi anche guardare questo video per capire come funziona il file hosts e come usarlo nel caso di una migrazione di un sito:

A cosa serve e perché modificare il file hosts

Il file hosts è un file memorizzato nel nostro computer, possiamo modificarlo per far sì che il nostro computer visualizzi un sito richiamandolo da uno specifico indirizzo IP.

Facciamo un esempio per capire come funziona nella pratica.

Abbiamo il sito supporthost.it visibile a tutti, il server su cui risiede ha IP 111.111.111.111

Il dominio supporthost.it punta all’IP 111.111.111.111, quindi quando un visitatore visita il sito vede il sito che sta su questo server.

Vogliamo fare una modifica, e per farlo decidiamo di creare una copia dell’account su un altro server, che ha IP 222.222.222.222

Adesso ci ritroviamo ad avere due siti identici, ma nessuno saprà che esiste il secondo, dal momento che non abbiamo modificato il puntamento del dominio. Il dominio punta infatti ancora al primo server.

Noi adesso vogliamo lavorare sul secondo sito, fare delle modifiche e poi decidere se applicarle o meno al nostro sito principale. In pratica usiamo un secondo server come staging, ovvero un’installazione di test dove possiamo fare tutte le prove che vogliamo senza rischiare di fare danni.

In questo caso diciamo al nostro computer, tramite l’aggiunta di una riga sul file hosts, che quando visitiamo il sito supporthost.it vogliamo visualizzare il sito che è ospitato sul server 222.222.222.222 invece che quello che il dominio ci indica ospitato su 111.111.111.111

In questo modo soltanto noi vediamo il sito in staging, e possiamo fare tutte le prove che vogliamo senza creare problemi al sito in produzione.

Una volta capito a cosa serve modificare questo file sul nostro computer, vediamo in che casi può farci comodo.

Casi di utilizzo del file hosts

Come abbiamo visto modificando il file hosts locale possiamo verificare che il nostro sito funzioni correttamente e solo dopo andare a modificare il puntamento del dominio.

Vediamo i principali casi di utilizzo di questo file.

Trasferimento di un sito

Quando si trasferisce un sito da un server a un altro sostanzialmente quello che accade è un trasferimento fisico di tutti i file da un server remoto a un altro, questi server sono identificati da indirizzi IP univoci. Lo spostamento dei file può avvenire manualmente o attraverso di un plugin, come Duplicator, che semplifichi il processo.

Questo è il caso quando decidi di cambiare hosting o quando stai traferendo il tuo sito da Blogger a WordPress. Ad esempio se noi eseguiamo la migrazione del tuo sito web, prima di darti la conferma modifichiamo il files hosts sul nostro computer per controllare che funzioni bene e non ci siano errori.

Se vediamo problemi provvediamo a risolvere, se invece è tutto a posto ti diamo la conferma che abbiamo completato il trasferimento del tuo sito e provvediamo a cambiare i nameservers del dominio.

A questo punto siamo sicuri che il sito funziona correttamente sul nuovo server e possiamo cambiare il puntamento del dominio, in modo che al termine del processo di propagazione tutto il mondo vedrà il sito dal nuovo server.

Questo cambiamento in genere non è istantaneo e ci potrebbero volere anche fino a 48h perché questa modifica si dirami in tutti i computer del mondo connessi a internet, questo fenomeno è chiamato propagazione DNS.

Ma se volessimo sin da subito accedere al nostro sito nel nuovo server senza aspettare? A questo problema ci viene in aiuto il poco conosciuto file “hosts”. Questo non è altro che un file di testo contente un elenco di indirizzi IP associati ai nomi.

Quando digitiamo sul browser un sito, il nostro PC prima di qualsiasi cosa consulta questo file, se trova il nome che abbiamo digitato allora legge l’indirizzo ip corrispondente e ci restituisce il sito contenuto nel server remoto che ha quello ip.

Ambiente di staging su un server diverso

Come nell’esempio che ho fatto prima, in alcuni casi possiamo aver bisogno di creare un ambiente di staging su un server diverso.

Questo è proprio quello che facciamo quando dobbiamo fare cambiamenti sul nostro sito. Usiamo due server: uno per lo staging e uno per il sito in produzione.

Tramite un semplice script copiamo il sito da produzione a staging, eseguiamo le modifiche del caso e al termine inviamo queste modifiche al sito in produzione.

In questo modo non rischiamo che un errore nel codice mandi offline il nostro sito web, situazione che ci farebbe perdere vendite e credibilità.

Sviluppo in localhost

In certi casi potresti voler sviluppare un nuovo sito in localhost.

È preferibile sviluppare in locale per questioni di velocità, ma nulla vieta che tu decida di usare un dominio e farlo puntare al tuo server locale, come ho spiegato nella guida a MAMP.

Per fare questo è necessario modificare il file hosts locale in modo da far sapere al tuo computer che quando visiti quel dominio vuoi vedere il tuo sito in locale.

Come modificare il file hosts sul tuo computer

Ora che abbiamo capito come funziona e in che situazioni può essere utile usarlo, passiamo alla parte pratica e vediamo come modificare il file hosts.

Windows Vista, Windows 7 e Windows 10

Vista, Windows 7 e Windows 10 utilizzano lo User Account Control (UAC) quindi per poter modificare il file in questione dobbiamo eseguire Notepad (Blocco note) come Amministratore.

1. Clicca Start → Tutti i Programmi → Accessori

2. Tasto destro su Notepad e seleziona Esegui come amministratore. In questa schermata qui sotto vedi un esempio con Windows 10.

Esegui Blocco Note Come Amministratore Windows 10
Eseguire Blocco Note come amministratore.

3. Clicca “Continua” o “Si” sulla finestra che appare di richiesta di permessi.

4. Appena il Notepad sarà aperto, clicca su File → Apri

5. Nel nome file inserisci C:\Windows\System32\Drivers\etc\hosts

6. Clicca Apri

File Hosts Windows

Windows NT, Windows 2000, Windows XP

  1. Clicca su Start →  Tutti i Programmi → Accessori → Blocco Note NotePad
  2. Clicca su File → Apri
  3. Nel campo nome inserisci C:\Windows\System32\Drivers\etc\hosts
  4. Clicca su Apri
  5. Modifica il file.

Linux

  1. Apri un terminale
  2. Digita: sudo vi /etc/hosts (puoi usare qualsiasi altro editor per modificare il file etc hosts)
  3. Inserisci la password
  4. Modifica il file e poi salva
File Hosts Linux Terminale

Mac OS X 10.6 – 10.1.8

Per modificare il file hosts su mac puoi seguire questi passi:

1. Apri Applicazioni → Utilità →  Terminale.

2. Apri il file hosts inserendo il seguente comando:

sudo nano /private/etc/hosts

Inserisci la tua password quando richiesto.

3. Edita il file Host inserendo ip e dominio/i

4. Salva premendo Control+x. Control + X serve a uscire dal programma, quando dai questo comando ti verrà chiesto se vuoi salvare le modifiche, a questo punto premi Invio per confermare.

5. Per rendere effettive le modifiche bisogna svuotare la cache DNS digitando il seguente comando:

dscacheutil -flushcache

6. Le nuove impostazioni dovrebbero essere attive.

File Hosts Mac Terminale

In alternativa su sistema operativo Mac OSX può essere utilizzato “gas mask” un software gratuito e semplice da utilizzare che ti permette la modifica del file hosts tramite interfaccia grafica. Ti permette addirittura di creare file multipli, e poi decidere in un click quale utilizzare.

File Hosts Mac Gasmask

Android

Per modificare il file hosts su dispositivi android sono necessari i permessi di root. Poi si può utilizzare una semplice app tipo Hosts Editor.

Sintassi del file hosts

Il file hosts ha lo stesso formato su tutti i sistemi operativi.

La sintassi da utilizzare è:

IP    nome_dominio

Quindi se avessi il dominio SupportHost.net e IP del server 192.196.159.12, dovrei inserire nel mio file hosts le seguenti due righe:

# Ip temporaneo per dominio SupportHost.net
192.196.159.12 supporthost.net www.supporthost.net

Sulla stessa riga è possibile aggiungere più nomi a dominio o sottodomini.

Nell’esempio di sopra sto dicendo che quando visito il sito supporthost.net (con o senza www) voglio che venga visualizzato il sito che è ospitato sul server con quell’indirizzo IP.

Tutto ciò che è seguito da un cancelletto # rappresenta un commento all’interno del file hosts, i commenti sono facoltativi.

Considerazioni

Come ti ho spiegato all’inizio, il file hosts è un file locale, questo significa che la modifica che facciamo è valida solo per il PC su cui stiamo lavorando.

Le regole nel file hosts hanno priorità rispetto al DNS, inoltre una volta salvato il file la modifica è subito attiva, non è necessario riavviare la macchina.

Se stiamo facendo questa modifica in attesa della propagazione, quando i DNS del nostro dominio saranno completamente propagati, potremo eliminare la direttiva inserita nel file hosts.

Se abbiamo inserito nel file hosts un indirizzo IP sbagliato, potremmo vedere un errore DNS_PROBE_FINISHED_NXDOMAIN quando cerchiamo di visitare il sito. In questo caso ci basterà correggere la riga con l’errore o cancellarla, per risolvere.

Modificare il file host è semplice, gratuito, innocuo e reversibile.

Conclusioni

A questo punto avrai capito che il file hosts è estremamente utile. Ad esempio possiamo usarlo durante il trasferimento di un sito. In questo modo possiamo vedere il sito che abbiamo spostato su un altro server prima di cambiare a tutti gli effetti il puntamento del dominio.

Hai capito come si usa il file hosts? Sei riuscito a modificarlo? Lascia un commento per farmelo sapere.

Ultimo aggiornamento con informazioni più dettagliate, il 21 aprile 2023.


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

8 risposte a “File hosts: la guida completa”

  1. Avatar agridati
    agridati

    Ciao,

    Grazie per un articolo molto interessante.

    1. Avatar Ivan Messina
      Ivan Messina

      Sono contento che sia stato utile!

    2. Avatar Gian Matteo
      Gian Matteo

      Avrei bisogno di capire come posso fare a intercettare gli applicativi le cui richieste di risoluzione nome vengono risolte a livello di file hosts. In pratica se un applicativo effettua una richiesta DNS (pacchetto UDP/53) posso vederlo, ma dove trovo traccia delle risoluzioni avvenute a livello di hosts file?

      1. Avatar Ivan Messina
        Ivan Messina

        L’argomento esula dalla scopo di questa guida.

        È una questione gerarchica, un sistema controlla sempre prima il file hosts poi il suo gateway. Quindi l’unico modo è controllare il file hosts di quel sistema.

  2. Avatar daniele

    Ciao, esiste un modo per far puntare ad un ip diverso qualora si cerchi di connettersi ad un IP specifico?
    Faccio un esempio, il pc deve connettersi all’ip 111.111.111.111 ma io voglio che invece si connetta all’ip 222.222.222.222
    Grazie

    1. Avatar Ivan Messina
      Ivan Messina

      Non avrebbe molto senso, se devi connetterti a un IP specifico meglio scrivere l’IP corretto direttamente.

      1. Avatar Daniele

        Eh lo so… Solo che ho un applicativo del quale non ho i sorgenti che si connette ad un ip che mi é stato cambiato dal provider

      2. Avatar Ivan Messina
        Ivan Messina

        L’unico modo è sentire il supporto dell’applicativo in questo caso, non ci sono altre soluzioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *