访问 /etc/hosts 中的地址时,curl 查找时间为 5.5 秒

访问 /etc/hosts 中的地址时,curl 查找时间为 5.5 秒

在我的 /etc/hosts 文件中,我有一个自定义条目,因为名称实际上并不存在,如下所示:

5.5.5.5 someinternalserver.thing.net #thats a fake IP for this post

像这样使用 curl:

curl -o /dev/null http://someinternalserver.thing.net/img/panda.jpg

耗时 6 秒。其中 5.5 秒用于 DNS 查找,0.5 秒用于实际下载文件。

如果我强制 curl 使用 IPV4,它会立即工作

curl -4 -o /dev/null http://someinternalserver.thing.net/img/panda.jpg

直到今天早上,它都运行正常。我该如何解决这个问题?

我无法将 IPV6 地址添加到 /etc/hosts,因为这里的内部网络不支持它。如果我想使用终端,强制 curl 为 IPV4 可以正常工作,但真正的问题在于使用 curl 的脚本/应用程序。

答案1

您的 DNS 解析器(库)可能正在同时对 IPv4 和 IPv6 发出请求。它会等待两个请求完成,然后才返回响应。

IPv6 查询在 5 秒后超时,然后 curl 从库中获取 IP 地址。

https://askubuntu.com/a/32312/15110建议将以下内容放入/etc/resolv.conf

options single-request

相关内容