如何让curl忽略代理? 设置$ NO_PROXY对我来说似乎不起作用。
答案 0 :(得分:172)
答案 1 :(得分:56)
我遇到了同样的问题,因为我设置了http_proxy和https_proxy环境变量。但偶尔,我连接到不同的网络,需要暂时绕过代理。最简单的方法是(不更改环境变量):
curl --noproxy '*' stackoverflow.com
来自手册:“唯一的通配符是单个*字符,它匹配所有主机,并有效地禁用代理。”
引用*字符,以便shell不会错误地扩展它。
答案 2 :(得分:43)
我假设curl正在从环境变量http_proxy
读取代理地址,并且该变量应该保留其值。然后在bash之类的shell中,export http_proxy='';
在命令之前(或在shell脚本中)暂时改变它的值。
(请参阅curl的手册,了解它所查看的所有变量,在ENVIRONMENT
标题下。)
答案 3 :(得分:6)
远射,但尝试将代理设置为“”(空字符串),应根据手册页覆盖任何代理设置。
答案 4 :(得分:6)
我已定义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"
}
答案 5 :(得分:5)
首先,我用
列出了当前的代理设置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
答案 6 :(得分:5)
您应该使用$no_proxy
env变量(小写)。有关示例,请参阅https://wiki.archlinux.org/index.php/proxy_settings。
此外,很久以前在curl中存在一个错误http://sourceforge.net/p/curl/bugs/185/,也许你正在使用一个包含这个bug的古老卷曲版本。
答案 7 :(得分:4)
将您的代理偏好设置添加到.curlrc
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
这使得所有开发域和本地机器请求都忽略了代理。
答案 8 :(得分:4)
这很好,将代理字符串设置为“”
awk ' ##Starting awk command/script here.
/^>/{ ##Checking condition if a line starts from > then do following.
sum+=$NF ##Creating a variable named sum wohse value is adding in its own value of $NF last field of current line.
count++ ##Creating a variable named count whose value is incrementing by 1 each time cursor comes here.
}
END{ ##END block of awk code here.
print "avg="sum/count ##Printing string avg= then dividing sum/count it will print the result of it.
}
' Input_file ##Mentioning Input_file name here.
答案 9 :(得分:1)
如果是 Windows:使用 curl --proxy "" ...
答案 10 :(得分:0)
Lame回答但是:请记住确保~/.curlrc
文件中没有设置代理(...)。
答案 11 :(得分:0)
在我的情况下(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
,然后我逐个取消设置代理环境变量,直到两个{ {1}}和HTTPS_PROXY
。
https_proxy
它开始工作并可以连接到内部网址
因此,如果您的环境中有临时解决方案,那么我建议您取消设置所有代理变量。
unset HTTPS_PROXY
unset https_proxy
答案 12 :(得分:-1)
在我设置“no_proxy”(小写)环境变量之前,我的卷曲并没有忽略Ubuntu 12.04上的代理。 --noproxy选项不可用。