我现在使用curl 来调试我的非产品Web 服务有一段时间了。
当我使用该--dns-servers
选项时,我总是收到一条错误消息,指出未找到此功能:
curl --dns-servers _MY_DNS_SERVER_IP_ https://_MY_DOMAINS_
curl: (4) A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.
我的curl版本是7.47.0,在Ubuntu 16.04桌面上运行。
从curl手册页(关于该--dns-servers
选项):
This option requires that libcurl was built with a resolver backend that supports this operation.
The c-ares backend is the only such one. (Added in 7.33.0)
是否还需要安装另一个curl 包,或者我错过了一些可选的依赖项?
有任何提示似乎是什么问题吗?
答案1
为 Debian 和 Ubuntu 构建的二进制文件curl
不包含对 libc-ares 的支持。那是因为那个图书馆无法返回A (IPv4) 和 AAAA (IPv6) 查询都在一个响应中,因此,如果您要连接的主机使用 IPv6,但您没有 IPv6 支持,则连接就会失败。由于这是一个相当大的缺陷(因为许多开放的 Wi-Fi 接入点没有 IPv6),Debian 和 Ubuntu 已经将其编译出来。
您也许可以通过--resolve
手动指定要使用的 IP 地址来解决问题。否则,如果您需要使用此功能,则必须编译自己的curl。