31

我在代理下,如果我尝试curl http://localhost/mysitecurl http://127.0.0.1/mysitecurl 尝试使用代理解决它。所以我尝试了--noproxy选项,但不起作用。对于代理为curl http://mysite.com.

我的配置:

  • 带有 curl 扩展名的 Windows 8 下的 Cygwin (bash)。
  • 代理:proxy.domain.xx:1080无认证
  • http_proxy=http://proxy.domain.xx:1080
  • 本地服务器:XAMP 版本 1.8.0
  • 阿帕奇端口:80,443
  • 浏览器:带代理的 Chrome,但配置为访问localhost*.dev

来自 curl --help

--noproxy :逗号分隔的不使用代理的主机列表

我尝试了什么:

  • 我已停用防火墙,但什么也没有
  • $ curl -v http://localhost/mysite -> 调试:

    回复

    Connected to proxy.domain.xx (200.55.xxx.xx) port 1080 (#0)
    GET http://localhost/mysite HTTP/1.1
    User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
    Host: localhost
    Accept: */*
    Proxy-Connection: Keep-Alive
    The system returned: <PRE><I>(111) Connection refused</I></PRE>
    
  • curl -v --noproxy localhost, http://localhost/muestra

    回复

    About to connect() to localhost port 80 (#0)
    * Trying 127.0.0.1... 
    * Connected to localhost (127.0.0.1) port 80 (#0)
    > GET /mysite HTTP/1.1
    > User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
    > Host: localhost
    > Accept: */*
    >
    < HTTP/1.1 301 Moved Permanently
    < Server: Apache/2.4.2 (Win32) OpenSSL/1.0.1c PHP/5.4.4
    < Location: http://localhost/mysite
    < Content-Length: 331
    < Content-Type: text/html; charset=iso-8859-1
    

知道如何解决这个问题吗?

4

7 回答 7

52

curl -v --noproxy localhost, http://localhost/muestra

卷曲回应

About to connect() to localhost port 80 (#0)
* Trying 127.0.0.1... 
* Connected to localhost (127.0.0.1) port 80 (#0)

所以它清楚地表明它连接到本地主机。

于 2013-02-26T20:44:40.470 回答
11

试试下面,绕过本地 ips 的代理服务

export no_proxy=localhost,127.0.0.1
于 2019-05-03T03:42:49.090 回答
9

采用

curl -v --noproxy '*' http://abc.com

完全禁用代理。

或者如果您只想为 abc.com 目标禁用代理

curl -v --noproxy "abc.com" http://abc.com

abc.com 是您要访问的网址

于 2013-06-06T13:47:40.187 回答
5

正如其他一些人所说,这些--noproxy选项就是您要寻找的。 https://curl.haxx.se/docs/manpage.html#--noproxy

显然,您尝试的第二个请求是接收 HTTP 301 响应,因此您可能还想使用该-L选项来跟踪重定向: https ://curl.haxx.se/docs/manpage.html#-L

您可以使用 curl 别名来始终忽略 localhost 请求的代理。

alias curl='curl --noproxy localhost,127.0.0.1'

为方便起见,将其添加到您的 .bashrc 文件中:

echo "alias curl='curl --noproxy localhost,127.0.0.1'" >> ~/.bashrc

于 2015-04-21T22:19:51.137 回答
5

在 Windows 中,以下选项适用于我连接到 localhost。

curl --proxy "" --location http://127.0.0.1:8983

于 2016-06-08T13:04:58.623 回答
1

Curl 希望使用代理指定端口此解决方案对我有用

导出 http_proxy="http://myproxy:80"

于 2014-10-09T01:28:35.557 回答
0

作为一种解决方法,您可以在运行 curl 之前取消设置变量 http_proxy,而不使用选项 --noproxy。

于 2019-04-30T11:26:34.260 回答