我有这个代理地址。125.119.175.48:8909
我如何使用cURL执行HTTP请求,就像curl http://www.example.com
,但要指定我的网络的代理地址?
请注意,如果您使用的是SOCKS代理,而不是HTTP/HTTPS代理,您需要使用--socks5
开关。
curl --socks5 125.119.175.48:8909 http://example.com/
你也可以用--socks5-hostname
代替--socks5
在代理端解析DNS。
作为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
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
如果代理使用的是自动代理的PAC文件。 我们可以从PAC URL的javascript中找到实际的代理。
如果代理需要认证,我们可以先用普通的浏览器访问网站,这样会出现认证对话框。 认证完成后,我们可以使用wireshark来捕获发送到代理服务器的http包,从http包中,我们可以从http头中得到认证令牌。 Proxy-Authorization
然后我们可以设置http_proxy环境变量,并在http头中加入auth令牌。 Proxy-Authorization
export http_proxy_http://proxyserver:port
curl -H "Proxy-Authorization: xxxx" http://targetURL