📅  最后修改于: 2023-12-03 15:30:13.494000             🧑  作者: Mango
curl 是一个非常常见的命令行工具,可以帮助我们向服务器发送 HTTP 请求并接收响应。curl 的一大特点是支持代理,使用代理可以帮助我们实现访问被屏蔽或限制的网站或服务的目的。
本文将从以下几个方面介绍 curl 如何使用代理:
curl 提供了以下两个代理选项:
例如,要向 http://www.example.com 发送请求,并通过代理服务器 proxy.example.com:8080 连接:
curl --proxy http://proxy.example.com:8080 http://www.example.com
HTTP 代理是最常见的代理类型。在 curl 中,我们可以使用以下方式为 HTTP 请求设置代理:
curl --proxy http://proxy.example.com:8080 http://www.example.com
SOCKS5 代理相较于 HTTP 代理有更好的安全性和稳定性。在 curl 中,我们可以使用以下方式为 SOCKS5 请求设置代理:
curl --proxy socks5://proxy.example.com:1080 http://www.example.com
有时我们需要检查 curl 的代理是否正常工作,可以使用以下命令:
curl --proxy http://proxy.example.com:8080 -I http://www.example.com
其中,-I 选项表示只请求 HTTP 头部信息。如果代理没有问题,会得到类似以下响应:
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 02 Sep 2021 01:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 12345
在使用代理的过程中,可能会遇到连接超时的问题。使用以下命令可以设置 curl 与代理的连接超时时间:
curl --proxy http://proxy.example.com:8080 --connect-timeout 5 http://www.example.com
其中,--connect-timeout 表示连接超时的时间。在默认情况下,curl 的连接超时时间是 300 秒。