Il file /etc/hostse il DNS non funzionano insieme. Forniscono risoluzioni indipendenti di nomi (nomi di rete).
La colla che li collega è dentro /etc/nsswitch.confper i sistemi linux . In /etc/netsvc.confper server AIX, nel sistema per Windows e potrebbe essere elencato con lookupd -configuration(cerca LookupOrder, simile a:) Cache FF DNS NI DSnei 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/hostscontenuto 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 hostnamenel 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) orderdi entrata insieme a/etc/host.conf come:
order hosts,bind,nis
Si applica solo al /etc/hostsservizio 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, DNSnon 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/hostsprima DNS, significa che una voce in quel file avrà la precedenza sul DNSservizio 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/hostsapplica 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/hostsi server dei nomi definiti localmente. È abbastanza confuso assistere alla prima volta. (Guardandoti, browser basati su Chromium!)