Il file è /etc/hosts
iniziato ai vecchi tempi di DARPA come file di risoluzione per tutti gli host connessi a Internet (prima che esistesse il DNS). Ha la massima priorità, il che significa che questo file è preferito rispetto a qualsiasi altro sistema di nomi. 1
Tuttavia, come singolo file, non si adatta bene: la dimensione del file diventa troppo grande molto presto. Ecco perché è stato sviluppato il sistema DNS, un sistema di nomi distribuito gerarchico. Consente a qualsiasi host di trovare in modo efficiente l'indirizzo numerico di qualche altro host.
Il concetto molto vecchio del /etc/hosts
file è molto semplice, solo un indirizzo e un nome host:
127.0.0.1 localhost
per ogni riga. Questo è un semplice elenco di coppie di indirizzo-host. 2
Il suo utilizzo principale attuale è quello di bypassare la risoluzione DNS. Una corrispondenza trovata nel /etc/hosts
file verrà utilizzata prima di qualsiasi voce DNS. Infatti, se il nome cercato (come localhost
) viene trovato nel file, non verrà eseguita alcuna risoluzione DNS.
1 Bene, l'ordine di risoluzione dei nomi è effettivamente definito in /etc/nsswitch.conf
, che di solito ha questa voce:
hosts: files dns
che significa "prova files ( /etc/hosts
); e se fallisce, prova DNS".
Ma quell'ordine potrebbe essere modificato o ampliato.
2 (ai giorni nostri) Il file hosts contiene righe di testo costituite da un indirizzo IP nel primo campo di testo seguito da uno o più nomi host. Ogni campo è separato da uno spazio bianco: le schede sono spesso preferite per motivi storici, ma vengono utilizzati anche gli spazi. Le righe di commento possono essere incluse; sono indicati da un ottotorpe (#) nella prima posizione di tali linee. Le righe completamente vuote nel file vengono ignorate. Ad esempio, un tipico file host può contenere quanto segue:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
Questo esempio contiene voci per gli indirizzi di loopback del sistema e i loro nomi host, la prima riga è un tipico contenuto predefinito del file hosts. La seconda riga ha diversi nomi aggiuntivi (probabilmente validi solo nei sistemi locali). L'esempio mostra che un indirizzo IP può avere più nomi host (localhost e loopback) e che un nome host può essere mappato su indirizzi IP sia IPv4 che IPv6, come mostrato rispettivamente sulla prima e seconda riga. Un nome ( mycomputer.lan
) può essere risolto in più indirizzi ( 192.168.0.8 10.0.0.27
). Tuttavia, in tal caso, quale viene utilizzato dipende dalle route (e dalle relative priorità) impostate per il computer.
Alcuni sistemi operativi precedenti non avevano modo di segnalare un elenco di indirizzi per un determinato nome.