使用cURL执行HTTP请求(使用PROXY)

时间:2012-02-25 15:47:57

标签: linux curl proxy

我有这个代理地址:125.119.175.48:8909

如何使用curl http://www.example.com等cURL执行HTTP请求,但是指定网络的代理地址?

17 个答案:

答案 0 :(得分:569)

来自man curl

-x, --proxy <[protocol://][user:password@]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.

答案 1 :(得分:377)

一般方式:

export http_proxy=http://your.proxy.server:port/

然后,您可以通过(许多)应用程序中的代理连接。

并且,根据以下评论,对于https:

export https_proxy=https://your.proxy.server:port/

答案 2 :(得分:110)

上面的解决方案可能不适用于我自己尝试过的一些curl版本(curl 7.22.0)。但对我有用的是:

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

希望它能更好地解决问题!

答案 3 :(得分:71)

请注意,如果您使用的是SOCKS代理,而不是HTTP / HTTPS代理,则需要使用--socks5开关:

curl --socks5 125.119.175.48:8909 http://example.com/

您还可以使用--socks5-hostname代替--socks5来解析代理端的DNS。

答案 4 :(得分:47)

作为对airween的加入,另一个好主意是将此添加到.bashrc中,这样您就可以从非代理环境切换到代理环境:

alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

你在哪里:YOURPORT正好是你的ip和端口代理: - )。

然后,只需做

proxyon

您的系统将开始使用代理,而与之相反:

proxyoff

答案 5 :(得分:32)

使用以下

curl -I -x 192.168.X.X:XX http://google.com

192.168.X.X:XX将你的代理服务器ip和port。

-v详细模式它会提供更多详细信息,包括标题和响应。

答案 6 :(得分:29)

你可以使用:

curl http://www.example.com --proxy http://125.119.175.48:8909

由Karl解释

答案 7 :(得分:23)

我喜欢用它来获取我所看到的IP

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo

希望这有助于某人。

答案 8 :(得分:16)

对于curl,您可以通过添加~/.curlrc值在_curlrc(Windows上为proxy)文件中配置代理,语法为:

proxy = http://username:password@proxy-host:port

答案 9 :(得分:12)

总结所有提到的答案:

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>

答案 10 :(得分:7)

使用带有身份验证的代理我使用:

curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>

因为,我不知道curl为什么不使用/ catch http [s] _proxy 环境变量。

答案 11 :(得分:3)

C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080

答案 12 :(得分:2)

如果您只为一次性命令设置代理,则不需要导出ShaderEffectSource shell变量。 e.g。

http[s]_proxy

那就是说,如果我知道我总是要使用代理,我更喜欢http_proxy=http://your.proxy.server:port curl http://www.example.com

答案 13 :(得分:2)

根据您的工作场所,您可能还需要为curl指定d.index.freq -k选项,以便解决CA证书的潜在问题。

--insecure

答案 14 :(得分:0)

sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
  

这对我来说效果很好,出现错误是因为需要设置curl   代理

     

请记住,请将代理替换为您的代理,我的“ example”为   http://10.1.1.50:8080/

答案 15 :(得分:0)

curl -vv -k https://example.com -x http://<proxy>:<port>

答案 16 :(得分:-1)

如果代理使用PAC文件的自动代理。我们可以从PAC URL的javascript中找到实际的代理。

如果代理需要身份验证,我们可以先使用普通的Web浏览器访问网站,这将促进身份验证对话框。验证后,我们可以使用wireshark捕获发送到代理服务器的http包,从http包中,我们可以从http头获取auth令牌:代理授权

然后我们可以设置http_proxy环境变量,并在http标头中包含auth令牌:代理授权

导出http_proxy = http://proxyserver:port

curl -H“代理授权:xxxx”http://targetURL