DNS查询在Ubuntu 9.04上被路由到本地主机

出于某种原因,我的一个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被修改时所需要的。