Bao gồm tên miền hay không trong / etc / hosts?


15

Tôi đang thiết lập một cụm VMWare của các nút CentOS. Có phải là cách tốt nhất để bao gồm một tên miền sau khi máy? Các vấn đề tiềm năng của việc bỏ nó là gì? Là một tên miền phức tạp cấu hình hoặc đơn giản hóa nó?

Ví dụ: nếu nút của tôi ở 192.168.1.93, tôi có nên thay đổi /etc/hoststừ

127.0.0.1 localhost.localdomain localhost

đến

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

hoặc là

127.0.0.1 localhost
192.168.1.93 computenode1

hoặc là

#127.0.0.1 localhost
192.168.1.93 computenode1

hoặc là

192.168.1.93 localhost
192.168.1.93 computenode1

Câu trả lời:


24

Đặt tên miền /etc/hostslà tùy chọn và bạn có thể chạy một hệ thống mà không có bất kỳ ảnh hưởng xấu nào.

Nhược điểm duy nhất của việc loại bỏ nó là tên máy chủ đủ điều kiện của hệ thống sẽ không hiển thị đúng. Ví dụ , hostname -f.

Cách phát hiện tên máy chủ đủ điều kiện hoạt động:

  1. Đầu tiên, nó có tên máy chủ hoặc 'tên ngắn'. Đây là đầu ra của uname -nhoặc hostname.
  2. Sau đó, nó nhận được địa chỉ IP cho tên máy chủ đó bằng cách tham khảo ý kiến /etc/hosts(hoặc bất cứ điều gì bạn có /etc/resolv.confvà quay lại các nguồn sau nếu không tìm thấy /etc/hosts).
  3. Sau khi có IP, nó sẽ tìm kiếm ngược lại bằng cách tư vấn lại /etc/hosts.
  4. Khi nó có một bản ghi /etc/hosts, mục đầu tiên được sử dụng làm tên máy chủ đủ điều kiện.

Tóm lại, nếu bạn muốn tên máy chủ đủ điều kiện hoạt động, bạn nên thực hiện:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

hoặc là

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
Tôi đã không xem xét điểm đó. Có một tên máy chủ đủ điều kiện là vô ích đối với máy tính để bàn và có thể gây rắc rối cho máy tính xách tay (vì máy tính xách tay có thể được đưa vào các mạng khác nhau) nhưng nó hữu ích cho máy chủ. Apache2, ví dụ, phàn nàn khi nó không thể xác định FQDN của nó.
lgeorget

@lgeorget Bạn cũng có thể sử dụng libnss-myhostnameđể giải quyết FQDN của mình nhưng không cần một mục trong/etc/hsots
Ulrich Dangel

Cấu hình ở trên có thể gây ra sự cố, xem phần thảo luận này về cách thiết lập hoststệp hiện tại của Debian và phần này về cách sử dụng (hoặc thiếu) của localhost.localdomainmục nhập.
Joó Ádám

1
sudocũng phàn nàn nếu tên máy chủ không có trong /etc/hosts:sudo: unable to resolve host <hostname>
x-yuri

3

Miễn là máy chủ của bạn đồng ý với tên miền của bạn, chỉ định nó hoặc /etc/hostskhông thay đổi bất cứ điều gì. Một thực hành khác là để nó được chỉ định làm domaintham số trong /etc/resolv.conf. Không chỉ định nó có thể đơn giản hóa cuộc sống của bạn nếu một ngày nào đó, quản trị viên mạng của bạn thay đổi nó. Chỉ định nó không thay đổi bất cứ điều gì, theo như tôi biết.

Bạn chắc chắn nên để lại 127.0.0.1 localhosthoặc 127.0.0.1 localhost localhost.localdomaintrong /etc/hosts. Một số ứng dụng có thể bắt đầu có một hành vi thực sự kỳ lạ được localhostliên kết với bất kỳ thứ gì ngoài địa chỉ loopback của bạn bởi vì đây là một cài đặt thực sự, thực sự, bất ngờ.


2

Bạn phải chỉ định tên miền đủ điều kiện ở vị trí đầu tiên sau địa chỉ IP.

Như chúng ta đã đọc trong man 5 hosts:

Đối với mỗi máy chủ, một dòng duy nhất sẽ được trình bày với các thông tin sau:

IP_address canonical_hostname [bí danh ...]

Nếu không tuân theo quy tắc, thì một số phần mềm có thể bị hỏng. Ví dụ: hệ thống quản lý cấu hình rối có thể bắt đầu thay đổi tên máy chủ của bạn qua lại mỗi lần chạy chỉ vì bạn không chỉ định một phần tên miền hoặc vì bạn đặt bí danh không có tên miền trên dòng trước FQDN.


0

Tôi không chắc đây thực sự là "tùy chọn" (như Patrick đã chỉ ra ở trên). Cuối cùng tôi đã theo dõi một vấn đề với quyền nfs hoàn nguyên cho không ai: không ai. Có vẻ như các quyền hoạt động chính xác với các nfs mount (sử dụng idmapd), tên miền của máy chủ phải khớp chính xác với tên miền của máy khách. Từ một số tài liệu tôi tìm thấy - hostname -ftrừ tên máy chủ thực tế phải giống hệt nhau giữa máy khách và máy chủ HOẶC bạn phải chỉ định một tên miền cho máy khách /etc/idmapd.conf, nghĩa là mỗi máy khách.

Có một quy tắc chính thức về nơi chỉ định tên miền? Các domainnamelệnh dường như không nhặt nó lên ra khỏi / etc / hosts .. nên đặt trong / etc / hosts làm tôi bực mình, vì nó có nghĩa là nó được lưu trữ ở nhiều vị trí trên hệ thống tập tin ..

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.