nslookup尝试解析地址时,为什么不查询我的/ etc / hosts文件?


15

我有一对夫妇解决当地域127.0.0.1在我的/etc/hosts文件。一段时间没事,但是现在我跑步:

nslookup test.local

结果是:

Server:     192.168.1.3
Address:    192.168.1.3#53

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

192.168.1.3是我们的网络DNS,它不应该知道我的本地域test.local。经过几次搜索,我发现该/etc/nsswitch.conf文件包含有关要查询的DNS源优先级的信息。但是那里没有问题!这是我的:

# /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

有人知道为什么我的hosts文件未包含在DNS查找中吗?

Answers:


20

nslookup仅执行正确的 DNS解析,这与您其他应用程序使用的名称服务交换子系统有很大不同;也就是说nslookup忽略/etc/hosts和mDNS。

要测试类似的本地分辨率,请使用使用NSS的工具。ping <hostname>例如。这是一个基于/etc/hosts我的网络条目的简单演示。

$ 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

请注意,有些DNS服务器和代理可以考虑/etc/hosts文件。在这些情况下,nslookup可能会从本地来源返回结果。


5
而不是ping一个人应该使用,getent ahosts因为这并不需要所有多余的东西ping
Mikko Rantalainen

2

我想您想从/etc/hosts文件中为特定主机(mysite.com)进行名称解析。

可能导致此行为的另一个常见问题是,/etc/hosts对于相同的IP,您可能在文件上有许多条目,例如:

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

在某些实现中,这可能导致名称解析移交给DNS。快速修复,将所有内容分组为1行

1.1.1.1 host1.domain1.com host2.domain2.com

1

我看到的另一件常见的事情是某人(通常是我)在其中用主机名反转IP地址/etc/hosts-例如:

mysite.com    10.2.3.4

乍一看,这看起来很正常...这是大约50%的时间我的解决方案:

10.2.3.4    mysite.com

这次感到内......#感叹
Cybex

1
通常,主机文件带有预定义的127.0.0.1本地主机条目。做错了是非常错误的:-)
m3nda
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.