DNS 옵션으로 CURL을 실행하는 중에 문제가 발생했습니다.

DNS 옵션으로 CURL을 실행하는 중에 문제가 발생했습니다.

나는 한동안 비프로덕션 웹 서비스를 디버깅하기 위해 컬을 사용해 왔습니다.

해당 옵션을 사용할 때 --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.

내 컬 버전은 7.47.0이며 Ubuntu 16.04 데스크탑에서 실행됩니다.

컬 매뉴얼 페이지에서 ( --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)

설치해야 하는 다른 컬 패키지가 있습니까? 아니면 일부 선택적 종속성이 누락되었습니까?

문제가 무엇인지에 대한 힌트가 있습니까?

답변1

Debian 및 Ubuntu용으로 빌드된 바이너리에는 curllibc-ares에 대한 지원이 포함되지 않습니다. 그 도서관 때문이야돌아올 수 없습니다A(IPv4) 및 AAAA(IPv6) 쿼리는 모두 하나의 응답이므로 연결하려는 호스트가 IPv6을 사용하고 IPv6 지원이 없으면 연결이 실패합니다. 이는 꽤 큰 결함이기 때문에(많은 개방형 Wi-Fi 액세스 포인트에 IPv6가 없기 때문에) Debian과 Ubuntu가 이를 컴파일했습니다.

--resolve사용할 IP 주소를 수동으로 지정하여 문제를 해결할 수도 있습니다 . 그렇지 않으면 이 기능을 사용해야 하는 경우 자체 컬을 컴파일해야 합니다.

관련 정보