Come modificare il file hosts su Windows, Mac e Linux
Anche se usiamo Internet quotidianamente, non ci poniamo molte domande su come realmente funzioni, ma c'è un aspetto di questa tecnologia che forse potrebbe interessarvi nel caso stiate costruendo un sito Web oppure vogliate sapere come bloccare la navigazione su alcuni siti dal vostro computer di casa.
In questi casi, infatti, vorreste sapere cos'è, a cosa serve e come modificare il file hosts, da PC Windows, Mac o Linux (qui trovate le migliori distro Linux 2023). Le origini di questo file risalgono agli albori di Internet, ma è una soluzione tutt'ora molto utile per alcuni specifici casi, come quelli sopra citati.
Andiamo a vedere quindi come usarlo al meglio per le nostre necessità, e se all'inizio può sembrare una cosa da nerd, scoprirete presto che si tratta di una soluzione semplice e a portata di mano. Ma prima di tuffarci in questo approfondimento, vogliamo ricordarvi la nostra guida su come disattivare Windows Defender su Windows 11.
Cos'è e a cosa serve il file hosts
Prima di vedere come modificare un file hosts cerchiamo di capire esattamente cosa sia, e per questo bisogna comprendere almeno in parte come funziona Internet.
Il nome di un sito, che ci serve da inserire nel campo degli indirizzi quando vogliamo visitarlo, è in realtà serve per noi, ma quando apriamo una pagina Web il browser un indirizzo IP (Internet Protocol), un'etichetta univoca assegnata a siti Web e server, nonché a dispositivi digitali che si connettono a Internet, inclusi computer, smartphone, tablet o stampanti.
Ma l'indirizzo IP è un numero, come può un computer sapere che quando inseriamo il nome di un sito in realtà ci stiamo riferendo a un indirizzo IP? È qui che interviene il file hosts, un file del sistema operativo (che sia Windows, macOS o Linux) che mappa i nomi hosts agli indirizzi IP.
È un file di testo normale denominato HOSTS.TXT, che già ai tempi di ArpaNet, il precursore di Internet, conteneva i nomi hosts e l'indirizzo degli hosts.
La struttura del file hosts è molto semplice: per ogni riga avrete un indirizzo IP, seguito dai nomi a dominio associati.
Prima dell'introduzione del DNS (Domain Name System), non esisteva un sistema centralizzato e automatizzato per la risoluzione dei nomi host. Ogni computer o rete locale si basava sul proprio file hosts, che contiene un elenco di nomi host noti e i rispettivi indirizzi IP.
Da quando è stato implementato il DNS una rete di computer che consente di accedere a un sito digitandone il nome (invece dell'indirizzo IP), i computer non dipendono più da questo file in quanto possono recuperare automaticamente gli indirizzi dei nomi host dalla rete DNS, ma il file hosts rimane nei sistemi operativi perché consente di impostare indirizzi IP per un dominio sul computer locale che potrebbe sovrascrivere il DNS, permettendo dii vedere cosa visualizzerà un dominio se è puntato a un server diverso.
Quindi ricapitolando, Internet funziona così: si inserisce il nome di un sito (per esempio www.smartworld.it) nel campo indirizzi di un browser, che cerca tale nome nel DNS, recuperando i suoi indirizzi IP.
Successivamente, il browser stabilisce una connessione TCP con uno degli indirizzi IP, e visto che non avete specificato una porta, il browser utilizzerà la porta predefinita per il protocollo HTTP. A questo punto il browser invia una richiesta HTTP al server, riceve una risposta e visualizza la pagina.
Mettiamo però che noi abbiamo modificato il file hosts. Questo agisce localmente sul computer, quindi quando si inserisce il nome di un sito in un browser il sistema operativo controlla per prima cosa l'associazione con l'indirizzo IP specificato (se presente nel file hosts), connettendolo. Altrimenti utilizza i server DNS come visto poche righe sopra.
A cosa può servire quindi un file hosts? Un file hosts può servire per bloccare l'accesso a un sito web, per esempio nel caso di un computer di casa che non vogliamo i nostri figli utilizzino per andare su certi siti.
Questo può essere fatto facilmente puntando il dominio di un sito web all'indirizzo non valido 0.0.0.0 o localhost 127.0.0.1, creando quello che si dice un loopback (il traffico indietro verso la stessa sorgente da cui ha avuto origine).
Ma non è l'unico utilizzo. Mettiamo che state creando un nuovo sito web, ma non avete ancora registrato un nome di dominio. Potete modificare il vostro file hosts per collegare un dominio inesistente all'IP dell'hosting e iniziare a costruire il sito web.
Allo stesso modo, se avete già un sito potete modificare il file hosts per sviluppare aggiornamenti al sito sul server di prova mentre gli utenti continuano a visitare il sito esistente.
Attenzione, vista la sua importanza, un malware potrebbe prendere di mira il file hosts e modificarlo senza che l'utente se ne accorga, reindirizzando così l'utente verso siti malevoli o bloccando alcune risorse come il servizio antivirus. Antivirus o firewall proteggono da tali attacchi.
Chiariti questi aspetti, vediamo come modificare il file hosts a seconda del vostro sistema operativo, Windows, macOS o Linux.
Come modificare il file hosts
I file hosts sono quindi comunemente utilizzati per forzare una connessione tra un sito web e un nome di dominio indicato dai record DNS a un altro indirizzo. La prima cosa da fare è però ottenere l'indirizzo IP del sito web.
L'indirizzo si trova di solito nel pannello di controllo del vostro account di hosting. Per Aruba, ad esempio, dal Pannello di Controllo dovete andare a sinistra nella voce Dominio e poi Gestione DNS e Name Server. In alternativa, potete usare un servizio come DNS Lookup di WhatIsMyIP.com, che vi permette di inserire un URL e recuperare il suo indirizzo IP.
Successivamente, vi serve trovare il file hosts, che ovviamente è in una posizione diversa a seconda del sistema operativo, e potete modificarlo per aggiungere l'indirizzo IP e il nome del dominio.
Come abbiamo detto il file hosts è un semplice file di testo e per modificarlo vi basta utilizzare un editor con privilegi di amministratore.
Il formato generico di una riga del file hosts è così:
[Indirizzo IP] [URL] #[Commento]
Dopo aver effettuato le modifiche, per controllare che tutto sia stato eseguito correttamente non dovete fare altro che aprire il browser, cancellare la cache e inserire il nome del dominio del sito.
Questo in generale: vediamo come modificare il file hosts a seconda del sistema operativo.
Windows
La modifica del file hosts su Windows 8, 10 e 11 è sostanzialmente la stessa, in quanto prevede l'utilizzo di Blocco Note con privilegi di amministratore.
Per prima cosa, sappiate che il file hosts si trova in qualunque versione di Windows nella cartella C:\Windows\System32\drivers\etc\hosts.
Aprite quindi con Blocco Note con privilegi di amministratore. Per farlo, premete il tasto Windows, poi scrivete blocco note e cliccateci sopra con il tasto destro del mouse, per poi selezionare la voce Esegui come amministratore.
Cliccate su Sì, e si aprirà l'app. Cliccate su File in alto a sinistra, poi selezionate Apri e in alto, nel campo vuoto dove probabilmente vedrete la voce Documenti (di fianco alle frecce sinistra, destra e in alto), inserite il percorso C:\Windows\System32\drivers\etc\.
In basso a destra, dovete vedete il menu a tendina Documenti di testo (*.txt) e selezionate Tutti i file (*.*): nella finestra apparirà un elenco di file: selezionate hosts e cliccate in basso a destra su Apri.
Vedrete una serie di righe che iniziano per cancelletto (#): sono una sorta di guida che spiega come utilizzare come questo file e non vengono eseguite proprio in virtù di questo simbolo a inizio riga.
Adesso potete effettuare le modifiche posizionando il cursore in fondo all'ultima riga e andate a capo. Se per esempio volete bloccare un sito, dovete digitare l'IP del computer locale, il cui nome predefinito è Localhost, e che consente alla macchina di connettersi e comunicare con sé stessa.
Assegnando questo IP a un sito effettuerete quello che viene chiamato loopback, ovvero il computer si connetterà con sé stesso, di fatto non connettendosi a un sito esterno.
127.0.0.1 nomesito.estensione #blocco sito
Come abbiamo spiegato poche righe sopra, il numero rappresenta l'IP del sito, nomesito.estensione il nome del sito e #blocco sito è il commento, che vi serve per sapere cosa state facendo.
Se invece volete collegare un dominio non esistente a un indirizzo IP, perché per esempio state creando un sito, inserite l'indirizzo IP e poi il nome del sito.
Se doveste aggiungere più siti Web, scrivetene uno per riga, andando a capo ogni volta, poi salvate il file cliccando in alto a sinistra su File e poi su Salva.
Mac
Se volete modificare il file hosts Mac la procedura non è molto diversa, ma macOS X il file hosts si trova un un'altra posizione:
/private/etc/hosts
Per modificarlo, dovete aprire l'app Terminale. Cliccate sul Launchpad (l'icona con nove quadrati colorati nel Dock) e scrivete Terminale, poi cliccate sul risultato corrispondente.
In alternativa, cliccate sul Finder, l'icona con la faccia sorridente nel Dock, poi in alto cliccate sul menu Vai e selezionate Utility. Qui cliccate due volte su Terminale.app.
Per prima cosa, assicuratevi di trovarvi nella cartella di primo livello del Mac digitando il comando e poi premendo il tasto Invio:
cd /
Ora siete sicuri di essere nella cartella principale Macintosh HD. Ora dovete avviare un editor di testo per aprire il file hosts. Useremo l'editor di testo integrato Pico, da aprire utilizzando il comando che specifica l'uso dei privilegi di amministratore (sudo). Inserite il seguente comando e premete il tasto Invio:
sudo pico /private/etc/hosts
Vi verrà chiesto di fornire la password dell'amministratore di sistema (quella che vi consente l'accesso al computer). Digitate la password e confermate con Invio (attenzione: la password non apparirà, neanche mascherata, quindi non spaventatevi).
Ora potete aggiungere le impostazioni personalizzate del nome host.
Per impostazione predefinita, il file contiene solo poche righe che definiscono l'indirizzo per localhost e broadcasthost, o anche nessuna. In caso ce ne siano, utilizzate i tasti freccia per andare con il cursore sotto l'ultima riga dove potete aggiungere una nuova voce.
Potete utilizzare la stessa sintassi vista sopra per bloccare un dominio o puntare un dominio a un server specifico.
Dopo aver finito di aggiungere le nuove impostazioni, premete la combinazione di tasti Control + O per confermarle, quindi premete il tasto Invio. Infine, potete premere i tasti Control + X per uscire dall'editor Pico.
Linux
In un sistema operativo Linux, il file hosts è in questa posizione:
/etc/hosts
Se notate una somiglianza con il Mac, è perché macOS X è basato su Linux, e proprio come sul Mac per modificare il file hosts dovete agire da terminale.
Per aprire il terminale, per esempio su Ubuntu, cliccate sull'icona che rimanda a tutte le applicazioni (un quadrato nel dock formato da piccoli quadratini, in basso a sinistra).
Scrivete Terminale e cliccate sull'icona corrispondente. Ora, come su Mac, dovete inserire questo comando per assicurarvi di essere nella cartella di primo livello digitando il comando:
cd /
Come da Mac, per effettuare la modifica al file hosts avete bisogno dei privilegi di amministratore e un editor di testo come Nano. Inserite il seguente comando e premete il tasto Invio:
sudo nano /etc/hosts
Il sistema vi chiederà di inserire la password dell'amministratore prima di aprire il file. Digitatela (non apparirà, neanche nascosta) e premete il tasto Invio. Ora appariranno alcune righe: usate i tasti freccia per posizionare il cursore di testo sotto l'ultima riga e aggiungete le impostazioni del nome host come abbiamo visto sopra.
Per confermare le nuove modifiche, premete la combinazione di tasti Ctrl + O e premete il tasto Invio, poi uscite dall'editor premendo i tasti Ctrl + X.