문제
컬을 프록시를 무시하게하려면 어떻게해야합니까? $ no_proxy를 설정하는 것은 나에게 효과가없는 것 같습니다.
해결책
Curl이 환경 변수에서 프록시 주소를 읽고 있다고 가정합니다. http_proxy
변수는 그 가치를 유지해야합니다. 그런 다음 Bash와 같은 쉘에서 export http_proxy='';
명령 (또는 쉘 스크립트)이 일시적으로 그 값을 변경하기 전에.
(아래에서 보는 모든 변수는 Curl의 매뉴얼을 참조하십시오. ENVIRONMENT
표제.)
다른 팁
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.