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

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

我将curl 与Socks 代理一起使用。代理是通过配置的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).

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

版本: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>

答案1

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

从 7.21.7 开始,此选项是多余的,因为您可以使用协议前缀通过 指定袜子5 主机名-x代理。--proxysocks5h://

h接下来的一小部分socks5告诉curl也通过代理查找主机名。

制作卷曲通过代理查找主机名必须导出:

ALL_PROXY="socks5h://NNN.NNN.NNN.NNN.PPPP"

与代理相比本地查找:

ALL_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"

相关内容