Tệp /etc/hosts
bắt đầu từ DARPA ngày xưa dưới dạng tệp phân giải cho tất cả các máy chủ được kết nối với internet (trước khi DNS tồn tại). Nó có mức độ ưu tiên tối đa, có nghĩa là tệp này được ưu tiên trước bất kỳ hệ thống tên nào khác. 1
Tuy nhiên, là một tệp duy nhất, nó không có tỷ lệ tốt: kích thước của tệp sẽ trở nên quá lớn rất sớm. Đó là lý do tại sao hệ thống DNS được phát triển, một hệ thống tên phân tán phân cấp. Nó cho phép bất kỳ máy chủ nào tìm thấy địa chỉ số của một số máy chủ khác một cách hiệu quả.
Các rất khái niệm cũ của /etc/hosts
tập tin là rất đơn giản, chỉ là một địa chỉ và tên máy chủ:
127.0.0.1 localhost
cho mỗi dòng. Đó là một danh sách đơn giản của các cặp máy chủ địa chỉ. 2
Việc sử dụng chính hiện nay của nó là bỏ qua độ phân giải DNS. Một kết quả tìm thấy trong /etc/hosts
tệp sẽ được sử dụng trước bất kỳ mục nhập DNS nào. Trong thực tế, nếu tên được tìm kiếm (như localhost
) được tìm thấy trong tệp, không có độ phân giải DNS nào được thực hiện cả.
1 Vâng, thứ tự phân giải tên thực sự được xác định trong /etc/nsswitch.conf
, thường có mục này:
hosts: files dns
có nghĩa là "thử tệp ( /etc/hosts
); và nếu thất bại, hãy thử DNS."
Nhưng thứ tự đó có thể được thay đổi hoặc mở rộng.
2 (trong thời hiện tại) Tệp máy chủ chứa các dòng văn bản bao gồm địa chỉ IP trong trường văn bản đầu tiên theo sau là một hoặc nhiều tên máy chủ. Mỗi trường được phân tách bằng khoảng trắng - các tab thường được ưa thích vì lý do lịch sử, nhưng không gian cũng được sử dụng. Dòng bình luận có thể được bao gồm; chúng được chỉ định bởi một octothorpe (#) ở vị trí đầu tiên của các dòng như vậy. Các dòng trống hoàn toàn trong tệp bị bỏ qua. Ví dụ: một tệp máy chủ điển hình có thể chứa các mục sau:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
Ví dụ này chứa các mục nhập cho các địa chỉ loopback của hệ thống và tên máy chủ của chúng, dòng đầu tiên là một nội dung mặc định điển hình của tệp máy chủ. Dòng thứ hai có một số tên bổ sung (có lẽ chỉ hợp lệ trong các hệ thống cục bộ). Ví dụ minh họa rằng một địa chỉ IP có thể có nhiều tên máy chủ (localhost và loopback) và tên máy chủ có thể được ánh xạ tới cả địa chỉ IP IPv4 và IPv6, như được hiển thị trên các dòng đầu tiên và thứ hai. Một tên ( mycomputer.lan
) có thể phân giải thành nhiều địa chỉ ( 192.168.0.8 10.0.0.27
). Tuy nhiên, trong trường hợp đó, cái nào được sử dụng phụ thuộc vào các tuyến (và mức độ ưu tiên của chúng) được đặt cho máy tính.
Một số HĐH cũ không có cách nào để báo cáo danh sách các địa chỉ cho một tên cụ thể.