在这篇文章中,我们将介绍:
什么是 curl安装 curl。开始使用代理需要什么如何在 curl 中指定 HTTP/HTTPS 代理。如何在 curl 中设置 SOCKS 代理。你应该了解的窍门和技巧哪些代理最适合 curl?什么是 cURL?cURL 是 “客户端 URL” 的缩写,是一种通过 URL 在互联网发送和接收数据的工具。作为一个软件项目,cURL 提供库 (libcurl) 和命令行工具 (curl)。这里,我们将重点介绍 curl,一款通过 URL 语法传输数据的命令行工具。
该项目支持多种协议,包括 HTTP、HTTPS、FTP、FTPS、SFTP、POP3、POP3S、IMAP、IMAPS、LDAP、LDAPS、SCP 等等。这使得 curl 成为世界上最受欢迎、使用最广泛的命令行 HTTP 客户端。
cURL 用途广泛,是执行各种任务的常见解决方案,例如发出 HTTP 请求、下载文件、上传数据以及与 API 交互。它具备多种功能,包括请求自定义和代理支持。
安装 curl现在我们来学习一下如何在计算机上安装 curl。
macOS
你不需要在 macOS 上安装 curl。macOS 操作系统已包含此工具,可以在 Terminal 应用程序中本地使用。
Windows
从 Windows 10 开始,Windows 系统自带 curl 的副本。同时, curl 命令是 PowerShell Invoke-WebRequest 命令的别名。这意味着 Windows 终端中的 curl 命令将在后台调用 Invoke-Request。为了避免这种情况并实际使用 cURL 中的 curl ,请将 “curl” 替换为 “curl.exe”。这样,PowerShell 将运行 curl 而不是 Invoke-Request。
例如,你可以使用以下命令在终端中验证安装在 Windows 计算机上的 curl 的当前版本:
curl.exe --version这样会显示类似于以下的内容:
curl 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDNRelease-Date: 2023-03-20Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftpFeatures: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets如果你是 Windows 用户,请将文章命令中的所有 “curl” 实例替换为 “curl.exe” 字符串。否则,请设置适用于 Linux 的 Windows 子系统 (WSL) 并按照以下说明进行操作。
Linux
在 Linux 上安装 curl 的过程会根据你使用的特定发行版而有所不同。默认情况下系统自带热门的 Linux 发行版,例如 Ubuntu 和 Fedora。因此,你可以直接在终端中使用 curl。
其他发行版可能不包含 curl。这种情况下,你可以使用发行版软件包管理器来添加 curl。在基于 Debian 的操作系统上,你可以使用以下命令安装 curl:
sudo apt-get install curl在 curl 中使用代理需要什么代理在客户端和目标服务器之间充当媒介,拦截来自客户端的请求,将其转发到服务器,接收来自服务器的响应,然后将其发送回客户端。这种媒介方式更有助于保持匿名,避免网络限制。这是因为目标服务器会认为请求来自所选代理服务器的 IP 和位置以及来自你。
想要开始通过代理服务使用 curl,你首先需要访问代理。具体而言,代理 URL 的语法如下所示:
[://][:]@[:]这包括:
:用于连接代理服务器的协议。如果未指定协议,curl 将默认为 http://。:代理服务器的主机名所需 IP 地址或 URL。:代理服务器正在监听的端口号。如果未指定端口,curl 将默认使用 1080。:需要身份验证时指定的可选用户名。:需要身份验证时指定的可选密码。至于代理协议,最受欢迎的是 HTTP 和 HTTPS,其次是 SOCKS。
这时候要检索有效的 HTTP 代理!
你可以从免费代理列表中免费获取一个,如下所示:
IP Address: 71.19.249.97; Port: 8443这意味着代理 URL 是:
http://71.19.249.97:8443出于学习目的可以选择这样的解决方案,但在实际情况下不能采用。免费代理服务不可靠、容易出错、速度慢、时效短而且会收集大量数据。请勿使用这些服务!
有何解决方案?使用市面上最好的代理服务提供商 Bright Data 的高级代理 。订阅并免费试用我们的可靠代理。
请记住,高级解决方案具备身份验证保护机制。假设协议是 HTTP,主机是 71.103.203.109,端口是 9321,证书对是 admin-32458 和 rTuJ3tEwf。这种情况下,curl 代理 URL 将为:
http://admin-32458:@rTuJ3tEwf71.103.203.109:9321如何在 curl 中指定 HTTP/HTTPS 代理开始之前,在终端中启动以下命令:
curl "https://httpbin.org/ip"如你所见,curl 的基本语法是:
curl [optional_commands]一项 curl 最佳实践建议在 URL 前后使用双引号,以避免出现特殊字符的问题。
运行后就会得到:
{ "origin": "194.33.243.7"}HTTPBin 项目帮助你获取 HTTP 请求的相关信息。详细而言,/ip 端点返回请求的源 IP,即执行请求的计算机的 IP 地址。换句话说,它会返回你的 IP。
在 curl 中设置代理后,你将能看到代理服务器的 IP 地址,而非自己的 IP 地址。
在 curl 中设置代理有若干方法。现在让我们来看看在 curl 中指定 HTTP/HTTPS 代理的最常用方法。
使用命令行参数
curl 提供两个命令行参数来设置代理 URL:
-x--proxy两者可以互换使用,因为它们的作用完全相同。后者只是前者的别名。
因此,通过代理服务使用 curl 的语法变为:
curl -x [://][:]@[:]或:
curl --proxy [://][:]@[:]注意:在 curl 中,命令行选项区分大小写。例如, -x 和 -X 有两种不同的含义。
如果你现在启动:
curl -x "http://71.19.249.97:8443" "https://httpbin.org/ip"或等效的:\
curl --proxy "http://71.19.249.97:8443" "https://httpbin.org/ip"你将得到:
{ "origin": "71.19.249.97"}源与代理服务器 IP 相匹配。这意味着目标站点会如预期一样,认为请求来自代理。大功告成!
不要忘记免费代理的时效短,因此当你阅读