题
如何让curl忽略代理? 设置$ NO_PROXY对我来说似乎不起作用。
解决方案
我假设curl正在从环境变量 http_proxy
中读取代理地址,并且该变量应该保留其值。然后在像bash这样的shell中, export http_proxy ='';
在命令之前(或在shell脚本中)暂时改变它的值。
(请参阅curl的手册,了解它所查看的所有变量,在 ENVIRONMENT
标题下。)
其他提示
我遇到了同样的问题,因为我设置了http_proxy和https_proxy环境变量。但偶尔,我连接到不同的网络,需要暂时绕过代理。最简单的方法是(不更改环境变量):
curl --noproxy '*' stackoverflow.com
来自手册:"唯一的通配符是单个*字符,它匹配所有主机,并有效地禁用代理。“
引用*字符,以便shell不会错误地扩展它。
远射,但尝试将代理设置为“"” (空字符串)应根据手册页覆盖任何代理设置。
首先,我用
列出了当前的代理设置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"
}
这很好用,将代理字符串设置为“"”
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 / ,也许你正在使用包含这个bug的古老卷曲版本。
将您的代理偏好设置添加到.curlrc
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
这使得所有开发域和本地机器请求都忽略了代理。
Lame回答但是:请记住确保〜/ .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
它开始工作并可以连接到内部网址
因此,如果您在您的环境中作为临时解决方案,我建议取消设置所有代理变量。
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
在我设置“no_proxy”之前,我的卷曲并没有忽略Ubuntu 12.04上的代理。 (小写)环境变量。 --noproxy选项不可用。