Ubuntu
使用 dns 選項執行 CURL 時出現問題
我現在使用 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 包,或者我錯過了一些可選的依賴項?
任何提示似乎是什麼問題?
為 Debian 和 Ubuntu 建構的
curl
二進製文件不包含對 libc-ares 的支持。這是因為該庫無法在單個響應中同時返回 A (IPv4) 和 AAAA (IPv6) 查詢,因此如果您要連接的主機使用 IPv6 但您沒有 IPv6 支持,那麼連接就會失敗。由於這是一個相當大的缺陷(因為許多開放的 Wi-Fi 接入點沒有 IPv6),Debian 和 Ubuntu 已經編譯了它。您可以通過 using
--resolve
手動指定要使用的 IP 地址來解決問題。否則,如果您需要使用此功能,則必須編譯自己的 curl。