在 Linux 上设置 cURL 以永久使用代理
cURL 用于从服务器请求数据并将其发送到设备。通过该命令,用户指定服务器 URL 以及发送该 URL 所需的数据(请求发送到的位置)。 Curl 适用于 Windows、MacOS 和 Linux,支持超过 25 种协议,包括 SFTP、FTP、HTTPS 和 HTTP。关于API调用和调试网络请求,curl是最好的开源免费工具之一。
“代理”一词代表“代表他人行事”。同样,代理服务器也代表最终用户进行操作。
代理服务器充当网站和用户之间传输流量的中间服务器。代理隔离最终用户客户端浏览的网站并提供多个级别的安全性和功能。使用代理服务器时,互联网上的所有请求都会首先发送到该服务器,并对其进行评估。
对其应用一组规则,它会在需要时将请求转发到互联网。同样,服务器响应返回到第一个代理,该代理处理和评估这些响应,然后仅将它们发送给最终用户。有时,代理服务器通过使用一系列服务器在互联网上提供更大的匿名性。
在 Linux 上设置 cURL 以永久使用代理
我们将研究几种永久使用curl 来设置代理的方法。
通过命令行参数(临时解决方案)
您可以使用简单的命令行参数来使用代理。您可以使用命令行过滤 Curl 帮助文档中的所有代理配置选项。您可以使用以下命令查看代理设置的文档 -
curl --help proxy
运行上述命令时,您将获得一个命令列表,其中之一是 -
-x, --proxy [protocol://]host[:port]
上述命令中的“x”区分大小写。使用curl,您可以使用“-x”或“--proxy”提供代理详细信息。
curl -x "[protocol://]host[:port]"
或者,
curl --proxy "[protocol://]host[:port]"
注意 - 双引号括住目标 URL 和代理 URL。
通过环境变量
Curl 支持为每个协议设置环境变量 [scheme]_proxy。使用http_proxy(环境变量),您可以设置curl来访问代理服务器。因此,您必须使用导出命令设置此变量 -
export http_proxy="[protocol://][host][:port]" (access the address that used http protocol)
export https_proxy="[protocol://][host][:port]" (access the address that used https protocol)
注意 - 如果您发现 SSL 证书错误,可以通过在上述命令中添加 -k 选项来忽略它们。
curl -x "[protocol://][host][:port]" -k [URL]
导出环境变量后,curl命令在远程连接时会自动使用上述代理。
curl "http://httpbin.org/ip"
额外提示 - 您可以通过将此变量添加到 shell 配置文件来使其永久化。由于我们的默认 shell 是 bash,因此这里我们将其添加到 '~/.profile' 中,如下所示 -
http_proxy=http://127.0.0.1:8080
这些变量适用于整个系统。如果不需要这种行为,我们建议您通过取消设置这些变量来关闭全局代理 -
unset http_proxy
unset https_proxy
通过别名
使用别名,您可以使用另一个系统命令来执行任何系统命令。以这种方式将curl调用替换为代理命令。根据操作系统的不同,您使用的 shell 文件和环境变量可能会有所不同。
alias curl="curl -x "[protocol://][host][:port]"
重新加载 Shell 后,运行curl 通过调用我们的别名来使用代理服务器。
curl https://xyz.com
通过.curlrc
每次都需要将代理地址传递给curl。为了避免这个问题,您可以创建一个包含许多配置参数的.curlrc(curl配置文件)。它可以存储在您的主目录中。当您启动curl命令时,它会查找~/.curlrc文件并从该文件中存在的所有配置文件加载选项。
我们可以在 ~/.curlrc 中添加以下行来永久使用代理服务器。
proxy = "[protocol://][host][:port]"
注意 - 如果 ~/.curlrc 文件不存在,您可以创建并添加它。
结论
在本文中,我们解释了如何设置 cURL 以在 Linux 上永久使用代理,并通过代理服务器将所有请求发送到curl。在这里,我们研究了几种使用curl配置代理的永久解决方案。其中推荐使用curl配置文件。此外,您还可以通过其他方式访问所需的数据。