명령줄에서 사이트에 연결하는 데

명령줄에서 사이트에 연결하는 데

다음과 같이 연결할 수 있습니다 https://registry.terraform.io/.well-known/terraform.json 브라우저를 사용하여

명령줄에서 연결하려고 하면

컬: (7) Registry.terraform.io 포트 443에 연결하지 못했습니다: 시간이 초과되었습니다.

해결 방법에 대한 아이디어가 있으신가요? 감사합니다.

답변1

명령 창에서 잘못된 프록시 설정으로 인해 문제가 발생했습니다. HTTPS_PROXY=브라우저의 프록시 설정

답변2

TL;DR

아래 7단계에 나열된 명령을 시도해 보십시오 curl. 그래도 작동하지 않으면 curl명령 외에 다른 문제(예: 방화벽 또는 프록시)가 있을 가능성이 높습니다.

cURL을 사용하여 브라우저 요청 복사

브라우저에 연결할 수 있는 경우 명령과 관련된 잠재적인 문제를 제거하는 한 가지 방법은 curl브라우저에서 원하는 트랜잭션을 "복사"하는 것입니다. Chrome, Firefox 및 Opera에는 모두 이를 허용하는 개발자 콘솔이 있습니다.

  1. 새 빈 탭을 엽니다.

  2. Chrome 및 Firefox에서는 버튼을 눌러 F12개발자 콘솔을 엽니다. 오페라에서는 Ctrl+ Shift+ 를 누르세요 I.

  3. 옵션 을 찾아 Network선택하세요.

  4. 원하는 URL로 이동합니다. 예:https://registry.terraform.io/.well-known/terraform.json.

  5. 결국 다음과 비슷한 내용을 보게 될 것입니다.

    전. 네트워크 거래

    Firefox 개발자 콘솔 - 네트워크 트랜잭션 - 스크린샷

  6. 원하는 거래를 선택하고 마우스 오른쪽 버튼을 클릭한 후 옵션을 선택합니다 Copy as cURL(Chrome의 경우 사용 Copy as cURL (cmd)).

    전. cURL로 복사

    Firefox 개발자 콘솔 - 네트워크 트랜잭션 - cURL로 복사 - 스크린샷

  7. 클립보드의 내용을 붙여넣으면 다음에 대한 요청의 정확한 사본이 있어야 합니다 curl.

    curl "https://registry.terraform.io/.well-known/terraform.json" -H "authority: registry.terraform.io" -H "upgrade-insecure-requests: 1" -H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" -H "sec-fetch-mode: navigate" -H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "sec-fetch-site: none" -H "accept-encoding: gzip, deflate, br" -H "accept-language: en-US,en;q=0.9" --compressed
    

curl명령은 브라우저의 요청을 정확하게 복제해야 합니다.

다른 문제

이렇게 해도 문제가 해결되지 않는다고 가정하면 방화벽/프록시 문제 또는 인증서 문제 등 이 요청이 실패할 수 있는 다른 이유를 조사해야 합니다.

  • 컬을 사용하여 자체 서명되었거나 유효하지 않은 인증서를 무시하려면 -k또는 옵션을 사용하십시오 .--insecure

  • 문제 해결에 도움이 되도록 플래그를 사용 --verbose하고 로 HTTP 헤더를 덤프하는 것을 고려해 보세요 .-D -curl


특정 브라우저 에뮬레이션

(일반) cURL 요청이 여전히 실패하고 있다는 귀하의 추가 의견에 따르면 성공적으로 연결할 수 있는 특정 브라우저를 에뮬레이트해야 할 가능성이 높습니다.

브라우저는 자신을 다음과 같이 식별합니다.사용자 에이전트해당 브라우저의 특정 버전과 관련된 문자열입니다. URL에 연결할 수 있는 브라우저를 에뮬레이션하려면 다음 중 하나를 수행해야 합니다.

  1. 내가 제공하는 단계를 사용하십시오.cURL을 사용하여 브라우저 요청 복사성공적으로 연결할 수 있는 브라우저에서

  2. user-agent7단계의 값을 다음과 같은 사이트에서 반환된 값으로 바꿔보세요 .내 브라우저는 무엇입니까(링크에 액세스하는 데 문제가 없는 브라우저에서 이 링크를 방문하세요).

예(옵션 2)

"일반" 사용자 에이전트(위)

-H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"

특정 사용자 에이전트(예: What Is My Browser)

-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"

user-agent첫 번째 방법(요청 복사) 이 요청을 승인하는 데 사용되는 헤더 이외의 헤더를 포착할 수 있으므로 아마도 가장 신뢰할 수 있다는 점에 유의하는 것이 중요합니다 .


관련 정보