如何让curl忽略代理?

如何让curl忽略代理? 设置$ NO_PROXY似乎不适用于我。

我假设curl正在从环境variableshttp_proxy读取代理地址,并且该variables应该保留它的值。 然后在像bash这样的shell中, export http_proxy=''; 在一个命令(或在一个shell脚本)之前会暂时改变它的值。

(在ENVIRONMENT标题下查看所有variables的curl手册。)

如果你的curl至less是7.19.4版,你可以使用--noproxy标志。

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

从手册 。

我遇到了同样的问题,因为我设置了http_proxy和https_proxy环境variables。 但偶尔,我连接到不同的networking,需要暂时绕过代理。 最简单的方法(不更改环境variables)是:

 curl --noproxy '*' stackoverflow.com 

从手册: “唯一的通配符是一个单一的*字符,它匹配所有主机,并有效地禁用代理。”

*字符被引用,以便它不会被shell错误地扩展。

长枪,但尝试设置代理为“”(空string),应该覆盖任何代理设置根据手册页。

我有http_proxyhttps_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" } 

首先,我列出了当前的代理设置

 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 

它的工作!

PS! 记得把http-proxy设置回原来的设置

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

你应该使用$no_proxy envvariables(小写)。 例如,请查阅https://wiki.archlinux.org/index.php/proxy_settings

此外,很久以前,curl就有一个bug http://sourceforge.net/p/curl/bugs/185/ ,也许你正在使用一个包含这个bug的古curl版本。

将您的代理首选项添加到.curlrc中

 proxy = 1.2.3.4 noproxy = .dev,localhost,127.0.0.1 

这使所有开发域和本地机器请求忽略代理。

在我设置“no_proxy”(小写)环境variables之前,我的curl并没有忽略Ubuntu 12.04上的代理。 –noproxy选项不可用。

跛脚答案,但是:请记住确保没有代理设置在~/.curlrc文件(…)。