Plik /etc/hosts
i DNS nie działają razem. Zapewniają niezależne rozdzielczości nazw (nazw sieciowych).
Klej, który je łączy, znajduje się wewnątrz /etc/nsswitch.conf
systemów Linux . W /etc/netsvc.conf
przypadku serwerów AIX w systemie Windows i może być wymieniony jako lookupd -configuration
(wyszukaj LookupOrder, podobny do:) Cache FF DNS NI DS
w 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:53
lub ::1:53
(lub oba)) zwykle czyta i zawiera /etc/hosts
zawartość 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 hostname
w 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) order
wpis ustawiony/etc/host.conf
jako:
order hosts,bind,nis
Dotyczy tylko /etc/hosts
usł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
, DNS
nie 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/hosts
wcześniej DNS
, oznacza to, że wpis w tym pliku będzie miał pierwszeństwo przed DNS
usł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/hosts
zł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/hosts
i lokalnie zdefiniowane serwery nazw. Świadectwo za pierwszym razem jest dość mylące. (Patrzę na ciebie, przeglądarki oparte na chromie!)