出于某种原因,我的两台机器已经开始遭受极其缓慢的DNS查询。
“主机”命令的定时输出示例:
[root@ns507403 ~]# time host www.google.com www.google.com has address 172.217.5.4 www.google.com has IPv6 address 2607:f8b0:4006:80d::2004 real 0m3.050s user 0m0.000s sys 0m0.004s
查找似乎至less需要3秒,无论使用哪个地址或查找完成多less次。 我见过的最高时间是9秒查找www.paypal.com
我已经排除了一个缓慢的DNS服务器的可能性,因为我在所有位于同一个数据中心的其他4台服务器上使用相同的DNSparsing器,所有这些服务器都可以正常工作。 (<1ms查找)
我已经尝试过的东西已经没有成功:
options single-request添加到/etc/resolv.conf options single-request-reopen sysctl -w net.ipv6.conf.all.disable_ipv6=1禁用IPv6 这是我目前的/etc/resolv.conf文件:
nameserver 127.0.0.1 nameserver 213.186.33.99 search ovh.net
dig命令似乎工作得很好,显示查询时间0毫秒。
任何想法可能导致这个? 我在两台机器上都使用CentOS 6。
127.0.0.1是你的本地主机回送接口,这意味着你到达你自己的服务器。 由于各种原因,您的服务器首先使用它来查找DNS,并且由于您的服务器不知道如何回答DNS查询,您必须等到查询超时并转到第二个名称服务器。
只要使用真正的DNS名称服务器作为唯一的条目:
nameserver 213.186.33.99
为什么你甚至有127.0.0.1作为域名服务器?
由于您的发行版使用caching名称服务守护进程,所以很可能指向127.0.0.1(localhost)。 把它想象成一个在你自己的计算机上运行的cachingDNS服务器。 这样的守护进程的使用是值得商榷的。
它通过减less传送到互联网的DNS请求的数量来加快某些types的互联网使用的确有一些好处。 但是,我看到他们自己崩溃和烧毁,导致我们很多人都喜欢的“networking很慢”的错误。
如果我没记错,CentOS使用nscd(名称服务caching守护进程)来执行此function。 一个快速sudo service nscd restart应该修复它。
或者,你可以做你所做的事情,并削减中间人这样说话。 如果是这种情况,你不想运行caching守护进程,你应该禁用它:
sudo service nscd stop sudo chkconfig nscd off
事实certificate这是一个防火墙的问题.. OVH有一个非常错误的基于Web的防火墙,导致了问题。 OVH的工作人员告诉我,我的防火墙设置为100%,否则无法使用213.186.33.99来解决。 这是不正确的,防火墙绕过这个特定的IP,因为它显然是托pipe在OVHnetworking内。
颠倒名称服务器的顺序,它会加快速度。
nameserver 213.186.33.99 nameserver 127.0.0.1
这个configuration适用于我:
nameserver 213.186.33.99 nameserver 127.0.0.1 nameserver 208.67.222.222 search ovh.net