我正在使用带有 Socks 代理的 curl。代理通过配置ANY_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"
我观察到 curl 在本地解析主机名,而不是通过代理。请求带有 IP 的 URL 时,请求工作正常,主机名无法在本地解析,curl 失败。
在手册页中,我找到了这个显式的 CLI 选项:
Run Code Online (Sandbox Code Playgroud)--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>
?
try*_*lly 11
对于像我这样的白痴来说还好,这里是微妙的部分:
由于7.21.7,这个选项是多余的,因为你可以指定一个SOCKS5代理服务器的主机名
-x
,--proxy
使用socks5h://
协议前缀。
小h
继socks5
告诉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)
归档时间: |
|
查看次数: |
4845 次 |
最近记录: |