Nslookup bir adresi çözümlemeye çalıştığında / etc / hosts dosyam neden sorgulanmıyor?


15

Dosyamda çözülen birkaç yerel etki 127.0.0.1alanım var /etc/hosts. Ve bir süre için her şey yolundaydı ama şimdi koştuğumda:

nslookup test.local

Sonuç:

Server:     192.168.1.3
Address:    192.168.1.3#53

** server can't find test.local: NXDOMAIN

Bu 192.168.1.3bizim ağ DNS'imizdir ve yerel alan adımı bilmesi gerekmez test.local. Birkaç aramadan sonra /etc/nsswitch.confdosyanın sorgulanacak DNS kaynaklarının önceliği hakkında bilgi içerdiğini gördüm . Ama orada bir sorun yoktu! Benimki burada:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Herkes benim hostsdosya neden DNS aramaya dahil olmadığını biliyor mu?

Yanıtlar:


21

nslookupyalnızca diğer uygulamalarınızın kullandığı Ad Hizmeti Anahtarı alt sisteminden önemli ölçüde farklı olan düzgün DNS çözümlemesi yapar ; yani görmezden gelir ve mDNS.nslookup/etc/hosts

Bunun gibi yerel çözünürlükleri test etmek için NSS kullanan bir şey kullanın. ping <hostname>Örneğin. İşte ağımdaki bir /etc/hostsgirişi temel alan basit bir demo .

$ nslookup bert
Server:     8.8.8.8
Address:    8.8.8.8#53

** server can't find bert: NXDOMAIN

$ ping bert
PING bert (10.10.0.4) 56(84) bytes of data.
64 bytes from bert (10.10.0.4): icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from bert (10.10.0.4): icmp_seq=2 ttl=64 time=0.407 ms

Bir /etc/hostsdosyada etkili olabilecek DNS sunucuları ve proxy sunucuları olduğunu unutmayın . Bu durumlarda, nslookupyerel bir kaynaktan bir sonuç döndürebilir.


6
pingBiri yerine kullanmak gerekir, getent ahostsçünkü bu tüm ekstra şeyleri gerektirmez ping.
Mikko Rantalainen

2

/etc/hostsBelirli bir ana bilgisayar (mysite.com) için dosyadan ad çözümlemesi istediğiniz sanırım .

Bu davranışa neden olabilecek bir diğer yaygın sorun /etc/hostsda aynı IP için dosyada birçok girişinizin olması olabilir , örneğin:

1.1.1.1 host1.domain1.com
1.1.1.1 host2.domain2.com

Bazı uygulamalarda bu, ad çözümlemesinin DNS'ye teslim edilmesine neden olabilir. Hızlı bir düzeltme, her şeyi 1 satırda gruplayın

1.1.1.1 host1.domain1.com host2.domain2.com

1

Gördüğüm başka bir yaygın şey, birinin (genellikle ben) IP adresini ana bilgisayar adıyla tersine çevirdiği yerdir /etc/hosts- örneğin:

mysite.com    10.2.3.4

İlk bakışta normal görünüyor ... İşte benim çözümüm% 50 civarında:

10.2.3.4    mysite.com

suçlu bu sefer ... # nefes
Cybex

1
Genellikle hosts dosyaları önceden tanımlanmış 127.0.0.1 localhost girişi ile birlikte gelir. Yanlış yapmak çok yanlış :-)
m3nda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.