Proxy
捲曲 7.27:一個_是一種ñ是ANY_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).
有趣的是,括號中的文本強調,此選項還將通過代理解析主機名。但這都是關於主機名解析的,在手冊頁的其餘部分中,沒有提到名稱解析如何與代理一起工作。
版本:
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>
?
對於像我這樣的白痴來說,這是微妙的部分:
-x
從 7.21.7 開始,此選項是多餘的,因為您可以--proxy
使用socks5h://
協議前綴指定 socks5 主機名代理。
h
後面的小東西socks5
告訴 curl 也可以通過代理查找主機名。要讓 curl**通過代理查找主機名,**必須導出:
ALL_PROXY="socks5h://NNN.NNN.NNN.NNN.PPPP"
與將在本地查找的代理相比:
ALL_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"