织梦CMS - 轻松建站从此开始!

欧博ABG官网-欧博官方网址-会员登入

如何将 cURL 与欧博代理一起使用

时间:2024-06-24 20:21来源: 作者:admin 点击: 9 次
通过本详细指南学习如何将 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 WinIDN Release-Date: 2023-03-20 Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: 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 中使用代理需要什么

代理在客户端和目标服务器之间充当媒介,拦截来自客户端的请求,DG游戏将其转发到服务器,接收来自服务器的响应,然后将其发送回客户端。这种媒介方式更有助于保持匿名,避免网络限制。这是因为目标服务器会认为请求来自所选代理服务器的 IP 和位置以及来自你。

想要开始通过代理服务使用 curl,你首先需要访问代理。具体而言,代理 URL 的语法如下所示:

[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]

这包括:

<协议>:用于连接代理服务器的协议。如果未指定协议,curl 将默认为 。

<主机>:代理服务器的主机名所需 IP 地址或 URL。

<端口>:代理服务器正在监听的端口号。如果未指定端口,curl 将默认使用 1080。

<用户名>:需要身份验证时指定的可选用户名。

<密码>:需要身份验证时指定的可选密码。

至于代理协议,最受欢迎的是 HTTP 和 HTTPS,其次是 SOCKS。

这时候要检索有效的 HTTP 代理!

你可以从免费代理列表中免费获取一个,如下所示:

IP Address: 71.19.249.97; Port: 8443

这意味着代理 URL 是:

:8443

出于学习目的可以选择这样的解决方案,欧博注册但在实际情况下不能采用。免费代理服务不可靠、容易出错、速度慢、时效短而且会收集大量数据。请勿使用这些服务!

有何解决方案?使用市面上最好的代理服务提供商 Bright Data 的高级代理 。订阅并免费试用我们的可靠代理。

请记住,高级解决方案具备身份验证保护机制。假设协议是 HTTP,主机是 71.103.203.109,端口是 9321,证书对是 admin-32458 和 rTuJ3tEwf。这种情况下,curl 代理 URL 将为:

:@rTuJ3tEwf71.103.203.109:9321 如何在 curl 中指定 HTTP/HTTPS 代理

开始之前,在终端中启动以下命令:

curl "https://httpbin.org/ip"

如你所见,curl 的基本语法是:

curl [optional_commands] <URL>

一项 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 [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>

或:

curl --proxy [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>

注意:在 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 相匹配。这意味着目标站点会如预期一样,认为请求来自代理。大功告成!

不要忘记免费代理的时效短,因此当你阅读本文时,上述服务器不太可能还有效。如果出现错误,请将其替换为新的代理。

使用环境变量

在 curl 中使用代理的另一种方法是设置以下两个环境变量:

http_proxy:用于访问涉及 HTTP 协议的 URL 的代理服务器 URL。

https_proxy:用于访问涉及 HTTP 协议的 URL 的代理服务器的 URL。

在 macOS 和 Linux 上,你可以使用以下语法设置这两个环境:

export http_proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]" export https_proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"

因此,这两个命令将变成:

export http_proxy="http://71.19.249.97:8443" export https_proxy="http://71.19.249.97:8443"

在 Windows 上,你需要使用以下 PowerShell 语法:

$env:http_proxy = "[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]" $env:https_proxy = "[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"

然后,在我们的示例中:

$env:http_proxy = "http://71.19.249.97:8443" $env:https_proxy = "http://71.19.249.97:8443"

从现在起,每个 curl 命令都将经过指定的代理,不必使用 -x 选项:

同样,这将返回:

curl https://httpbin.org/ip {   "origin": "71.19.249.97" }

如需关闭 curl 代理,请使用以下命令取消环境变量的设置:

unset http_proxy unset https_proxy

或者在 Windows 上:

$env:http_proxy = "" $env:https_proxy = ""

curl 将恢复其标准行为, https://httpbin.org/ip 现在将返回你的 IP。

使用配置文件

您可以通过创建 .curlrc 配置文件为 curl 全局指定代理。

在 Linux 和 macOS 上打开终端并导航到你的主目录:

cd ~

然后,使用 nano 访问 .curlrc:

nano .curlrc

如果文件已存在,则文件将被打开。否则将首先创建文件然后再打开。

将以下行添加到 .curlrc 文件:

proxy="http://71.19.249.97:8443"

此指令的语法是:

proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"

保存文件,关闭终端并重启。 

在 Windows 上,你需要在 %APPDATA% 目录内创建内容相同的 _curlrc 文件。将 %APPDATA% 粘贴到文件资源管理器地址栏中,然后按回车键访问该目录。 

这样你会来到 C:\Users\<YOUR_USER>\AppData\Roaming。

现在,curl 将自动使用配置文件中指定的代理:

curl "http://httpbin.org/ip"

你会得到:

{   "origin": "71.19.249.97" }

太棒了!你刚刚学会了如何用三种不同的方式在代理服务器上使用 curl!

如何在 curl 中设置 SOCKS 代理

如果你想使用 SOCKS 代理,命令结构保持不变:

curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>

主要区别在于 <协议> 将是 socks4、socks4a、socks5 或 socks5h,而非 http 和 https。

curl SOCKS 代理正在运行的完整示例是:

curl -x "socks5://94.14.109.54:2478" "http://httpbin.org/ip"

如你所料,结果将是:

{   "origin": "94.14.109.54" }

另一种方法涉及 --socks4、--socks4a、--socks5 命令行选项而不是 -x。这种情况下,必须在选项后设置不带用户名和密码的代理 URL,然后在 --proxy-user 后设置证书:

curl --socks4|--socks4a|--socks5 <HOST>[:<PORT>] <URL> --proxy-user <USERNAME>:<PASSWORD>

例如:

curl --socks4 "93.16.238.41:8721" "http://httpbin.org/ip" --proxy-user admin334:kv4NsDgc3

这将通过 93.16.238. 41:8721 socks4 代理连接到 HTTPBin,同时使用 admin334 作为身份验证的用户名、kv4NsDgc3 作为密码。

你应该了解的窍门和技巧

在本节中,您将看到专业使用 curl 代理的有趣技巧和宝贵诀窍。

快速开启和关闭代理

这里的方法是定义别名,通过带有自定义命令的环境变量,以编程方式设置和取消设置代理。 

在 macOS 和 Linux 上,你可以通过创建 .bashrc 文件来完成这项操作。这是用户每次登录时都会执行的脚本文件。

移至你的主文件夹:

cd ~

然后,创建或打开一个 .bashrc 文件:

nano .bashrc

将以下格式的内容添加到文件:

alias proxyon="export http_proxy='[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]';export https_proxy='[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]'" alias proxyoff="unset http_proxy;unset https_proxy"

因此,在我们的示例中它将是:

alias proxyon="export http_proxy='http://71.19.249.97:8443';export https_proxy='http://71.19.249.97:8443'" alias proxyoff="unset http_proxy;unset https_proxy"

保存文件并重启计算机。

现在,你可以使用以下命令激活和停用 curl 代理:

proxyon curl "http://httpbin.org/ip" # other HTTP requests... proxyoff

注意自定义的 proxyon 和 proxyoff 命令。这些命令执行 .bashrc 文件中的别名指定的操作。

在 Windows 上,你可以使用 PowerShell 别名实现类似的效果。

忽略单个请求的代理

如果你想阻止 curl 为特定请求使用已配置的代理,你可以使用 --noproxy “*” 参数,如下所示:

curl --noproxy "*" <URL>

这会指示 curl 不要对所有 URL 使用代理。

设置代理并运行:

curl --noproxy "*" "https://httpbin.org/ip"

生成的源将包含你的 IP,而非代理服务器的 IP。

避免 SSL 证书错误

在 curl中使用代理时,你的请求可能会由于 SSL 证书错误而失败。为避免这种情况,请按以下语法使用 -k 选项:

curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] -k <URL>

