Answers:
我假设curl正在从环境变量中读取代理地址,http_proxy
并且该变量应保留其值。然后在像bash这样的shell中,export http_proxy='';
在命令(或在shell脚本中)临时更改其值之前。
(请参阅curl的手册,在ENVIRONMENT
标题下查看它的所有变量。)
unset http_proxy
ftp_proxy
。我认为,这是完整列表wiki.archlinux.org/index.php/proxy_settings。
--noproxy
选项不适用于较早的curl版本(例如,在Centos / RHEL 5.x中使用的那些版本)
--noproxy 127.0.0.1
是,如果stackoverflow.com在本地主机上运行。
我遇到了同样的问题,因为我设置了http_proxy和https_proxy环境变量。但有时,我连接到其他网络,需要暂时绕过代理。最简单的方法(不更改环境变量)是:
curl --noproxy '*' stackoverflow.com
在手册中:“唯一的通配符是单个*字符,它匹配所有主机,并有效地禁用了代理。”
带*的字符被加引号,以便它不会被外壳错误地扩展。
curl --noproxy "*" stackoverflow.com
正常工作,将代理字符串设置为“”
curl -x "" http://www.stackoverflow.com
将代理首选项添加到.curlrc
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
这使得所有开发域和本地计算机请求都忽略了代理。
.
。
远景,但尝试将代理设置为“”(空字符串),该代理应根据手册页覆盖所有代理设置。
您应该使用$no_proxy
env变量(小写)。请参阅https://wiki.archlinux.org/index.php/proxy_settings以获取示例。
另外,很久以前在curl上就有一个bug http://sourceforge.net/p/curl/bugs/185/,也许您正在使用包含此bug的古老curl版本。
首先,我列出了当前的代理设置
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
我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"
}
在我的情况下(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
它开始工作并可以连接到内部网址
因此,如果您的环境中有临时解决方案,建议您取消设置所有代理变量。
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY