ในเครื่อง linux ของฉันเมื่อฉันรันhostnameมันจะแสดงmongodbแต่เมื่อฉันรันhost mongodbมันจะแสดง:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
/etc/hostsไฟล์ของฉัน:
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
คำถามแรกของฉันคือเนื่องจาก
/etc/hostsการจับคู่จาก IP กับชื่อโฮสต์ทำไมเครื่องนี้ไม่สามารถแก้ไขชื่อโฮสต์mongodbเป็น IP 192.168.10.10 ได้ เมื่อฉันเรียกใช้host localhostจะสามารถแก้ไขและแสดง:localhost has address 127.0.0.1คำถามอื่นของฉัน: ตาม
/etc/hostsไฟล์ชื่อโฮสต์localhostควรได้รับการแก้ไขเป็น 192.168.10.10 แทนที่อยู่ IP วนลูปแบ็ค 127.0.0.1 ใครสามารถอธิบายสิ่งนี้ให้ฉันได้บ้าง
/etc/hostsไม่ได้มีการใด ๆ ที่มีผลในการแก้ปัญหา DNS เมื่อสอบถาม DNS เซิร์ฟเวอร์โดยตรงซึ่งเป็นสิ่งที่hostไม่ อย่างไรก็ตามเครื่องมือระบบสาธารณูปโภคจำนวนมากและใช้localhostนิยามคาดหวังว่ามันจะเป็นที่อยู่ย้อนกลับและการแก้ปัญหาชื่อระบบการใช้งาน (ซึ่งมีลักษณะที่/etc/hostsก่อนที่จะสอบถาม DNS) ชื่อแก้ไขมากกว่าอย่างเคร่งครัดจะ DNS ซึ่งอาจไม่เป็นปัจจุบัน