卷曲:绕过localhost的代理

时间:2012-11-26 05:55:13

标签: bash curl proxy

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

我的配置:

  • Cygwin(bash)在Windows 8下使用curl扩展名。
  • 代理:proxy.domain.xx:1080无身份验证
  • http_proxy=http://proxy.domain.xx:1080
  • 本地服务器:XAMP版本1.8.0
  • Apache端口: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
    

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

7 个答案:

答案 0 :(得分:40)

之后

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

curl以

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

所以它明确表示它已连接到localhost。

答案 1 :(得分:7)

使用

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

完全禁用代理。

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

curl -v --noproxy“abc.com”http://abc.com

其中abc.com是您要去的网址

答案 2 :(得分:4)

正如其他人所说,--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

答案 3 :(得分:4)

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

  

curl --proxy“” - location http://127.0.0.1:8983

答案 4 :(得分:1)

Curl希望使用代理指定端口,此解决方案适用于我

导出http_proxy =“http:// myproxy:80”

答案 5 :(得分:0)

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

答案 6 :(得分:0)

在下面尝试,绕过本地IP的代理服务

export no_proxy=localhost,127.0.0.1