Di mesin linux saya, ketika saya menjalankan hostname
, itu menunjukkan mongodb
, tetapi ketika saya menjalankan host mongodb
, itu menunjukkan:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
/etc/hosts
File saya :
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
Pertanyaan pertama saya adalah: Karena
/etc/hosts
pemetaan dari IP ke nama host, mengapa mesin ini tidak dapat menyelesaikan nama hostmongodb
ke IP 192.168.10.10? Sebaliknya, ketika saya menjalankanhost localhost
, itu bisa diselesaikan dan menunjukkan:localhost has address 127.0.0.1
Pertanyaan saya yang lain: Menurut
/etc/hosts
file tersebut, nama hostlocalhost
seharusnya telah diselesaikan ke 192.168.10.10 alih-alih alamat IP loopback 127.0.0.1. Adakah yang bisa menjelaskan hal ini kepada saya?
/etc/hosts
tidak memiliki apa pun berpengaruh pada resolusi DNS ketika query server DNS secara langsung, yang adalah apa yanghost
dilakukannya. Namun, banyak alat-alat sistem dan utilitas menggunakan yanglocalhost
definisi, mengharapkan untuk alamat loopback, dan resolusi nama menggunakan sistem (yang terlihat pada/etc/hosts
sebelum query DNS) ke nama tekad daripada ketat akan DNS, yang mungkin tidak selalu hadir.