Obiettivo: capire e modificare il file hosts
per forzare la risoluzione dei domini verso IP specifici. Utile per: test DNS/staging, lavoro locale, blocco siti.
Indice
- Cos’è e come funziona
- Dove si trova (Windows/macOS/Linux/WSL)
- Come modificarlo
- Esempi pronti (staging, blocco, IPv6, locale)
- Svuotare la cache DNS (flush)
- Verifiche e debug
- FAQ veloci
- Checklist
Tip: prima di modificare hosts
, crea un backup del file originale.
Cos’è e come funziona
hosts
è un file di testo letto dal sistema operativo durante la risoluzione dei nomi a dominio. Se una riga associa un hostname a un IP, quella mappatura ha precedenza sul DNS pubblico.
203.0.113.5 example.com
203.0.113.5 www.example.com
127.0.0.1 blocca.questo.sito
::1 ipv6.local.test
Dove si trova
- Windows 10/11 →
C:\Windows\System32\drivers\etc\hosts
- macOS →
/etc/hosts
- Linux →
/etc/hosts
- WSL →
/etc/hosts
(separato da Windows)
Come modificarlo
Windows (Blocco note come Amministratore)
- Start → cerca Blocco note → clic destro → Esegui come amministratore.
- File → Apri → incolla
C:\Windows\System32\drivers\etc\hosts
(mostra “Tutti i file”). - Modifica → Salva.
In alternativa: PowerShell (Admin) → notepad C:\Windows\System32\drivers\etc\hosts
.
macOS
- Apri Terminale.
sudo nano /etc/hosts
(osudo vim /etc/hosts
).- Inserisci la password → modifica →
Ctrl+O
per salvare (nano) →Ctrl+X
per uscire.
Linux
- Apri Terminale.
sudo nano /etc/hosts
(o il tuo editor).- Salva e chiudi.
Esempi pronti
1) Forzare un dominio verso uno staging (prima del cambio DNS)
# Punta example.com allo staging (nuovo server)
198.51.100.42 example.com
198.51.100.42 www.example.com
Aprendo https://example.com
dal tuo PC vedrai lo staging, mentre gli altri continueranno a vedere il sito attuale.
2) Bloccare un dominio
# Invia il dominio a localhost (non risponderà)
127.0.0.1 tracker.ecc.example
127.0.0.1 social.example
Effetto locale: vale solo sul tuo dispositivo. Per blocchi “di rete” valuta DNS filtranti o Pi-hole.
3) Test IPv6
# Forza un hostname alla loopback IPv6
::1 app.local.test
4) Ambiente locale con più host
127.0.0.1 api.local.test
127.0.0.1 web.local.test
127.0.0.1 admin.local.test
Svuotare la cache DNS (flush)
- Windows → Prompt/PowerShell:
ipconfig /flushdns
- macOS:
Su versioni recenti basta spesso il secondo comando.sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder
- Linux (dipende dal resolver):
# systemd-resolved sudo resolvectl flush-caches # nscd sudo service nscd restart
- Browser (Chrome):
Apri la pagina e svuota la cache host.chrome://net-internals/#dns
Verifiche e debug
1) Quale IP viene risolto?
- Windows (PowerShell):
Resolve-DnsName example.com
- macOS/Linux:
getent hosts example.com # oppure dig +short example.com
2) Se non vedi l’effetto
- Fai il flush (sezione sopra).
- Controlla che la riga non sia commentata (
#
all’inizio). - Usa spazi o tab tra IP e hostname; evita caratteri strani.
- Aggiungi tutte le varianti (
www.example.com
eexample.com
). - VPN/agent di sicurezza possono interferire: prova a disabilitare temporaneamente o aggiungi eccezioni.
3) Verifica di rete rapida
- Controlla che il nome host risponda dalla tua rete (test di raggiungibilità).
- Su macOS/Linux, esegui un test di instradamento verso il nome host dal Terminale.
- Su Windows, esegui il test di instradamento equivalente dallo strumento di sistema.
In alternativa, usa gli strumenti DNS (dig
su macOS/Linux, Resolve-DnsName
su Windows) per verificare l’IP risolto.
FAQ veloci
- Posso usare wildcard? No:
*.example.com
non è supportato. Elenca ogni hostname. - Vale per tutti gli utenti del PC? Sì, è a livello di sistema.
- È rischioso? Solo se mappi domini sensibili verso IP non fidati. Tieni un backup e commenta le righe temporanee.
- E con Docker/WSL? Gli
/etc/hosts
dentro container/WSL sono separati: modifica anche lì se serve.
Checklist
- Backup del file originale.
- Modifica con permessi elevati (Admin o
sudo
). - Aggiungi sia
example.com
siawww.example.com
se necessario. - Flush cache DNS (sistema + browser).
- Verifica con
Resolve-DnsName
/dig
/getent
. - Commenta/rimuovi le righe dopo i test.