如何给 curl 设置代理
操作方法一:通过参数指定
使用 -x
或 --proxy
参数来指定代理服务。
HTTP 代理
curl -x "http://user:pass@127.0.0.1:8888" "https://yuanbiji.net"
如果你的代理服务不需要提供用户名、密码,则
user:pass@
这部分可以省略。
Socks 代理
curl -x "socks5://user:pass@127.0.0.1:8888" "https://yuanbiji.net"
代理协议部分(
sock5://
)根据你的代理服务的实际版本来定,其他可能的值还有sock4://
和sock4a://
等。
操作方法二:通过环境变量指定
(此方法仅适用于 Linux 和 macOS。)
curl 可识别 http_proxy
和 https_proxy
环境变量并自动使用它们作为代理(前者用于访问 HTTP 资源,后者用于访问 HTTPS 资源)。
设置方法如下:
export http_proxy="http://user:pass@127.0.0.1:8888"
export https_proxy="http://user:pass@127.0.0.1:8888"
在此之后,curl 就会自动使用指定的代理。
需要注意的是,其他命令行工具可能也会读取这两个环境变量作为自己的代理设置。因此在 curl 用完代理之后,你可能希望清除这两个环境变量。方法如下:
unset http_proxy
unset https_proxy
小技巧:你可以把上面两组命令设置为别名,以便在 shell 脚本中快捷调用。
操作方法三:通过配置文件指定
找到 curl 的配置文件(如果不存在就创建):
- 在 Linux 和 macOS 下,该文件位于
~/.curlrc
。 - 在 Windows 下,该文件位于
%APPDATA%/_curlrc
。
添加以下内容:
proxy="http://user:pass@127.0.0.1:8888"
这种配置方法是持久的,且不会影响其他工具。
补充说明
-
通过参数指定代理的优先级是最高的,可以临时覆盖其他两种配置方法。
-
如果需要临时忽略代理配置,也可以通过参数来指定:
curl --noproxy "*" "https://yuanbiji.net"