CONNECT를 거부하는 프록시는 자체 정책이나 이후 연결 실패를 설명하는 HTTP 오류 문서를 반환할 수 있습니다. 일반 HTTP 프록시에 대한 승인된 진단에서는 curl이 해당 요청을 직접 보내고 응답을 저장할 수 있습니다:

curl --proxy '' --http1.1 --max-time 10 \
  --request CONNECT \
  --request-target service.example:443 \
  --header 'Host: service.example:443' \
  --dump-header tunnel.headers \
  --output tunnel.body \
  http://proxy.example:8080/

마지막 URL은 프록시 리스너를 가리킵니다. 허용된 공용 프록시 비교를 위해 HTTP 프록시 목록이 해당 리스너 URL의 후보를 제공합니다. --request는 메서드 토큰을, --request-target은 CONNECT 권한을 제공합니다. 둘을 분리하면 CONNECT service.example:443 HTTP/1.1이 생성됩니다.

비어 있는 proxy 옵션은 curl이 이 진단을 다른 상속된 프록시를 통해 보내지 않도록 합니다. 이 명령은 HTTP 오류 문서를 보존할 수 있도록 의도적으로 --fail을 생략합니다.

인증하지 않은 시도는 조사 중인 실패에 도달하기 전에 407에서 멈출 수 있습니다. 인증된 요청을 재현할 때는 프록시가 의도한 인증 방식을 사용하세요.

이것은 실패 응답을 검사하기 위한 것입니다. 프록시가 2xx를 반환하면 연결은 일반 HTTP 본문 전송이 아니라 터널이 됩니다. 이 사용자 지정 메서드 진단은 대상의 TLS 교환을 시작하지 않으며 수락된 열린 터널에서 시간 제한에 도달할 수 있습니다.

실제 HTTPS 가져오기에는 일반 --proxy 요청 흐름을 사용하세요. 진단 상태와 본문은 해당 프록시 및 대상과 함께 보관하세요.

관련 글