ฉันมี/etc/hostsไฟล์ต่อไปนี้บนเครื่อง ubuntu 12.04
127.0.0.1 localhost
10.248.27.66 ec2-50-112-220-110.us-west-2.compute.amazonaws.com puppetmaster
# 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
ff02::3 ip6-allhosts
อย่างไรก็ตามคำสั่ง host ไม่สามารถแก้ไขชื่อpuppetmasterได้อย่างถูกต้องในขณะที่คำสั่ง telnet นั้นทำ
root@ip-10-248-34-162:/home/ubuntu# host puppetmaster
Host puppetmaster not found: 3(NXDOMAIN)
root@ip-10-248-34-162:/home/ubuntu# telnet puppetmaster 8140
Trying 10.248.27.66...
Connected to ec2-50-112-220-110.us-west-2.compute.amazonaws.com.
Escape character is '^]'.
ทำไมคำสั่ง host ไม่แก้ไขรายการใน / etc / hosts
/etc/nsswitch.confลักษณะเช่นนี้hosts: files dnsและฉันเปลี่ยนเป็นhosts: files mdns4_minimal [NOTFOUND=return] dns mdns4อย่างไรก็ตามในทั้งสองกรณี/etc/hostsไม่ได้ถูกสอบถาม แต่ปรากฏว่ามีการสอบถาม DNS โดยตรง ฉันสามารถมั่นใจได้ว่า/etc/hostsจะได้รับการสอบถามครั้งแรกเมื่อใช้คำสั่งเหมือนdigหรือhost?