出于某种原因,我的一个Ubuntu 9.04盒子上的所有DNS查询都被路由到本地主机,导致没有parsing域名。 当试图dig example.com ,它挂起约20秒,然后退出消息“ ;; connection timed out; no servers could be reached ”。 但是, dig example.com @193.75.75.75立即返回正确的结果。 这个问题适用于所有的DNS查询,不仅来自dig 。
$ cat /etc/resolv.conf 193.75.75.75 193.75.75.193
我没有一个.digrc,NetworkManager已经被卸载,而networking在其他方面也是可行的(例如,我可以在/etc/resolv.conf中正常使用它)。 我没有安装本地DNS服务器, nmap确认没有监听端口53.我有几个其他boxen在同一networking上运行的Ubuntu 9.04,DNS在所有这些工作正常。
我使用strace来确认dig实际上是否读取了resolv.conf :
open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 6 (...) read(6, "193.75.75.75\n193.75.75.193\n"..., 4096) = 27
我也使用tcpdump来确认问题确实是DNS查询路由到本地主机:
$ sudo tcpdump -i lo tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 14:11:54.175580 IP localhost.45910 > localhost.domain: 38233+ A? example.com. (29) 14:11:54.175633 IP localhost > localhost: ICMP localhost udp port domain unreachable, length 65 14:11:55.175542 IP6 ip6-localhost.54963 > ip6-localhost.domain: 38233+[|domain] 14:11:55.175575 IP6 ip6-localhost > ip6-localhost: ICMP6, destination unreachable[|icmp6]
我没有解决这个问题的想法,所以任何意见和build议都是值得欢迎的。
/etc/resolv.conf中的logging应该看起来像
nameserver 193.75.75.75
/etc/resolv.conf的格式不正确,应该是:
search domain.com nameserver 193.75.75.75 nameserver 193.75.75.193
search行当然是可选的。 如果存在,将用于限定主机名,例如。 查找router的地址将返回router.domain.com的地址
如果你最近改变了这个,你尝试了“服务networking重新启动”还是重新启动所有的服务器?
听起来相当新鲜,但这是resolv.conf被修改时所需要的。