-k 允许通过 SSL 进行不安全的服务器连接,从而帮助你避免证书错误。

例如,你可以通过以下方式避开 SSL 问题联系 HTTPBin:

curl -x "http://71.19.249.97:8443" -k "https://httpbin.org/ip"

获取请求相关的更多信息

当 curl 中的请求失败时,想要了解发生了什么并不容易。如需诊断错误并查看 curl 执行的所有操作,请设置 -v 选项:

curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] -v <URL>

这将输出已建立的连接和该工具所使用的标头相关的详细信息:

$curl -x "http://71.19.249.97:8443" -v "https://httpbin.org/ip" *   Trying 71.19.249.97:8443... * Connected to 71.19.249.97 (71.19.249.97) port 8443 (#0) * allocate connect buffer * Establish HTTP proxy tunnel to httpbin.org:443 > CONNECT httpbin.org:443 HTTP/1.1 > Host: httpbin.org:443 > User-Agent: curl/8.0.1 > Proxy-Connection: Keep-Alive > < HTTP/1.0 200 OK < * CONNECT phase completed * CONNECT tunnel established, response 200 * schannel: disabled automatic use of client certificate * ALPN: offers http/1.1 * ALPN: server accepted http/1.1 * using HTTP/1.1 > GET /ip HTTP/1.1 > Host: httpbin.org > User-Agent: curl/8.0.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 26 Aug 2023 10:39:13 GMT < Content-Type: application/json < Content-Length: 31 < Connection: keep-alive < Server: gunicorn/19.9.0 < Access-Control-Allow-Origin: * < Access-Control-Allow-Credentials: true < {   "origin": "71.19.249.97" } * Connection #0 to host 71.19.249.97 left intact 哪些代理最适合 curl?

这个问题的答案取决于你的用例和你提出的 curl 请求的性质。想要找到适合你需求的解决方案,请查看可用的不同类型的代理:

数据中心代理:速度很快,但由于其 IP 范围可识别,可能很容易被站点检测和屏蔽。

住宅代理:保证了高度的匿名性,因为它们提供来自特定位置真实设备的 IP 地址。住宅代理非常适合访问采用地理限制屏蔽或反机器人措施的站点,也是执行 curl 网页抓取的理想选择。

ISP 代理:提供的 IP 来自登记至 ISP 的设备,因此快速、安全且高度可靠。ISP 代理是 SEO 监控、网页浏览和市场调研的完美解决方案。

移动代理:提供来自真实移动设备的 IP 以实现高度匿名性。它们对于访问特定于移动设备的应用程序、站点或内容很有用。

这只是一个简短的回顾,但你可以在我们的代理 IP 类型指南中了解更多信息。

结语

在本 curl 代理指南中,你了解了 cURL 是什么、它能提供什么,以及如何设置 HTTP/HTTPS/SOCKS 代理。事实证明,你不能信任由免费提供商提供代理服务的 curl。因此,需要做出的主要技术决定是采用哪个代理提供商。节省时间和精力,选择市面上最好的服务 — Bright Data。

Bright Data 掌控着全球最好的代理服务器,为财富 500 强企业和 20,000 多家客户提供服务。其全球代理网络包括:

总体而言,这是市面上最大而且最可靠的抓取型代理网络之一。加入最大的代理网络并免费试用。

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-09-19 09:09 最后登录:2024-09-19 09:09
栏目列表
推荐内容