ฉันมี/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
?