![cURL:DNS 缓存中未找到主机名](https://linux22.com/image/994956/cURL%EF%BC%9ADNS%20%E7%BC%93%E5%AD%98%E4%B8%AD%E6%9C%AA%E6%89%BE%E5%88%B0%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
我们遇到了一个奇怪的错误。它大约每分钟发生一次,我们在日志中看到以下内容:
* Connection #0 to host data01 left intact
* Hostname was NOT found in DNS cache
* Trying x.x.x.x...
* connect to x.x.x.x port yyyy failed: Connection timed out
* Failed to connect to x.x.x.x port yyyy: Connection timed out
* Closing connection 0`
我们在 /etc/hosts 文件中正确定义了 data01,但由于某种原因,解析的 xxxx IP 地址不正确,因此连接失败。
curl --version 返回以下内容:
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
请帮忙。
答案1
最后,找到了一个解决方法:CURLOPT_RESOLVE
尽管 cURL 错误地解析了主机的 IP 地址,但使用该选项允许我们覆盖常规解析过程。
希望它能帮助其他发现同样问题的人。