Tệp /etc/hosts
và DNS không hoạt động cùng nhau. Họ cung cấp độ phân giải độc lập của tên (tên mạng).
Chất keo liên kết chúng là bên trong /etc/nsswitch.conf
cho các hệ thống linux . Trong /etc/netsvc.conf
các máy chủ AIX, trong hệ thống dành cho Windows và có thể được liệt kê vớilookupd -configuration
(tìm kiếm Tra cứu, tương tự như Cache FF DNS NI DS
:) trong các hệ thống MacOS.
Trật tự thực tế trở nên phức tạp và thường bị xáo trộn vì mỗi dịch vụ phân giải tên có thể (và nhiều lần làm) nhìn vào các cấp độ phân giải khác. Giống như dnsmasq
(một máy chủ DNS nhẹ nói chung tại 127.0.0.1:53
, hoặc ::1:53
(hoặc cả hai)) thường đọc và bao gồm /etc/hosts
nội dung tệp. Hoặc like systemd.resolver
(một trình phân giải cơ bản chỉ nên giải quyết các tên không được chấm như mycomputer
) gọi trực tiếp độ phân giải DNS cho các tên được chấm ( mycomputer.here.dev.
) trong một số điều kiện.
Nói chung, các dịch vụ được gọi theo thứ tự và dịch vụ đầu tiên không thắng và được chấp nhận là địa chỉ chính xác. Thứ tự cơ bản chung là: /etc/hosts
(tệp), mDNS (tên không được chấm), DNS, NIS, NIS +, LDAP. Trong một số hệ thống linux có độ phân giải cuối cùng cho máy tínhhostname
trong dịch vụmyhostname
Ví dụ: trong hệ thống này (từ cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Lưu ý rằng rất cũ (glibc 2.4 trở về trước) order
entry bộ trong/etc/host.conf
như:
order hosts,bind,nis
Chỉ áp dụng cho các tập tin (tập tin /etc/hosts
dịch vụ tên ).
Các hiệu ứng trên máy khách (linux) này liên quan đến NIS và LDAP là (thường) được kiểm soát bởi máy chủ DNS được sử dụng (liên kết, không gắn kết, v.v.).
vì thế:
- Nếu tên máy chủ có thể được phân giải trong / etc / hosts, DNS có áp dụng sau / etc / hosts để phân giải tên máy chủ hoặc coi địa chỉ IP được giải quyết bằng / etc / hosts làm "tên máy chủ" để giải quyết đệ quy không?
Không ai.
Nếu tên máy chủ có thể được giải quyết /etc/hosts
, DNS
thì không áp dụng (nếu tệp nằm trước DNS).
địa chỉ IP được giải quyết cũng không được coi là "tên máy chủ".
Nó chỉ đơn giản là: địa chỉ được giải quyết.
trình duyệt
Một trình duyệt có thể sử dụng bất kỳ phương pháp nào để phân giải tên (sau khi nó đã kiểm tra bộ đệm của các tên đã phân giải). Chỉ khi nó sử dụng một hệ thống được cung cấp phương pháp, thứ tự được đưa ra ở trên mới áp dụng. Trình duyệt, như bất kỳ chương trình nào, có thể chọn liên hệ trực tiếp với bất kỳ máy chủ DNS nào.
Nếu thứ tự hệ thống có /etc/hosts
trước DNS
, điều đó có nghĩa là một mục trong tệp đó sẽ được ưu tiên cho DNS
dịch vụ phân giải.
Vì thế:
- ... Điều đó có nghĩa là / etc / hosts ghi đè DNS để phân giải tên máy chủ?
Có (nếu trình duyệt sử dụng hệ thống cung cấp độ phân giải).
Tại sao không /etc/hosts
áp dụng lại, để tôi không thể kết nối với trang web?
Chỉ cho đến khi bộ nhớ cache bên trong của trình duyệt bị xóa (hoặc hết thời gian) cho tên cụ thể đó là tên đó được tìm kiếm bên ngoài trình duyệt một lần nữa.
Nếu trình duyệt có tên được giải quyết trong bộ đệm, trình duyệt sẽ sử dụng lại.
Sử dụng để xóa bộ nhớ cache .
Hoặc chỉ cần đóng (chờ một lát) và khởi động lại trình duyệt.
/etc/hosts
và các máy chủ tên được xác định cục bộ. Lần đầu tiên chứng kiến điều đó thật khó hiểu. (Nhìn vào bạn, các trình duyệt dựa trên Chromium!)