--help
컬의 출력에는 --resolve
다음과 같은 옵션이 나열됩니다.
--resolve <host:port:address> Force resolve of HOST:PORT to ADDRESS
그러나 나는 그것을 작동시킬 행운이 없습니다. 내가 실행하려는 기본 명령은 다음과 같습니다.
curl --resolve foo.example.com:443:localhost https://foo.example.com:443/
계속해서 응답을 받았어요 Couldn't resolve host 'foo.example.com'
. foo.example.com에 대한 인증서를 테스트하고 있기 때문에 이렇게 하고 싶은데 실제 서버에서는 테스트하는 것이 아닙니다. 대신 가상 머신에서 테스트하고 있습니다. foo.example.com이 localhost로 확인되도록 편집할 수 있다는 것을 알고 있지만 /etc/hosts
작동하게 할 수 있다면 이 컬 방법이 "올바른" 방법인 것 같습니다.
내가 여기서 뭘 잘못하고 있는지 아는 사람이 있나요?
답변1
address
호스트 이름이 아닌 숫자 IP 주소여야 하는 것 같습니다 .
이 시도:
curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
답변2
문제 해결에 대한 추가 도움말:
올바른 프로토콜 포트를 나열했는지 확인하세요(http=80; 등).
curl -v
응답 서버의 헤더 정보 도 제공되므로 도움이 될 수 있습니다.
$ curl -v --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
## The client request headers prepended by >
> OPTIONS /v1/..
> HOSTS foo.example.com
## The server response prepended by <
< HTTP/1.1 501 Not Implemented
## The html returned
<H1>Unsupported Request</H1>
기본적으로 이 경우 OPTIONS HTTP
CDN의 엣지 서버에서는 해당 방법이 구현되지 않습니다.
답변3
나는 같은 문제를 가지고있다. 이상하지만 버전에 따라 다른 것 같습니다. 한 서버 curl --manual | grep resolve
에 버전 7.19.7이 있는지 확인했는데 --resolve
매개변수가 누락되었습니다. 버전 7.29.0에는 이 매개변수가 있으며 구문 분석이 제대로 작동합니다.