Il file /etc/hosts
e il DNS non funzionano insieme. Forniscono risoluzioni indipendenti di nomi (nomi di rete).
La colla che li collega è dentro /etc/nsswitch.conf
per i sistemi linux . In /etc/netsvc.conf
per server AIX, nel sistema per Windows e potrebbe essere elencato con lookupd -configuration
(cerca LookupOrder, simile a:) Cache FF DNS NI DS
nei sistemi MacOS.
L'ordine reale diventa complesso e solitamente contorto come ogni servizio di risoluzione dei nomi potrebbe (e molte volte lo fa) guardare all'interno di altri livelli di risoluzione. Come dnsmasq
(un server DNS leggero generalmente in 127.0.0.1:53
, o ::1:53
(o entrambi)) di solito legge e include il /etc/hosts
contenuto del file. O come systemd.resolver
(un risolutore di base che dovrebbe risolvere solo nomi non puntati come mycomputer
) chiama direttamente le risoluzioni DNS per i nomi punteggiati ( mycomputer.here.dev.
) in alcune condizioni.
In generale, i servizi vengono chiamati in ordine e il primo che non fallisce vince e viene accettato come indirizzo corretto. L'ordine di base generale è: /etc/hosts
(file), mDNS (nomi non punteggiati), DNS, NIS, NIS +, LDAP. In alcuni sistemi Linux esiste un'ultima risorsa per il computer hostname
nel serviziomyhostname
Ad esempio, in questo sistema (da cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Si noti che le persone molto anziane (glibc 2.4 e precedenti) order
di entrata insieme a/etc/host.conf
come:
order hosts,bind,nis
Si applica solo al /etc/hosts
servizio di nomi file (file ).
Gli effetti su questo computer client (linux) relativi a NIS e LDAP sono (generalmente) controllati dal server DNS utilizzato (bind, unbound, ecc.).
così:
- Se un nome host può essere risolto in / etc / hosts, DNS si applica dopo / etc / hosts per risolvere il nome host o considera l'indirizzo IP risolto da / etc / hosts come un "nome host" da risolvere in modo ricorsivo?
Nessuna.
Se è possibile risolvere un nome host /etc/hosts
, DNS
non si applica (se i file sono precedenti a DNS).
né l'indirizzo IP risolto viene trattato come un "nome host".
È semplicemente: l'indirizzo risolto.
del browser
Un browser potrebbe utilizzare qualsiasi metodo per risolvere un nome (dopo aver verificato la cache dei nomi risolti). Solo se utilizza un metodo fornito dal sistema si applica l'ordine sopra indicato. Il browser, come qualsiasi programma, potrebbe scegliere di contattare direttamente qualsiasi server DNS.
Se l'ordine di sistema ha /etc/hosts
prima DNS
, significa che una voce in quel file avrà la precedenza sul DNS
servizio di risoluzione.
Così:
- ... Significa che / etc / hosts ha la precedenza su DNS per la risoluzione dei nomi host?
Sì (se il browser utilizza la risoluzione fornita dal sistema).
Perché non si /etc/hosts
applica di nuovo, quindi non riesco a collegarmi al sito Web?
Solo fino a quando la cache interna del browser non viene svuotata (o scade) per quel nome specifico, quel nome viene cercato nuovamente al di fuori del browser.
Se il browser ha un nome risolto nella sua cache, il browser lo utilizza nuovamente.
Usa questo per cancellare la cache .
O semplicemente chiudi (attendi qualche istante) e riavvia il browser.
/etc/hosts
i server dei nomi definiti localmente. È abbastanza confuso assistere alla prima volta. (Guardandoti, browser basati su Chromium!)