DNS查询有时需要5秒钟
我有一台运行Debian Wheezy的VM,尽管解析程序会立即回复,但在该VM上完成一些主机名查找需要几秒钟。奇怪的是,与getaddrinfo()的查询会受到影响,但gethostbyname()没有受到影响。 我已改用Google解析器,以排除本地解析器损坏的可能性,因此我的/etc/resolv.conf样子如下: search my-domain.com nameserver 8.8.4.4 nameserver 8.8.8.8 我nsswitch.conf的行: hosts: files dns 而且我/etc/hosts没有任何异常。 如果尝试telnet webserver 80,它会挂几秒钟,然后再进行名称解析。的ltrace输出[1]示出了悬挂在一个getaddrinfo()呼叫: getaddrinfo("ifconfig.me", "telnet", { AI_CANONNAME, 0, SOCK_STREAM, 0, 0, NULL, '\000', NULL }, 0x7fffb4ffc160) = 0 <5.020621> 但是,tcpdump显示名称服务器立即回复,并且仅在第二个回复上才被telnet阻止。答复看起来相同: 05:52:58.609731 IP 192.168.1.75.43017 > 8.8.4.4.53: 54755+ A? ifconfig.me. (29) 05:52:58.609786 IP 192.168.1.75.43017 > 8.8.4.4.53: 26090+ AAAA? …