In questo articolo parliamo del file hosts, capiremo a cosa serve e vedremo come configurarlo.
Questo perché, nell’arco dello sviluppo del tuo progetto web, si potrebbe presentare la necessità di dover fare test o lavorare su server provvisori, prima di passare il tutto su quello definitivo visto dagli utenti.
Detto questo, per capire cosa sia il file hosts, dobbiamo fare una breve descrizione del funzionamento di internet e dei DNS.
Browser, dominio, indirizzo IP
Quando visiti un sito web le azioni che compi sono:
- Apri il browser.
- Inserisci la URL (esempio.it).
- Aspetti il caricamento della pagina.
Ma se andiamo a vedere i singoli passaggi, in realtà, quello che avviene è un po’ più complesso.
Ripercorriamo il tutto.
Partiamo dalla URL. Quella che inserisci è in formato testuale, ovvero “esempio.it”.
In realtà, però, l’indirizzo del server su cui si trova tale sito, non è testuale, ma è un numero chiamato indirizzo IP, creato da 4 blocchi di numeri a 3 cifre, divisi dal punto. Ecco un esempio:
192.124.249.3
Consideralo esattamente come il numero di telefono di un tuo amico.
Quando lo vuoi chiamare, non ricordandoti tutti i numeri a memoria, cerchi nella tua rubrica “Paolo Rossi” e ti viene restituito il suo numero.
Ok ma, in internet, chi ha il ruolo di Rubrica?
Questo lavoro viene svolto dal sistema DNS (Domain Name System).
Quindi quando inserisci esempio.it come URL, il browser si mette in contatto con il sistema DNS, che gli restituisce l’indirizzo IP del server su cui si trova quel sito.
Il browser ora, sapendo il vero indirizzo, può contattare direttamente il server web e chiedergli la pagina specifica che gli hai richiesto.
La domanda che viene spontanea è “dove si trova questo sistema DNS?”.
Si trova in più punti distribuiti nella rete.
Fra i nodi di internet ci sono diversi computer che hanno questa funzione. Dico diversi perché l’informazione che lega il dominio di un sito con il numero IP del server non è memorizzata in un solo server.
In questo modo quando il browser richiede la risoluzione del dominio, ovvero a quale indirizzo IP corrisponde, utilizzerà il percorso più breve. E se un server DNS non dovesse essere disponibile, allora ce ne sarà un altro.
Tutto questo per arrivare finalmente al file hosts.
Infatti, quando inseriamo la URL, il browser, prima di fare richiesta ai DNS, guarda nel tuo PC, precisamente all’interno del file hosts, per vedere se tu stesso hai assegnato una corrispondenza fra il dominio richiesto e l’IP di un server.
Nel caso questa corrispondenza venisse trovata, allora l’IP del server è già noto e il browser può continuare il processo di richiesta della pagina, senza passare dai server DNS nella rete.
Quando modificare il file hosts?
Facciamo un esempio.
Hai il sito di un cliente – esempio.it – che si trova in hosting con un’azienda Z, situato su un server X con il relativo numero IP xxx.xxx.xxx.xxx.
Ti viene chiesto di rifare il sito e decidi di svilupparlo su un server che si trova con un altro hosting provider, su un server Y con indirizzo IP yyy.yyy.yyy.yyy.
In questo modo, durante la lavorazione, esempio.it rimarrà attivo e disponibile sul server X, mentre tu lavorerai alla nuova versione sul server Y.
Il problema è che quando anche tu digiti esempio.it nel browser vieni rimandato al sito sul server X.
Qui entra in gioco il file hosts, tramite il quale dirai che, solo ed esclusivamente per il tuo computer, dovrai vedere la versione sul server Y quando esempio.it viene richiesto.
Un’altra circostanza in cui potrebbe verificarsi utile l’utilizzo del file hosts è quella in cui decidi di cambiare l’hosting provider.
Ti dovrebbe mandare un’email simile a:
Puoi vedere in anteprima il tuo sito appena trasferito aggiungendo la seguente linea in
hosts file del tuo computer :
Codice:
192.124.249.3 tuodominio.it www.tuodominio.it
In questo modo “dirai” al tuo PC di risolvere il dominio al nostro server e non al server verso il quale è attualmente puntato.
Perfetto, viste le circostanze in cui ti potrebbe essere utile il file hosts, devi sapere dove si trova e quale procedimento fare per modificarlo.
Dove si trova il file hosts?
Il file hosts si trova in punti differenti del tuo computer, a seconda del sistema operativo che stai utilizzando.
Su OSX (Mac) e in Linux si trova in
/etc/hosts
Su Windows in
C:\Windows\System32\drivers\etc\hosts
Siccome – come avrai già intuito – è un file delicato per il sistema, un utente normale del computer non può aprirlo e modificarlo. Solo gli amministratori lo possono fare.
Vediamo quindi la procedura da fare, sia per Mac che per Windows.
Modificare il file hosts su Windows
Ci sono due sistemi per poterlo fare.
Il primo consiste nel aprire il Blocco Note come amministratore.
Per farlo vai sull’icona di Windows in basso a sinistra, sfoglia Programmi > Accessori Windows, premi il tasto destro sopra Blocco Note > Altro > Esegui come amministratore.
Ora da Blocco Note vai in File > Apri e arriva alla cartella /etc/ contenente il file hosts.
Attenzione a selezionare “Tutti i file” altrimenti vedrai questa cartella vuota.
Apri il file hosts, fai le modifiche e salva.
Un altro metodo consiste nell’andare direttamente nella cartella /etc/ e copiare il file hosts sul desktop.
Apri il file dal desktop, fai le modifiche e poi trascinalo di nuovo dentro la cartella /etc/.
Scegli “Sostituisci il file nella destinazione” e poi “Continua” quando ti compare la finestra per fornire le autorizzazioni.
Modificare il file hosts su Mac
Per modificare il file hosts su Mac dobbiamo prima arrivare alla cartella /etc/ tramite il finder.
Vai nel tuo hard disk e come vedi ci sono solo alcune cartelle accessibili, ma non quelle di sistema fra cui /etc/.
Questo perché i realizzatori di OSX fanno di tutto per evitare all’utente di commettere errori e compromettere il sistema operativo.
Quindi premi la combinazione di tasti “command + shift + G“.
Ti viene chiesto in quale cartella vuoi andare.
Scrivi /etc/ e premi Vai.
Ora cerca il file hosts e copialo sul desktop.
Aprilo con TextEdit e fai le modifiche che fra poco vedremo.
Salva e trascinalo di nuovo nella cartella /etc/.
Ti vengono richiesti i permessi, quindi premi Autentica.
Modificare e impostare il file hosts
Dentro questo file trovi il seguente contenuto – potrebbe cambiare dal sistema operativo e dai programmi che hai installato.
Devi sapere che le righe precedute dal simbolo cancelletto # sono dei commenti, che pertanto non vengono considerati dal PC in fase di esecuzione delle impostazioni del file.
Come vedi, ci sono anche degli esempi, ma andiamo subito a vedere la semplice sintassi per dire al tuo computer che il dominio esempio.it si trova su un server con relativo numero IP.
Lascia stare il file come lo hai trovato, ovvero non modificare nulla, ma aggiungi solo una riga e scrivi:
192.124.249.3 esempio.it
Ovviamente sostituendo il numero IP che ho inserito come esempio con quello del tuo nuovo server – quello dove stai sviluppando il nuovo sito – ed esempio.it con il tuo dominio.
Abbiamo quindi un formato del tipo:
NumeroIp NomeDominio
Con questa riga diciamo al PC: “Hey, quando un utente su questo computer richiede esempio.it, mandalo al server con questo indirizzo IP”.
Attenzione che non ho inserito
https://esempio.it
In quanto è una regola applicata all’intero dominio a prescindere dal protocollo utilizzato. Quindi non inserire né http, né https o altri protocolli.
Inoltre ti ricordo che esempio.it ed www.esempio.it sono due cose ben differenti.
Pertanto se vuoi impostare per entrambi l’indirizzo IP a cui devono essere associati, devi scriverli in questo formato
192.124.249.3 esempio.it www.esempio.it
Oppure
192.124.249.3 esempio.it 192.124.249.3 www.esempio.it
Perfetto, ora puoi lavorare allo sviluppo del tuo nuovo sito su un server e lasciare il sito visibile agli utenti su un altro.
A lavoro ultimato, se vuoi che gli utenti andando su esempio.it vedano il tuo nuovo sito, sul tuo nuovo server, allora devi entrare nella impostazioni DNS della gestione del dominio – attenzione ho detto dominio e non hosting – e modificarli.
Se non sai come fare puoi tranquillamente chiedere supporto all’azienda con cui hai la gestione del dominio e richiedergli supporto. Se è un buon provider ti aiuteranno loro o ti indicheranno come fare.
Se ti accorgi di non aver ben chiara la differenza fra dominio e hosting, allora leggi questo articolo. È importante.
Ricordati però che a lavori ultimati devi cancellare le impostazioni che hai fatto al file hosts del tuo PC, altrimenti non vedrai la stessa versione che navigano gli utenti.
Utilizzo alternativo del file hosts
Visto il funzionamento del file hosts e come modificarlo, ti sarai accorto di essere completamente padrone, sul tuo PC, in fatto di gestione della navigazione dal browser.
Per esempio, vuoi non fare accedere a Facebook dal tuo computer?
Allora inserisci le seguenti impostazioni
0.0.0.0 www.facebook.com facebook.com m.facebook.com
E vedrai che sarà impossibile raggiungere il sito.
Inoltre, abbiamo visto che per modificare le impostazioni DNS sono richieste delle autorizzazioni. Certo, questo perché sono impostazioni delicate anche in fatto di sicurezza.
Immagina se digitando gmail.com venissi mandato su un server di un male intenzionato, dove trovi la pagina di login perfettamente uguale a quella di gmail, con la differenza che non sei su gmail! Hai già capito le conseguenze.
Con queste ultime considerazioni chiudiamo l’articolo, ricordandoti che hai lo spazio dei commenti a disposizione per qualsiasi dubbio o messaggio ci volessi lasciare.
Buongiorno, non mi riesce di collegarmi a internet sul pc fisso da chiavetta usb wifi con hotspot mobile. La connessione senza fili e’ connessa regolarmente. I siti sono visibili in sottofondo ma sono coperti. L’unica cosa che funziona e’ google che fa vedere i risultati ma l’accesso alle singole pagine e’ bloccato. Errore del server o dns.
Ho provato a modificare le proprieta’ connessione senza fili, niente. Ho caricato un altro browser oltre internet explorer, stesso risultato. Ho provato a svuotare la cache del resolver dns con ipconfig/flushdns, uguale.
Forse dipende dal file hosts ma non so se eventuali modifiche mi apportano errori sul sistema operativo che non saprei gestire. Il mio file in xp termina con 127.0.0.1 localhost ma non c’e’ la riga ulteriore ::1 localhost come nelle altre edizioni del s.o. Puo’ dipendere da questo?
Ciao Andrea,
non posso darti assistenza sulla configurazione del tuo pc da qui.
Quello che ti posso dire è che se vuoi fare delle prove con il tuo file hosts, basta che ti salvi l’originlae, così se qualche modifica va storta puoi sempre tornare all’originlae.
Buona giornata
Se anzichè bloccare facebook voglio fare esattamente il contrario cioè autorizzarlo?
Autorizzarlo in quanto da impostazioni del sistema del network che utilizzo facebook non è autorizzato…
Ciao Stefano,
mi dispiace, ma se il blocco è a monte (per esempio un firewall che blocca i dipendenti che vogliono andare su Facebook) allora con il file host del tuo pc poco ci puoi fare.
Buona giornata
Grazie Lorenzo, molto gentile
Grazie Lorenzo gentilissimo.
Grazie mille della risposta tempestiva ed esaustiva, la mia confusione è nata da un equivoco: pensavo si potesse usare il fil host per lavorare sulle modifiche di un sito non cambiando server o dominio. Esempio: devo restaurare un sito esistente e vogliio evitare di metterlo offline.
Ciao Daniele,
infatti il dominio non lo cambi. Serve quando devi cambiare il server.
Invece se vuoi rimanere sullo stesso server, ti consiglio di leggere questo articolo:
Due installazioni di WordPress nello stesso dominio e hosting.
PS: nella risposta di prima ho aggiunto anche la parte inerente alla SEO dopo che avevi gia risposto, prova a darci un occhio.
Buona giornata
l’iindirizzo ip da utilizzare per lavorare sulle modifiche al mio ipotetico sito, come lo scelgo? Devo usare l’indirizzo ip di un altro dominio di mia proprietà? e una volta che ho preparato la nuova versione del mio sito, basta inserire questo indirizzo sul dns del mio dominio? e mentre faccio questa operazione di restauro di un sito, avrò problemi con la seo o agli occhi dei motori di ricerca non cambia nulla? scusate per i molti dubbi, ma vorrei capirci meglio.
Ciao Daniele,
vedo dalla domanda che hai un po’ di confusione, pertanto, come primo step, ti consiglio di rileggere con cura l’articolo.
Detto questo l’indirizzo IP non lo scegli.
Se hai già un sito online, questo sito sarà su un server con indirizzo IP xxx.xxx.xxx.xxx ed è associato al tuo nome dominio. Quindi quando gli utenti vanno su xxxxxx.com vedranno i contenuti che sono dentro a questo server.
Ora, vuoi cambiare hosting prvider, quindi server. Ti fai l’account e il tuo nuovo server avrà un altro indirizzo IP yyy.yyy.yyy.yyy, ma che non è raggiungibile andando su xxxxxx.com. Questo perché mentre ci lavori vuoi che gli utenti continuino a vedere il sito sul server xxx.xxx.xxx.xxx.
Affinche tu possa lavorare sulla nuova versione del sito, presente sul tuo nuovo server yyy.yyy.yyy.yyy, devi fare in modo che nel tuo computer, e solo in quello, quando richiedi il sito xxxxxx.com vieni rimandato al server yyy.yyy.yyy.yyy e non al xxx.xxx.xxx.xxx come tutti gli altri.
Questo lo file tramite il file hosts.
Una volta che hai finito i lavori è arrivato il momento in cui tutto il mondo andando su xxxxxxx.com veda il contenuto del sito presente sul server yyy.yyy.yyy.yyy.
Per farlo devi modificare i DNS, ovvero la “rubricha del telefono”, associando appunto al dominio xxxxxxx.com il server (“numero di telefono”) yyy.yyy.yyy.yyy.
Per quanto riguarda la SEO non ci sono problemi. Google è esattamente come un utente. Mentre lavori sul nuovo sito, lui continuerà a vedere i contenuti del vecchio sito. Quando farai il cambiamento, passando a quello nuovo, allora anche Google leggerà i nuovi contenuti (o gli stessi se non li hai variati) e indicizzerà quelli.
Buona giornata