컬-해결은 아무것도하지 않는 것 같습니다


35

--helpcurl 의 출력은 --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에 대한 인증서를 테스트하고 있지만 실제 서버에서 테스트하지 않기 때문에이 작업을 수행하고 싶습니다. 대신 더미 머신에서 테스트하고 있습니다. 나는 /etc/hostsfoo.example.com이 localhost로 해석되도록 편집 할 수 있다는 것을 알고 있지만,이 컬 접근 방식은 내가 그것을 할 수 있다면 갈 수있는 "올바른"방법 인 것처럼 보입니다.

아무도 내가 여기서 뭘 잘못하고 있는지 봅니까?

답변:


57

이 나타납니다 address숫자 IP 주소가 아닌 호스트 이름이어야합니다.

이 시도:

curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/

이것은 DNS 세계에서 resolve"이름에서 IP 주소를 얻습니다" 를 의미하기 때문에 의미가 있습니다.
hugesupersuperman

4

문제 해결에 대한 몇 가지 추가 도움말 :

프로토콜에 맞는 포트를 듣고 있는지 확인하십시오. http = 80; https = 443 등

curl -v도 도움이 될 수있는 응답 서버에 대한 HEADER 정보를 제공합니다.

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의 에지 서버에서 구현되지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.