cURL 是通过 URL 发送和接收数据的命令行工具。首先我们来举个最简单的例子,帮助了解如何使用 curl。打开终端或命令提示符程序,输入以下命令后按回车键(Enter):
如果是全局代理,或者是通过修改 .curlrc
文件进行设置的,仍然可以通过撤销来另外设置代理或者是绕过设置。
要撤销单个请求的代理,可以照常通过 -x
或 --proxy
开关来重新设置代理:
curl --proxy "http://user:pwd@1.0.0.1:8090" "http://httpbin.org/ip"
如果想干脆绕过单个请求的代理,在 --noproxy
后加 “*” 即可。这个命令就是告诉 curl 对所有 URL 都不要运行代理。
curl --noproxy "*" "http://httpbin.org/ip"
如果要在不用代理的情况下执行大量 curl 请求,而不更改全局代理设置,请看下文。
这一技巧仅适用于高级用户。如果您不了解 .bashrc
文件,可以忽略这一部分。
您在 .bashrc
文件中创建一个别名,即可设置或取消设置代理。比如,通过编辑器打开 .bashrc
文件并添加以下命令行:
alias proxyon="export http_proxy='http://user:pwd@127.0.0.1:1234';export https_proxy='http://user:pwd@127.0.0.1:1234'" alias proxyoff="unset http_proxy;unset https_proxy"
然后保存 .bashrc
文件并更新外壳以读取该文件。因此,在终端内运行以下命令:
proxyon curl "http://httpbin.org/ip" curl "http://baidu.com" proxyoff
对于使用 socks 协议的代理服务器,语法仍然一样:
curl -x "socks5://user:pwd@127.0.0.1:1234" "http://httpbin.org/ip"
具体根据 socks 版本,可以使用 socks4://
、socks4a://
、socks5://
或者 socks5h://
。
或者,也可以通过开关 --socks5
(不是 -x)来设置 curl socks 代理。运行相同命令行,但是要不同开关:通过--proxy-user
开关来设置用户名和密码。
curl --socks5 "127.0.0.1:1234" "http://httpbin.org/ip" --proxy-user user:pwd
cURL 是一款强大的自动化工具,就代理支持而言是当之无愧的最佳命令行工具。由于 libcurl 配合 php 使用效果非常好,许多 web 程序都用它来进行网页抓取,是相关业务中不可或缺的利器。
点击这里查看 GitHub 上的存储库,以了解本文使用的完整代码。如果您觉得这篇文章有用,您可能也会喜欢我们关于反向与正向代理或网页解锁器的博文。