如何使curl忽略代理?

ksu*_*lta 93 curl

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

Sco*_*fen 203

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

curl --noproxy "*" http://www.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

手册.

  • curl:选项--noproxy:未知 (4认同)
  • @RogerNg,如果我回答问题后手册或用法发生了变化,请随时更新答案或编写自己的答案。尽管如此,在撰写本文时,此答案对于所提出的问题是准确的。如果您的安装不符合规范,那完全是另一个问题。 (3认同)
  • curl --noproxy stackoverflow.com http://www.stackoverflow.com这是正确的推荐. (3认同)
  • 我假设`--noproxy`选项不适用于较旧的卷曲版本(例如在Centos/RHEL 5.x中使用的那些) (2认同)
  • 根据文档,如果stackoverflow.com在localhost上运行,那么它可能与`--noproxy 127.0.0.1`一起工作的唯一方法就是这样. (2认同)

wis*_*cky 64

我遇到了同样的问题,因为我设置了http_proxy和https_proxy环境变量.但偶尔,我连接到不同的网络,需要暂时绕过代理.最简单的方法(不更改环境变量)是:

curl --noproxy '*' stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

从手册:"唯一的通配符是单个*字符,它匹配所有主机,并有效地禁用代理."

引用*字符,以便shell不会错误地扩展它.

  • 注意为未来的用户:如果我不引用*so`curl --noproxy"*"stackoverflow.com,Bash会扩展本地文件 (11认同)

Ano*_*ous 49

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

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

  • 或者只是`unset http_proxy` (19认同)

eri*_*tin 15

正常工作,将代理字符串设置为“”

curl -x "" http://www.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)


Cle*_*oom 8

将代理首选项添加到.curlrc

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这使得所有开发域和本地计算机请求都忽略了代理。


Lou*_*uis 6

远景,但尝试将代理设置为""(空字符串),应根据手册页覆盖任何代理设置.

  • 在09年,一切都是一个长镜头. (5认同)
  • +1,-x""就可以了. - 即使我引用"*",带有通配符的noproxy也无法使用我的bash (4认同)
  • 这不是一个"远射" - 这是正确的方法.根据我的curl的手册页(7.15.5,它没有显示'--noproxy'选项),-x/ - proxy <proxyhost [:port]> ...此选项会覆盖将代理设置为的现有环境变量使用.如果有设置代理的环境变量,您可以将代理设置为""以覆盖它. (2认同)

小智 6

首先,我列出了当前的代理设置

env | sort | less
Run Code Online (Sandbox Code Playgroud)

(应该是这样的http_proxy=http://wpad.local.machine.location:port number)

然后我尝试了设置

export http_proxy=";" 
Run Code Online (Sandbox Code Playgroud)

给出了此错误消息:

curl: (5) Couldn't resolve proxy ';'
Run Code Online (Sandbox Code Playgroud)

试着

export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55
Run Code Online (Sandbox Code Playgroud)

它工作了!

PS!请记住将http-proxy设置回其原始设置

export http_proxy=http://wpad.local.machine.location:port number
Run Code Online (Sandbox Code Playgroud)


pra*_*upd 6

http_proxyhttps_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"
}
Run Code Online (Sandbox Code Playgroud)


Dmi*_*san 5

您应该使用$no_proxyenv变量(小写)。有关示例,请查阅https://wiki.archlinux.org/index.php/proxy_settings

另外,很久以前在curl上就有一个bug,http://sourceforge.net/p/curl/bugs/185/,也许您正在使用包含此bug的古老curl版本。


VIS*_*AGA 5

如果是 Windows:使用curl --proxy "" ...