卷曲 7.27:[ANY]_PROXY 设置;curl 不通过代理解析主机名

try*_*lly 5 proxy curl

我正在使用带有 Socks 代理的 curl。代理通过配置ANY_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"

我观察到 curl 在本地解析主机名,而不是通过代理。请求带有 IP 的 URL 时,请求工作正常,主机名无法在本地解析,curl 失败。

在手册页中,我找到了这个显式的 CLI 选项:

   --socks5-hostname <host[:port]>
          Use the specified SOCKS5 proxy (and let the proxy resolve the host name).
Run Code Online (Sandbox Code Playgroud)

有趣的是括号中的文本强调,此选项还将通过代理解析主机名。但这都是关于主机名解析的,在手册页的其余部分,没有提到名称解析如何与代理一起工作。

版本: curl 7.27.0 (x86_64-redhat-linux-gnu) libcurl/7.27.0 NSS/3.15.1 zlib/1.2.7 libidn/1.26 libssh2/1.4.3

是否有选项或替代环境变量可以使 curl 通过代理解析主机名而无需指定--socks5-hostname <host:port>

try*_*lly 11

对于像我这样的白痴来说还好,这里是微妙的部分:

由于7.21.7,这个选项是多余的,因为你可以指定一个SOCKS5代理服务器的主机名-x--proxy使用socks5h://协议前缀。

hsocks5告诉curl查找主机名通过代理了。

要使 curl通过代理查找主机名,必须导出:

ALL_PROXY="socks5h://NNN.NNN.NNN.NNN.PPPP"
Run Code Online (Sandbox Code Playgroud)

与将在本地查找的代理相比:

ALL_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"
Run Code Online (Sandbox Code Playgroud)