Trong máy linux của tôi, khi tôi chạy hostname
, nó hiển thị mongodb
, nhưng khi tôi chạy host mongodb
, nó hiển thị:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
/etc/hosts
Tập tin của tôi
192.168.10.10 mongodb
192.168.10.10 localhost
127.0.0.1 localhost
#127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Câu hỏi đầu tiên của tôi là: Vì
/etc/hosts
đang ánh xạ từ IP sang tên máy chủ, tại sao máy này không thể phân giải tên máy chủmongodb
thành IP 192.168.10.10? Thay vào đó, khi tôi chạyhost localhost
, nó có thể được giải quyết và hiển thị:localhost has address 127.0.0.1
Một câu hỏi khác của tôi: Theo
/etc/hosts
tệp, tên máy chủ đánglocalhost
lẽ đã được phân giải thành 192.168.10.10 thay vì địa chỉ IP loopback 127.0.0.1. Bất cứ ai có thể giải thích điều này cho tôi?
/etc/hosts
không có bất kỳ ảnh hưởng nào đến độ phân giải DNS khi truy vấn trực tiếp máy chủ DNS, đó là những gìhost
. Tuy nhiên, nhiều công cụ hệ thống và tiện ích sử dụng cáclocalhost
định nghĩa, hy vọng nó sẽ là một địa chỉ loopback, và tên hệ thống sử dụng độ phân giải (mà vẻ tại/etc/hosts
trước khi truy vấn DNS) cho các tên quyết tâm thay vì đi Nghiêm DNS, mà có thể không luôn luôn có mặt.