Có nên / etc / hosts chứa một mục như '127.0.0.1 localhost myhost.example.org myhost' không?


16

Khi xem xét một loạt các hệ thống Linux và FreeBSD, tôi nhận thấy rằng trên một số hệ thống /etc/hostscó một mục nhập cho tên máy chủ công cộng của máy chủ lưu trữ, nhưng không phải trên hệ thống khác.

Thực hành tốt nhất ở đây là gì? Tập tin / etc / hosts của tôi có nên chứa một mục nhập cho máy chủ FQDN (ví dụ: myhost.example.org) và cho tên máy chủ ngắn (ví dụ: myhost) không? Bản ghi cho điểm FQDN tới localhost hay nó nên trỏ đến IP bên ngoài của hộp?

Ví dụ: cấu hình mặc định trên nhiều hộp RHEL / EL không đặt tên máy chủ công cộng vào /etc/hosts:

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #

Biến thể khác là tên máy chủ ngắn và FQDN của máy chủ lưu trữ cũng trỏ đến 127.0.0.1. Tôi đã được bảo rằng đây là một thực hành cũ hơn được tán thành trong những ngày này, nhưng nhiều quản trị viên vẫn làm điều này.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    

Biến thể thứ ba là FQDN của máy chủ và tên máy chủ ngắn được cung cấp địa chỉ IP bên ngoài của máy chủ. Biến số thứ ba này có vẻ tối ưu với tôi vì nó làm giảm tra cứu đối với các máy chủ DNS.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx myhost myhost.example.org
myhost #  

Thực hành tốt nhất ở đây là gì?


2
nó hiểu rõ những bí danh mà các chương trình đang sử dụng (đối với các lượt thích / nhu cầu của Mysql để có bí danh 'localhost'), 127.0.0.1 localhost myhostlà đủ và 74.125.239.xxx myhost myhost.example.orgnhư bạn đã nói giúp tiết kiệm DNS tra cứu. "Thực hành tốt nhất" trừ khi có một tiêu chuẩn đó là "những người hiểu biết sử dụng".
LinuxDevOps

Câu trả lời:


12

Bạn có sẵn sàng chấp nhận DNS hoạt động một điểm thất bại trong môi trường của bạn hay không. Một số dịch vụ / ứng dụng sẽ không thành công trong một số cấu hình nhất định nếu một hệ thống không thể giải quyết tên của máy cục bộ.

Nếu bạn có một dịch vụ cực kỳ quan trọng phải chạy trong mọi tình huống, việc thêm một mục trong tệp máy chủ để dịch vụ có thể tiếp tục hoạt động trong trường hợp phân giải DNS không thành công là điều bất thường.

Nếu bạn có thể chấp nhận DNS của mình là một điểm không thành công hoặc nếu dịch vụ của bạn không bị lỗi trong trường hợp độ phân giải bị hỏng, có thể tránh các mục cấu hình trong tệp máy chủ.

Tôi thực sự khuyên bạn nên làm cho máy chủ DNS của mình vững chắc nhất có thể và nếu bạn phải định cấu hình tệp máy chủ của mình, hãy sử dụng hệ thống quản lý cấu hình để thực hiện. Bạn thực sự nên tránh bằng tay tránh chạm vào một tập tin máy chủ.


13
Chỉ cần thêm vào điều này, trong hầu hết các trường hợp /etc/hostssẽ thay thế DNS, không được sử dụng làm dự phòng trong trường hợp DNS bị lỗi. Đây là một sự phân biệt tôi nghĩ nên được thực hiện. (Không cố gắng chọn nit.) Tất cả phụ thuộc vào thứ tự được xác định trong /etc/nsswitch.conf.
Aaron Copley

4
Vấn đề khác là truy vấn các máy chủ DNS chậm hơn nhiều sau đó tư vấn /etc/hoststệp. Nhiều ứng dụng truy vấn tên máy chủ của họ nhiều lần, nhiều lần trong một giây. Thêm tên máy chủ /etc/hostssẽ giảm độ trễ và tăng tốc ứng dụng.
Stefan Lasiewski
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.