如何使 curl 忽略代理? 设置 $NO _ PROXY 似乎对我不起作用。
尽管希望渺茫,但是请尝试将代理设置为“”(空字符串) ,以根据手册页覆盖任何代理设置。
我假设 curl 正在从环境变量 http_proxy读取代理地址,并且变量应该保持其值。然后,在 bash 这样的 shell 中,命令之前的 export http_proxy='';(或 shell 脚本中的 export http_proxy='';)将临时更改其值。
http_proxy
export http_proxy='';
(在 ENVIRONMENT标题下,参见 curl 的手册了解它所查看的所有变量。)
ENVIRONMENT
首先,我列出了当前的代理设置
env | sort | less
(应该类似于 http_proxy=http://wpad.local.machine.location:port number)
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
成功了!
请记住使用
export http_proxy=http://wpad.local.machine.location:port number
如果您的 curl至少是版本 7.19.4,您可以只使用 --noproxy标志。
curl
7.19.4
--noproxy
curl --noproxy '*' http://www.stackoverflow.com
来自 手动操作。
我也遇到了同样的问题,因为我设置了 http _ xy 和 https _ xy 环境变量。但有时,我连接到不同的网络,需要暂时绕过代理。最简单的方法(不改变环境变量)是:
curl --noproxy '*' stackoverflow.com
手册: “唯一的通配符是一个 * 字符,它匹配所有主机,并有效地禁用代理。”
引用 * 字符是为了不让 shell 错误地展开它。
我的 curl 并没有忽略 Ubuntu 12.04上的代理,直到我设置了“ no _ xy”(小写)环境变量。无法使用—— noproxy 选项。
您应该使用 $no_proxy env 变量(小写)。
$no_proxy
而且,很久以前 http://sourceforge.net/p/curl/bugs/185/中的 curl 有一个 bug,也许你正在使用一个包含这个 bug 的古老的 curl 版本。
我有 http_proxy和 https_proxy的定义。我不想取消和设置再次这些环境 但是 --noproxy '*'工程完美为我。
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" }
蹩脚的回答,但是: 记住要确保在 ~/.curlrc文件(...)中没有设置代理。
~/.curlrc
将代理首选项添加到 . curlrc 或 _ curlrc (windows)
proxy = 1.2.3.4 noproxy = .dev,localhost,127.0.0.1
这使得所有的开发域和本地机器请求忽略代理。
请参见同一页上的 代理人手册页和 noxy 手册页。
这个工作正常,将代理字符串设置为“”
curl -x "" http://www.stackoverflow.com
在我的例子中(macos,curl 7.54.0) ,我使用 ~/.bash_profile设置了以下代理
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。
NO_PRXY
no_proxy
HTTPS_PROXY
unset HTTPS_PROXY unset https_proxy
它开始工作,可以连接到内部网址
因此,如果您的环境中有临时解决方案,我建议取消所有代理变量的设置。
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
对于窗口: 使用 curl --proxy "" ...
curl --proxy "" ...