컬을 프록시를 무시하게하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/800805

  •  03-07-2019
  •  | 
  •  

문제

컬을 프록시를 무시하게하려면 어떻게해야합니까? $ no_proxy를 설정하는 것은 나에게 효과가없는 것 같습니다.

도움이 되었습니까?

해결책

Curl이 환경 변수에서 프록시 주소를 읽고 있다고 가정합니다. http_proxy 변수는 그 가치를 유지해야합니다. 그런 다음 Bash와 같은 쉘에서 export http_proxy=''; 명령 (또는 쉘 스크립트)이 일시적으로 그 값을 변경하기 전에.

(아래에서 보는 모든 변수는 Curl의 매뉴얼을 참조하십시오. ENVIRONMENT 표제.)

다른 팁

당신의 경우 curl 적어도 버전입니다 7.19.4, 당신은 그냥 사용할 수 있습니다 --noproxy 깃발.

curl --noproxy "*" http://www.stackoverflow.com

로부터 수동.

http_proxy 및 https_proxy 환경 변수를 설정했기 때문에 같은 문제에 부딪쳤다. 그러나 때때로, 나는 다른 네트워크에 연결하고 프록시를 일시적으로 우회해야합니다. 이 작업을 수행하는 가장 쉬운 방법 (환경 변수를 변경하지 않고)은 다음과 같습니다.

curl --noproxy '*' stackoverflow.com

매뉴얼에서 : "유일한 와일드 카드는 단일 * 캐릭터로 모든 호스트와 일치하며 프록시를 효과적으로 비활성화합니다."

* 문자는 쉘에 의해 잘못 확장되지 않도록 인용됩니다.

긴 샷이지만 프록시를 Man Page에 따라 프록시 설정을 무시 해야하는 "(빈 문자열)로 프록시를 설정하십시오.

먼저 현재 프록시 설정을 나열했습니다

env | sort | less

(같은 것이어야합니다 http_proxy=http://wpad.local.machine.location:port number)

그런 다음 설정을 시도했습니다

export http_proxy=";" 

이 오류 메시지를 제공했습니다.

curl: (5) Couldn't resolve proxy ';'

시험을 마친

export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55

그리고 그것은 효과가있었습니다!

추신! HTTP-Proxy를 원래 설정으로 다시 설정하는 것을 잊지 마십시오.

export http_proxy=http://wpad.local.machine.location:port number

나는 가지고있다 http_proxy 그리고 https_proxy 정의됩니다. 나는 세트를 풀고 싶지 않고 그 환경을 다시 설정하고 싶지 않습니다. 하지만 --noproxy '*' 나를 위해 완벽하게 작동합니다.

curl --noproxy '*' -XGET 172.17.0.2:9200
{
  "status" : 200,
  "name" : "Medusa",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.5.0",
    "build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
    "build_timestamp" : "2015-03-23T14:30:58Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

이것은 잘 작동하고 프록시 문자열을 ""로 설정합니다.

curl -x "" http://www.stackoverflow.com

당신은 사용해야합니다 $no_proxy ENV 변수 (하위 사례). 상담하십시오 https://wiki.archlinux.org/index.php/proxy_settings 예를 들어.

또한 오래 전에 Curl에 버그가있었습니다. http://sourceforge.net/p/curl/bugs/185/ 아마도이 버그를 포함하는 고대 컬 버전을 사용하고있을 것입니다.

프록시 환경 설정을 .curlrc에 추가하십시오

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

이로 인해 모든 개발 도메인과 로컬 머신 요청이 프록시를 무시하게됩니다.

절름발이 답변이지만 : 프록시가 ~/.curlrc 파일 (...).

제 경우 (MacOS, curl 7.54.0), 아래 프록시 세트가 있습니다 ~/.bash_profile

$ env |grep -i proxy |cut -d = -f1|sort
FTP_PROXY
HTTPS_PROXY
HTTP_PROXY
NO_PROXY
PROXY
ftp_proxy
http_proxy
https_proxy
no_proxy

알 수없는 이유가 있습니다 curl 환경 변수와 함께 작동 할 수 없습니다 NO_PRXY 그리고 no_proxy 적절하게, 나는 프록시 환경 변수를 하나씩 해제하지 않을 때까지. HTTPS_PROXY 그리고 https_proxy.

unset HTTPS_PROXY
unset https_proxy

작동을 시작하고 내부 URL에 연결할 수 있습니다

따라서 환경에 임시 솔루션으로 모든 프록시 변수를 설정하지 않는 것이 좋습니다.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

My curl was not ignoring the proxy on Ubuntu 12.04 until I set the "no_proxy" (lowercase) environment variable. The --noproxy option was not available.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top