📜  curl 与代理 (1)

📅  最后修改于: 2023-12-03 15:30:13.494000             🧑  作者: Mango

介绍 curl 与代理

curl 是一个非常常见的命令行工具,可以帮助我们向服务器发送 HTTP 请求并接收响应。curl 的一大特点是支持代理,使用代理可以帮助我们实现访问被屏蔽或限制的网站或服务的目的。

本文将从以下几个方面介绍 curl 如何使用代理:

  1. curl 的代理选项
  2. 使用 HTTP 代理
  3. 使用 SOCKS5 代理
  4. curl 代理状态检查
  5. curl 代理超时设置
curl 的代理选项

curl 提供了以下两个代理选项:

  1. --proxy:设置代理服务器地址,支持 HTTP、HTTPS、SOCKS4 和 SOCKS5 协议。
  2. --noproxy:设置不使用代理的主机列表。

例如,要向 http://www.example.com 发送请求,并通过代理服务器 proxy.example.com:8080 连接:

curl --proxy http://proxy.example.com:8080 http://www.example.com
使用 HTTP 代理

HTTP 代理是最常见的代理类型。在 curl 中,我们可以使用以下方式为 HTTP 请求设置代理:

curl --proxy http://proxy.example.com:8080 http://www.example.com
使用 SOCKS5 代理

SOCKS5 代理相较于 HTTP 代理有更好的安全性和稳定性。在 curl 中,我们可以使用以下方式为 SOCKS5 请求设置代理:

curl --proxy socks5://proxy.example.com:1080 http://www.example.com
curl 代理状态检查

有时我们需要检查 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 与代理的连接超时时间:

curl --proxy http://proxy.example.com:8080 --connect-timeout 5 http://www.example.com

其中,--connect-timeout 表示连接超时的时间。在默认情况下,curl 的连接超时时间是 300 秒。