我有这个代理地址:125.119.175.48:8909
如何使用cURL(如cURL http://www.example.com)执行HTTP请求,但指定我的网络的代理地址?
我有这个代理地址:125.119.175.48:8909
如何使用cURL(如cURL http://www.example.com)执行HTTP请求,但指定我的网络的代理地址?
当前回答
总结一下所有提到的答案:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
其他回答
来自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.
如果代理正在使用自动代理与PAC文件。我们可以从javascript和PAC URL中找到实际的代理。
如果代理需要认证,我们可以先使用普通的web浏览器访问网站,会弹出认证对话框。认证完成后,我们可以使用wireshark捕获发送到代理服务器的http包,从http包中,我们可以从http头:proxy - authorization中获取认证令牌
然后我们可以设置http_proxy环境变量,并在http报头中包括认证令牌:Proxy-Authorization
出口http_proxy = http://proxyserver:端口
curl -H "Proxy-Authorization: xxxx" http://targetURL
作为airween的补充,另一个好主意是将它添加到你的.bashrc中,这样你就可以从非代理环境切换到代理环境:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
WHERE YOURPROXY:YOURPORT就是你的ip和端口代理:-)。
然后,简单地做
proxyon
您的系统将开始使用代理,与之相反:
proxyoff
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
这对我来说很完美,错误来了,因为旋度需要设置 代理 记得把代理替换成你的代理,我的代理,“例子”是 http://10.1.1.50:8080。
与代理认证我使用:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
因为,我不知道为什么curl不使用/catch http[s]_proxy环境变量。