Plik /etc/hostsi DNS nie działają razem. Zapewniają niezależne rozdzielczości nazw (nazw sieciowych).
Klej, który je łączy, znajduje się wewnątrz /etc/nsswitch.confsystemów Linux . W /etc/netsvc.confprzypadku serwerów AIX w systemie Windows i może być wymieniony jako lookupd -configuration(wyszukaj LookupOrder, podobny do:) Cache FF DNS NI DSw systemach MacOS.
Rzeczywista kolejność staje się złożona i zwykle zawiłowana, ponieważ każda usługa rozpoznawania nazw może (i niejednokrotnie) zajrzeć do innych poziomów rozdzielczości. Podobnie jak dnsmasq(lekki serwer DNS zwykle w 127.0.0.1:53lub ::1:53(lub oba)) zwykle czyta i zawiera /etc/hostszawartość pliku. Lub podobna systemd.resolver(podstawowy program rozpoznawania nazw, który powinien rozpoznawać tylko nazwy bez kropek, np. mycomputer) Wywołuje bezpośrednio rezolucje DNS dla nazw kropkowanych ( mycomputer.here.dev.) pod pewnymi warunkami.
Zasadniczo usługi są wywoływane w kolejności, a pierwsza, która nie zawiedzie, wygrywa i jest akceptowana jako poprawny adres. Ogólna kolejność podstawowa to: /etc/hosts(plik), mDNS (nazwy bez kropek), DNS, NIS, NIS +, LDAP. W niektórych systemach linuxowych istnieje rozdzielczość ostateczna dla komputera hostnamew serwisiemyhostname
Na przykład w tym systemie (od cat /etc/nsswitch):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Zauważ, że bardzo stary (glibc 2.4 i wcześniejszy) orderwpis ustawiony/etc/host.conf jako:
order hosts,bind,nis
Dotyczy tylko /etc/hostsusługi nazewnictwa plików (plików ).
Wpływ na ten (kliencki) komputer kliencki związany z NIS i LDAP jest (zwykle) kontrolowany przez używany serwer DNS (powiązanie, niezwiązany itp.).
więc:
- Jeśli nazwa hosta może zostać rozstrzygnięta w / etc / hosts, to czy DNS stosuje się po / etc / hosts do rozpoznania nazwy hosta, czy też traktuje rozstrzygnięty adres IP przez / etc / hosts jako „nazwę hosta”, aby rozwiązać rekurencyjnie?
Żaden.
Jeśli nazwa hosta może zostać rozpoznana w /etc/hosts, DNSnie ma zastosowania (jeśli pliki znajdują się przed DNS).
rozstrzygnięty adres IP nie jest również traktowany jako „nazwa hosta”.
To po prostu: rozstrzygnięty adres.
przeglądarka
Przeglądarka może użyć dowolnej metody do rozpoznania nazwy (po sprawdzeniu pamięci podręcznej rozpoznanych nazw). Tylko w przypadku zastosowania metody dostarczonej przez system obowiązuje powyższa kolejność. Przeglądarka, jak każdy program, może wybrać bezpośredni kontakt z dowolnym serwerem DNS.
Jeśli zamówienie systemowe miało to /etc/hostswcześniej DNS, oznacza to, że wpis w tym pliku będzie miał pierwszeństwo przed DNSusługą rozstrzygania.
Więc:
- ... Czy to oznacza, że / etc / hosts zastępuje DNS w celu rozwiązania nazw hostów?
Tak (jeśli przeglądarka korzysta z rozdzielczości dostarczonej przez system).
Dlaczego nie /etc/hostszłożysz ponownie, aby nie móc połączyć się z witryną?
Tylko do momentu wyczyszczenia (lub przekroczenia limitu) pamięci podręcznej przeglądarki dla tej konkretnej nazwy nazwa ta jest ponownie wyszukiwana poza przeglądarką.
Jeśli nazwa przeglądarki została rozpoznana w pamięci podręcznej, przeglądarka używa jej ponownie.
Użyj tego, aby wyczyścić pamięć podręczną .
Lub po prostu zamknij (poczekaj chwilę) i uruchom ponownie przeglądarkę.
/etc/hostsi lokalnie zdefiniowane serwery nazw. Świadectwo za pierwszym razem jest dość mylące. (Patrzę na ciebie, przeglądarki oparte na chromie!)