Programming

cURL로 HTTP 요청 수행 (PROXY 사용)

procodes 2020. 2. 20. 23:39
반응형

cURL로 HTTP 요청 수행 (PROXY 사용)


이 프록시 주소가 있습니다 : 125.119.175.48:8909

과 같은 cURL을 사용 curl http://www.example.com하지만 네트워크의 프록시 주소를 지정 하여 HTTP 요청을 수행하려면 어떻게해야 합니까?


일반적인 방법 :

export http_proxy=http://your.proxy.server:port/

그런 다음 (다수) 응용 프로그램에서 프록시를 통해 연결할 수 있습니다.

그리고 아래의 의견에 따라 https의 경우 :

export https_proxy=https://your.proxy.server:port/

보낸 사람 man curl:

-x, --proxy <[protocol://][user:password@]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.

위의 솔루션은 일부 컬 버전에서 작동하지 않을 수 있습니다 (컬 7.22.0). 그러나 나를 위해 일한 것은 다음과 같습니다.

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

그것이 문제를 더 잘 해결하기를 바랍니다!


HTTP / HTTPS 프록시 대신 SOCKS 프록시를 사용하는 경우 --socks5대신 스위치 를 사용해야합니다 .

curl --socks5 125.119.175.48:8909 http://example.com/

프록시 쪽에서 DNS를 확인 하는 --socks5-hostname대신 사용할 수도 있습니다 --socks5.


airween에 대한 제안으로, 또 다른 좋은 아이디어는 이것을 .bashrc에 추가하여 프록시되지 않은 환경에서 프록시 환경으로 전환 할 수 있다는 것입니다.

alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

YOURPROXY : YOURPORT는 정확히 당신의 IP와 포트 프록시입니다 :-).

그런 다음 간단히

proxyon

시스템은 프록시를 사용하기 시작하며 그 반대의 경우는 다음과 같습니다.

proxyoff

다음을 사용하십시오

curl -I -x 192.168.X.X:XX http://google.com

192.168.X.X:XX 프록시 서버 IP와 포트를 넣으십시오.

-v 상세 모드에서는 헤더 및 응답을 포함하여 자세한 정보를 제공합니다.


당신이 사용할 수있는 :

curl http://www.example.com --proxy http://125.119.175.48:8909

Karl의 설명대로


나는 내가 본 IP를 얻기 위해 이것을 사용하는 것을 좋아한다.

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo

이것이 누군가를 돕기를 바랍니다.


들어 curl당신이 당신의 프록시를 구성 할 수 있습니다 ~/.curlrc( _curlrc추가하여 Windows의 경우) 파일의 proxy값을, 구문은 다음과 같습니다

proxy = http://username:password@proxy-host:port

언급 된 모든 답변을 요약하면 다음과 같습니다.

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>

인증 프록시를 사용하면 다음을 사용합니다.

curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>

왜 curl이 http [s] _proxy 환경 변수를 사용 / 캐치하지 않는지 모르겠 기 때문 입니다.


http[s]_proxy하나의 off 명령에 프록시를 설정하는 경우 쉘 변수 를 내보낼 필요가 없습니다 . 예 :

http_proxy=http://your.proxy.server:port curl http://www.example.com

즉, curl -x항상 프록시를 사용한다는 것을 알고 있다면 선호 합니다.


직장에 따라 CA 인증서와 관련된 잠재적 문제를 극복하기 위해 curl에 대한 -k또는 --insecure옵션 을 지정해야 할 수도 있습니다 .

curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>

sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg

curl이 프록시를 설정해야하기 때문에 오류가 발생했습니다.

프록시를 프록시로 바꾸십시오 . "example"은 http://10.1.1.50:8080/ 입니다.


C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080

프록시가 PAC 파일과 함께 자동 프록시를 사용하는 경우 PAC URL의 자바 스크립트에서 실제 프록시를 찾을 수 있습니다.

프록시에 인증이 필요한 경우 먼저 일반 웹 브라우저를 사용하여 인증 대화 상자를 홍보하는 웹 사이트에 액세스 할 수 있습니다. 인증 후 wireshark를 사용하여 http 패키지가 프록시 서버로 보내는 http 패키지를 캡처 할 수 있습니다. http 패키지에서 http 헤더에서 인증 토큰을 얻을 수 있습니다. Proxy-Authorization

그런 다음 http_proxy 환경 변수를 설정하고 http 헤더에 인증 토큰을 포함시킬 수 있습니다. Proxy-Authorization

수출 http_proxy = http : // proxyserver : port

curl -H "프록시 인증 : xxxx" http : // targetURL

참고 URL : https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy



반응형