如何让curl忽略代理? 设置$ NO_PROXY对我来说似乎不起作用。

有帮助吗?

解决方案

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

(请参阅curl的手册,了解它所查看的所有变量,在 ENVIRONMENT 标题下。)

其他提示

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

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

来自手册

我遇到了同样的问题,因为我设置了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选项不可用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top